Function at 0x429240
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x66d8d8
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x70903c]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov edi, edx
mov esi, dword [ebp + 8]
lea eax, [esp + 0x1c]
mov dword [esp + 0x44], 8
mov byte [esp + 0x3d], 1
mov dword [esp + 0x48], eax
push edi
push ecx
mov edx, eax
mov dword [esp + 0x60], 0
push 0x20
push edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], 4
call fcn.00615e1c
mov eax, 0x20
sub eax, edi
push eax
lea ecx, [esp + edi + 0x30]
push 0
push ecx
call fcn.006135b0
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x34]
call fcn.0041bdd0
add esp, 0x20
cmp edi, 0x20
jae 0x4292f0
mov ecx, dword [esp + 0x48]
mov eax, edi
shr eax, 2
lea eax, [ecx + eax*4]
mov ecx, edi
and ecx, 3
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov edx, 1
shl edx, cl
or dword [eax], edx
mov edi, dword [esp + 0x48]
mov ecx, dword [edi + 0x1c]
xor eax, eax
jmp 0x429304
mov edi, dword [esp + 0x48]
lea edx, [eax + 3]
lea ebx, [edx + 2]
and ebx, 7
mov ebx, dword [edi + ebx*4]
and edx, 7
xor ebx, dword [edi + edx*4]
xor ebx, dword [edi + eax*4]
xor ebx, eax
xor ebx, ecx
xor ebx, 0x9e3779b9
rol ebx, 0xb
mov ecx, ebx
mov dword [edi + eax*4], ecx
mov dword [esi + eax*4], ecx
inc eax
cmp eax, 8
jb 0x429300
mov edx, 8
lea eax, [esi + 0xc]
lea esp, [esp]
mov edi, dword [eax - 0xc]
xor edi, dword [eax + 8]
add eax, 4
xor edi, dword [eax - 4]
xor edi, edx
xor edi, ecx
xor edi, 0x9e3779b9
rol edi, 0xb
mov ecx, edi
mov dword [eax + 0x10], ecx
inc edx
cmp edx, 0x84
jb 0x429340
sub esi, 0x50
mov dword [esp + 0x18], 4
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x5c]
mov ebx, dword [esi + 0x54]
mov edi, dword [esi + 0x58]
mov eax, ecx
or ecx, edx
xor edx, ebx
and ebx, eax
xor eax, edi
xor edi, edx
and edx, ecx
or eax, ebx
xor edx, eax
xor ecx, ebx
mov dword [esp + 0x14], edi
and eax, ecx
mov edi, edx
xor edi, ebx
mov ebx, dword [esp + 0x14]
or edi, ecx
xor edi, ebx
mov dword [esp + 0x10], edx
or edx, edi
xor edx, dword [esp + 0x10]
xor eax, ebx
mov ebx, dword [esi + 0x68]
xor edx, ecx
mov ecx, dword [esi + 0x60]
mov dword [esi + 0x5c], eax
mov eax, ecx
and ecx, ebx
mov dword [esi + 0x54], edi
mov edi, dword [esi + 0x6c]
xor ecx, edi
mov dword [esi + 0x50], edx
mov edx, dword [esp + 0x10]
mov edi, ecx
mov dword [esi + 0x58], edx
mov edx, dword [esi + 0x64]
xor edi, edx
xor ebx, edi
mov edx, eax
or edx, dword [esi + 0x6c]
xor eax, ebx
xor edx, dword [esi + 0x64]
mov edi, eax
or edi, edx
xor edi, ecx
and ecx, edx
xor eax, ecx
mov ecx, eax
xor ecx, edx
not eax
xor ecx, edi
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x68], ecx
mov ecx, dword [esi + 0x78]
not eax
mov dword [esi + 0x60], ebx
mov dword [esp + 0x14], edx
mov edx, dword [esi + 0x74]
mov ebx, eax
and eax, edx
not ecx
xor ecx, eax
mov dword [esi + 0x64], edi
mov edi, dword [esi + 0x7c]
or eax, edi
xor edx, eax
xor eax, ebx
or ebx, edx
xor edi, ecx
or ecx, eax
and ecx, ebx
mov dword [esp + 0x10], ebx
xor edx, edi
mov ebx, ecx
xor eax, edx
and ebx, edx
xor ebx, eax
mov edx, dword [esi + 0x88]
mov dword [esi + 0x70], ecx
and ecx, eax
xor ecx, dword [esp + 0x10]
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x74], ecx
mov ecx, dword [esi + 0x80]
xor eax, ecx
mov dword [esi + 0x78], edi
mov dword [esi + 0x7c], ebx
mov ebx, dword [esi + 0x84]
mov ecx, edx
xor ecx, ebx
mov edi, eax
and edi, ebx
mov ebx, dword [esi + 0x80]
xor edi, ebx
mov dword [esp + 0x14], edi
mov edi, eax
or edi, ebx
mov ebx, dword [esp + 0x14]
xor edi, ecx
xor ecx, eax
xor eax, edx
or edx, ebx
xor edx, ecx
mov dword [esp + 0x10], edx
mov edx, eax
or eax, edi
xor edx, ebx
mov dword [esi + 0x8c], edi
not ecx
or ecx, ebx
xor edx, ecx
mov ebx, eax
xor eax, ecx
mov dword [esi + 0x84], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x88], eax
xor ebx, edx
mov dword [esi + 0x80], ebx
mov edi, dword [esi + 0x94]
mov edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x9c]
mov ebx, dword [esi + 0x90]
sub esi, 0xffffff80
mov eax, edi
and eax, edx
xor eax, ecx
and ecx, edi
mov dword [esp + 0x10], edx
xor edx, eax
xor eax, edi
xor edi, ebx
mov dword [esp + 0x10], edi
mov edi, edx
or edi, ebx
mov ebx, dword [esp + 0x10]
xor edi, eax
xor ecx, ebx
xor eax, ecx
and ecx, edi
xor ecx, edx
xor edx, eax
not edx
and eax, edi
xor eax, edx
and edx, edi
xor edx, ebx
xor edx, ecx
mov dword [esi + 0x1c], edi
mov edi, dword [esi + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x14], edx
mov edx, dword [esi + 0x20]
mov dword [esi + 0x18], ecx
not edi
mov ecx, eax
mov dword [esp + 0x14], edi
and eax, edx
mov ebx, dword [esi + 0x24]
xor eax, edi
xor edx, ecx
xor ebx, eax
mov edi, ecx
or edi, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
xor edi, edx
or edx, ebx
xor edi, ebx
xor ecx, edx
xor ecx, eax
mov ebx, eax
or ebx, edx
mov edx, dword [esp + 0x10]
xor ebx, edi
xor ecx, ebx
mov dword [esi + 0x28], ecx
and ecx, edi
mov edi, dword [esi + 0x34]
not eax
xor ecx, eax
mov eax, dword [esi + 0x38]
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0x30]
xor ecx, edi
xor edi, edx
not edx
xor eax, edx
mov dword [esi + 0x20], ebx
mov ebx, ecx
and ebx, edi
xor ebx, eax
or eax, edi
mov dword [esp + 0x14], edi
xor edi, edx
and edx, ebx
xor edx, ecx
xor edi, eax
xor edi, ebx
mov dword [esp + 0x10], edi
mov edi, edx
xor eax, ecx
and edi, ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x34], edx
or edx, ecx
not eax
xor edx, eax
mov eax, dword [esi + 0x4c]
xor edi, ecx
mov ecx, dword [esi + 0x40]
mov dword [esi + 0x30], ebx
mov ebx, dword [esi + 0x44]
xor ebx, eax
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0x48]
not eax
xor edx, eax
xor eax, ecx
mov dword [esi + 0x38], edi
mov dword [esp + 0x14], ebx
mov edi, eax
and edi, ebx
xor ebx, eax
xor edi, edx
and edx, ebx
xor ecx, ebx
xor edx, ecx
mov dword [esp + 0x10], edx
and ecx, edi
xor eax, ecx
mov edx, edi
or edx, ebx
mov dword [esp + 0x14], ebx
xor edx, ecx
mov ebx, eax
or ebx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x40], edi
mov edi, eax
xor ebx, ecx
and edi, ecx
xor edi, edx
sub dword [esp + 0x18], 1
not ebx
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], eax
jne 0x429372
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x5c]
mov ebx, dword [esi + 0x54]
mov edi, dword [esi + 0x58]
mov eax, ecx
or ecx, edx
xor edx, ebx
and ebx, eax
xor eax, edi
xor edi, edx
and edx, ecx
or eax, ebx
xor edx, eax
mov dword [esp + 0x14], edi
mov edi, edx
xor ecx, ebx
xor edi, ebx
mov ebx, dword [esp + 0x14]
or edi, ecx
xor edi, ebx
mov dword [esp + 0x10], edx
or edx, edi
xor edx, dword [esp + 0x10]
and eax, ecx
xor eax, ebx
xor edx, ecx
mov dword [esi + 0x54], edi
mov edi, dword [esp + 0x48]
mov dword [esi + 0x5c], eax
mov dword [esi + 0x50], edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x1c]
mov dword [esi + 0x58], edx
cmp edi, eax
jne 0x429678
mov ecx, dword [esp + 0x44]
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret