Function at 0x422444
Capabilities:
Encode data using xor

Disassembly:
push ebp
sub esp, 0x80
lea ebp, [esp - 4]
mov eax, dword [0x448d60]
xor eax, ebp
mov dword [ebp + 0x80], eax
push 0x18
mov eax, 0x43582a
call fcn.0042d9e7
mov eax, dword [ebp + 0x98]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xa0]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xa8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x8c]
and dword [ebp - 4], 0
push 0x10
pop edi
sub eax, edi
je 0x42250e
sub eax, 8
je 0x4224ee
dec eax
je 0x4224d7
push str.TLS_R3410
push 0x145
push 0xfffffffffffffffd
call fcn.0041b512
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x80]
xor ecx, ebp
call fcn.0042a637
add ebp, 0x84
leave
ret
push 0x110
call fcn.0042d4d8
pop ecx
test eax, eax
je 0x422507
mov dword [eax], vtable.iALG_R3411_512.0
jmp 0x422503
push 0x110
call fcn.0042d4d8
pop ecx
test eax, eax
je 0x422507
mov dword [eax], vtable.iALG_R3411_256.0
mov esi, eax
jmp 0x422509
xor esi, esi
mov dword [ebp - 0x10], edi
jmp 0x422530
push pe_nt_image_headers32
call fcn.0042d4d8
pop ecx
test eax, eax
je 0x422527
mov dword [eax], vtable.iALG_R3411_94.0
mov esi, eax
jmp 0x422529
xor esi, esi
mov dword [ebp - 0x10], 8
mov ebx, dword [ebp + 0x94]
shr ebx, 2
xor edx, edx
mov dword [ebp - 0x14], esi
mov eax, 0x36363636
test ebx, ebx
je 0x422564
mov ecx, dword [ebp + 0x90]
lea edi, [ebp + 0x40]
sub ecx, edi
lea edi, [ecx + edx*4]
mov edi, dword [ebp + edi + 0x40]
xor edi, eax
mov dword [ebp + edx*4 + 0x40], edi
inc edx
cmp edx, ebx
jb 0x422552
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
jae 0x422573
lea edi, [ebp + edx*4 + 0x40]
sub ecx, edx
rep stosd dword es:[edi], eax
push dword [ebp + 0x8c]
push esi
call fcn.0041f3d7
pop ecx
pop ecx
test eax, eax
je 0x4225ac
push str.TLS_R3410
push 0x14c
push eax
call fcn.0041b512
add esp, 0xc
mov edi, eax
test esi, esi
je 0x4225a5
push esi
call fcn.0042c947
pop ecx
mov eax, edi
jmp 0x4224b4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
test eax, eax
je 0x4225ce
push str.TLS_R3410
push 0x14e
push eax
call fcn.0041b512
mov edi, eax
add esp, 0xc
jmp 0x42259e
mov eax, dword [ebp - 0x10]
mov edx, dword [esi]
shl eax, 2
push eax
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0x40]
push eax
mov ecx, esi
call dword [edx + 0xc]
test eax, eax
je 0x4225f3
push str.TLS_R3410
push 0x150
jmp 0x4225c1
cmp dword [ebp - 0x1c], 0
je 0x422619
push dword [ebp + 0x9c]
mov eax, dword [esi]
push dword [ebp - 0x1c]
mov ecx, esi
call dword [eax + 0xc]
test eax, eax
je 0x422619
push str.TLS_R3410
push 0x153
jmp 0x4225c1
cmp dword [ebp - 0x18], 0
je 0x42263f
push dword [ebp + 0xa4]
mov eax, dword [esi]
push dword [ebp - 0x18]
mov ecx, esi
call dword [eax + 0xc]
test eax, eax
je 0x42263f
push str.TLS_R3410
push 0x157
jmp 0x4225c1
mov eax, dword [esi]
lea ecx, [ebp]
push ecx
mov ecx, esi
call dword [eax + 0x10]
test eax, eax
je 0x42265d
push str.TLS_R3410
push 0x15a
jmp 0x4225c1
xor edx, edx
mov eax, 0x5c5c5c5c
test ebx, ebx
je 0x422685
mov ecx, dword [ebp + 0x90]
lea edi, [ebp + 0x40]
sub ecx, edi
lea edi, [ecx + edx*4]
mov edi, dword [ebp + edi + 0x40]
xor edi, eax
mov dword [ebp + edx*4 + 0x40], edi
inc edx
cmp edx, ebx
jb 0x422673
cmp edx, dword [ebp - 0x10]
jae 0x422695
mov ecx, dword [ebp - 0x10]
lea edi, [ebp + edx*4 + 0x40]
sub ecx, edx
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
test eax, eax
je 0x4226af
push str.TLS_R3410
push 0x160
jmp 0x4225c1
push dword [ebp - 0x24]
mov eax, dword [esi]
lea ecx, [ebp + 0x40]
push ecx
mov ecx, esi
call dword [eax + 0xc]
test eax, eax
je 0x4226d0
push str.TLS_R3410
push 0x162
jmp 0x4225c1
mov edi, dword [esi]
mov ecx, esi
call dword [edi + 4]
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call dword [edi + 0xc]
test eax, eax
je 0x4226f4
push str.TLS_R3410
push 0x164
jmp 0x4225c1
push dword [ebp - 0x20]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
test eax, eax
je 0x422711
push str.TLS_R3410
push 0x166
jmp 0x4225c1
xor edi, edi
jmp 0x42259e