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

Disassembly:
mov eax, dword [esp + 4]
dec eax
cmp eax, 6
ja case.default.0x40c16e
jmp dword [eax*4 + 0x40c220]
mov eax, dword [esp + 0xc]
push 1
push eax
mov eax, dword [esp + 0x10]
push eax
push eax
call fcn.00436ee0
add esp, 0x10
ret
mov eax, dword [esp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
jmp fcn.00434f10
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
push 1
push edx
push eax
call fcn.004323a0
add esp, 0xc
ret
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
push 1
push ecx
push eax
push eax
call fcn.004322e0
add esp, 0x10
ret
mov eax, dword [esp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
jmp 0x42ca60
push esi
push 1
push 7
call fcn.0040ba70
mov esi, dword [esp + 0x18]
add esp, 4
lea eax, [esi + eax*2]
push eax
push 7
call fcn.0040ba70
add esp, 4
add eax, esi
push eax
mov eax, dword [esp + 0x18]
push esi
push eax
push eax
call fcn.00432210
add esp, 0x18
pop esi
ret
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
push eax
push eax
push ecx
call fcn.0042b150
add esp, 0xc
ret
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x28]
add eax, 0x20
push ebx
mov ebx, dword [eax]
push ebp
xor ebx, dword [ecx]
mov ebp, dword [eax + 4]
push esi
xor edx, dword [ecx + 8]
mov esi, dword [eax + 0xc]
push edi
xor ebp, dword [ecx + 4]
xor esi, dword [ecx + 0xc]
xor esi, ebx
mov edi, esi
and edi, ebp
xor edi, ebx
mov ecx, edx
xor ecx, ebp
mov ebp, esi
or ebp, ebx
xor ebp, ecx
xor ecx, esi
xor esi, edx
or edx, edi
xor edx, ecx
not ecx
or ecx, edi
mov dword [esp + 0x1c], edx
mov edx, ecx
xor ecx, esi
or esi, ebp
xor edi, ecx
mov ebx, esi
xor ebx, edi
mov edi, dword [esp + 0x1c]
xor edx, esi
rol ebx, 0xd
rol edi, 3
xor edx, edi
xor edx, ebx
lea ecx, [ebx*8]
xor ecx, edi
xor ecx, ebp
rol ecx, 7
rol edx, 1
mov ebp, edx
shl ebp, 7
xor ebp, edi
mov edi, dword [eax + 0x10]
mov esi, edx
xor esi, ebx
mov ebx, dword [eax + 0x14]
xor esi, ecx
xor ebp, ecx
rol ebp, 0x16
rol esi, 5
xor esi, edi
xor ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
xor edx, ebx
not esi
mov ebx, esi
and esi, edx
xor edi, ebp
not edi
xor edi, esi
or esi, ecx
xor edx, esi
xor ecx, edi
xor esi, ebx
or ebx, edx
xor edx, ecx
or edi, esi
and edi, ebx
xor esi, edx
and edx, edi
xor edx, esi
mov ebp, edi
and ebp, esi
xor ebp, ebx
rol edi, 0xd
rol ecx, 3
mov ebx, edi
xor edi, ebp
xor edi, ecx
lea esi, [ebx*8]
xor esi, edx
xor esi, ecx
rol esi, 7
rol edi, 1
mov ebp, dword [eax + 0x20]
mov edx, edi
shl edx, 7
xor edx, esi
xor edx, ecx
mov ecx, esi
xor ecx, ebx
mov ebx, dword [eax + 0x24]
xor ecx, edi
xor edi, ebx
xor esi, dword [eax + 0x2c]
rol edx, 0x16
rol ecx, 5
xor ecx, ebp
xor edx, dword [eax + 0x28]
mov ebx, ecx
and ecx, edx
xor ecx, esi
or esi, ebx
xor esi, edi
mov ebp, ecx
xor ebp, edi
xor edx, ebp
xor ebx, edx
mov edi, esi
or esi, ebx
xor esi, ecx
and ecx, edi
xor ebx, ecx
mov ecx, esi
xor ecx, ebx
xor edi, ecx
rol edx, 0xd
rol edi, 3
mov ebp, dword [eax + 0x30]
xor esi, edi
not ebx
lea ecx, [edx*8]
xor ecx, ebx
xor ecx, edi
xor esi, edx
rol ecx, 7
rol esi, 1
mov ebx, esi
shl ebx, 7
xor ebx, ecx
xor ebx, edi
mov edi, esi
xor edi, ecx
xor edi, edx
mov edx, dword [eax + 0x34]
rol ebx, 0x16
rol edi, 5
xor esi, edx
mov edx, dword [eax + 0x3c]
xor edi, ebp
mov ebp, dword [eax + 0x38]
xor ecx, edx
mov edx, edi
xor ebx, ebp
or edi, ecx
xor ecx, esi
and esi, edx
xor edx, ebx
or edx, esi
xor ebx, ecx
and ecx, edi
xor ecx, edx
xor edi, esi
xor esi, ecx
or esi, edi
xor esi, ebx
and edx, edi
xor edx, ebx
mov ebp, esi
or esi, ecx
xor esi, ecx
xor esi, edi
rol esi, 0xd
rol ecx, 3
mov ebx, ecx
lea ecx, [esi*8]
xor ecx, ebx
xor ecx, edx
mov edx, dword [eax + 0x40]
mov edi, esi
xor edi, ebx
rol ecx, 7
xor esi, ecx
xor edi, ebp
mov ebp, dword [eax + 0x48]
rol edi, 1
xor esi, edi
rol esi, 5
xor esi, edx
mov edx, edi
shl edx, 7
xor edx, ebx
mov ebx, dword [eax + 0x4c]
xor edx, ecx
xor ecx, ebx
mov ebx, dword [eax + 0x44]
xor ebx, ecx
rol edx, 0x16
xor edx, ebp
xor edi, ebx
not ecx
xor edx, ecx
xor ecx, esi
mov ebx, ecx
and ebx, edi
xor edi, ecx
xor ebx, edx
xor esi, edi
and edx, edi
xor edx, esi
and esi, ebx
xor ecx, esi
mov ebp, ebx
or ebp, edi
xor ebp, esi
or esi, ecx
xor esi, edx
and edx, ecx
rol ebx, 0xd
not esi
rol esi, 3
mov edi, ebx
mov ebx, esi
lea esi, [edi*8]
xor esi, ebx
xor esi, ecx
mov ecx, ebx
xor ecx, edx
xor ecx, edi
xor ecx, ebp
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x1c]
rol esi, 7
rol ecx, 1
mov ebx, ecx
shl ebx, 7
xor ebx, edx
mov ebp, dword [eax + 0x54]
xor ebx, esi
rol ebx, 0x16
mov edx, esi
xor edx, edi
mov edi, dword [eax + 0x50]
xor edx, ecx
xor ecx, ebp
rol edx, 5
xor edx, edi
xor esi, dword [eax + 0x5c]
mov edi, dword [eax + 0x58]
xor edx, ecx
xor edi, ebx
xor ecx, esi
mov ebx, edx
and ebx, ecx
mov ebp, ecx
not esi
xor edi, esi
xor ebx, edi
or edi, ebp
xor ebp, esi
and esi, ebx
xor esi, edx
mov ecx, edi
xor ecx, ebp
xor edi, edx
xor ecx, ebx
mov ebp, esi
and ebp, edx
xor ebp, ecx
rol ebx, 0xd
or ecx, esi
rol ebp, 3
not edi
lea edx, [ebx*8]
xor ecx, edx
xor ecx, edi
xor ecx, ebp
xor esi, ebp
xor esi, ebx
rol ecx, 7
rol esi, 1
mov edi, esi
shl edi, 7
xor edi, ecx
xor edi, ebp
mov ebp, dword [eax + 0x6c]
mov edx, ecx
xor edx, esi
xor edx, ebx
mov ebx, dword [eax + 0x60]
rol edi, 0x16
xor ecx, ebp
mov ebp, dword [eax + 0x68]
xor ebp, edi
rol edx, 5
xor edx, ebx
mov ebx, dword [eax + 0x64]
mov edi, ecx
and ecx, edx
not ebp
xor ecx, ebp
xor ebx, ecx
xor esi, ebx
xor edx, edi
mov ebx, edi
or ebx, ebp
xor ebx, edx
or edx, esi
xor edi, edx
mov dword [esp + 0x1c], edi
mov ebp, dword [esp + 0x1c]
mov edi, ecx
or edi, edx
xor ebx, esi
mov edx, ecx
xor edi, ebx
xor edx, ebp
xor edx, edi
not ecx
mov ebp, edx
and ebp, ebx
xor ebp, ecx
rol edi, 0xd
rol edx, 3
mov ebx, edx
xor edx, esi
lea ecx, [edi*8]
xor ecx, ebx
xor ecx, ebp
mov ebp, dword [eax + 0x74]
xor edx, edi
rol ecx, 7
rol edx, 1
mov esi, edx
shl esi, 7
xor esi, ebx
xor esi, ecx
rol esi, 0x16
mov ebx, edx
xor ebx, ecx
xor ebx, edi
mov edi, dword [eax + 0x70]
xor edx, ebp
xor ecx, dword [eax + 0x7c]
rol ebx, 5
xor ebx, edi
xor esi, dword [eax + 0x78]
mov ebp, esi
and esi, edx
xor esi, ecx
xor ebp, esi
xor esi, edx
mov edi, ebp
and ecx, edx
xor edx, ebx
xor ecx, edx
or edi, ebx
xor edi, esi
xor esi, ecx
and ecx, edi
xor ecx, ebp
xor ebp, esi
not ebp
and esi, edi
xor esi, ebp
and ebp, edi
xor ebp, edx
xor ebp, ecx
mov dword [esp + 0x14], 3
add eax, 0x80
mov edx, esi
rol edx, 0xd
rol ecx, 3
mov ebx, ebp
mov dword [esp + 0x1c], edi
mov esi, edx
mov edx, dword [esp + 0x1c]
mov edi, ecx
lea ebp, [esi*8]
xor ebp, edx
xor ebp, edi
rol ebp, 7
mov edx, edi
xor edx, ebx
xor edx, esi
rol edx, 1
mov ebx, ebp
xor ebx, edx
xor ebx, esi
mov esi, dword [eax]
mov ecx, edx
shl ecx, 7
xor ecx, ebp
xor ecx, edi
mov edi, dword [eax + 4]
rol ecx, 0x16
rol ebx, 5
xor ebx, esi
xor ecx, dword [eax + 8]
mov esi, dword [eax + 0xc]
xor esi, ebp
xor esi, ebx
xor edx, edi
mov ebp, esi
and ebp, edx
xor ebp, ebx
mov edi, ecx
xor edi, edx
mov edx, esi
or edx, ebx
xor edx, edi
xor edi, esi
xor esi, ecx
or ecx, ebp
xor ecx, edi
not edi
or edi, ebp
mov ebx, edi
xor ebx, esi
xor ebp, ebx
or esi, edx
mov ebx, esi
xor ebx, ebp
rol ebx, 0xd
rol ecx, 3
xor edi, esi
mov ebp, ecx
xor edi, ebp
lea ecx, [ebx*8]
xor ecx, ebp
xor ecx, edx
xor edi, ebx
rol ecx, 7
rol edi, 1
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x1c]
mov edx, edi
mov edi, dword [eax + 0x10]
mov ebp, edx
shl ebp, 7
xor ebp, esi
mov esi, edx
xor esi, ebx
mov ebx, dword [eax + 0x14]
xor ebp, ecx
xor esi, ecx
rol ebp, 0x16
rol esi, 5
xor esi, edi
xor ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
xor edx, ebx
xor edi, ebp
not esi
mov ebx, esi
and esi, edx
not edi
xor edi, esi
or esi, ecx
xor edx, esi
xor esi, ebx
xor ecx, edi
or ebx, edx
xor edx, ecx
or edi, esi
xor esi, edx
and edi, ebx
and edx, edi
xor edx, esi
mov ebp, edi
and ebp, esi
xor ebp, ebx
rol edi, 0xd
rol ecx, 3
mov ebx, edi
xor edi, ebp
xor edi, ecx
mov ebp, dword [eax + 0x20]
lea esi, [ebx*8]
xor esi, edx
xor esi, ecx
rol esi, 7
rol edi, 1
mov edx, edi
shl edx, 7
xor edx, esi
xor edx, ecx
mov ecx, esi
xor ecx, ebx
mov ebx, dword [eax + 0x24]
xor ecx, edi
xor edi, ebx
xor esi, dword [eax + 0x2c]
rol edx, 0x16
rol ecx, 5
xor ecx, ebp
mov ebp, dword [eax + 0x28]
mov ebx, ecx
xor edx, ebp
and ecx, edx
xor ecx, esi
or esi, ebx
mov ebp, ecx
xor ebp, edi
xor esi, edi
xor edx, ebp
xor ebx, edx
mov edi, esi
or esi, ebx
xor esi, ecx
and ecx, edi
xor ebx, ecx
mov ecx, esi
xor ecx, ebx
xor edi, ecx
rol edx, 0xd
rol edi, 3
not ebx
lea ecx, [edx*8]
xor ecx, ebx
xor esi, edi
xor ecx, edi
xor esi, edx
rol ecx, 7
rol esi, 1
mov ebx, esi
shl ebx, 7
xor ebx, ecx
xor ebx, edi
mov ebp, dword [eax + 0x30]
mov edi, esi
xor edi, ecx
xor edi, edx
xor esi, dword [eax + 0x34]
xor ecx, dword [eax + 0x3c]
rol ebx, 0x16
rol edi, 5
xor edi, ebp
xor ebx, dword [eax + 0x38]
mov edx, edi
or edi, ecx
xor ecx, esi
and esi, edx
xor edx, ebx
or edx, esi
xor ebx, ecx
and ecx, edi
xor ecx, edx
xor edi, esi
xor esi, ecx
or esi, edi
xor esi, ebx
and edx, edi
xor edx, ebx
mov ebp, esi
or esi, ecx
xor esi, ecx
xor esi, edi
rol esi, 0xd
rol ecx, 3
mov ebx, ecx
lea ecx, [esi*8]
xor ecx, ebx
xor ecx, edx
mov edx, dword [eax + 0x40]
mov edi, esi
xor edi, ebx
xor edi, ebp
mov ebp, dword [eax + 0x48]
rol ecx, 7
xor esi, ecx
rol edi, 1
xor esi, edi
rol esi, 5
xor esi, edx
mov edx, edi
shl edx, 7
xor edx, ebx
mov ebx, dword [eax + 0x4c]
xor edx, ecx
xor ecx, ebx
mov ebx, dword [eax + 0x44]
xor ebx, ecx
rol edx, 0x16
xor edx, ebp
not ecx
xor edx, ecx
xor ecx, esi
xor edi, ebx
mov ebx, ecx
and ebx, edi
xor edi, ecx
xor ebx, edx
xor esi, edi
and edx, edi
xor edx, esi
and esi, ebx
mov ebp, ebx
xor ecx, esi
or ebp, edi
xor ebp, esi
or esi, ecx
xor esi, edx
and edx, ecx
rol ebx, 0xd
mov edi, ebx
not esi
rol esi, 3
mov ebx, esi
lea esi, [edi*8]
xor esi, ebx
xor esi, ecx
rol esi, 7
mov ecx, ebx
xor ecx, edx
xor ecx, edi
xor ecx, ebp
rol ecx, 1
mov ebp, dword [eax + 0x54]
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x1c]
mov ebx, ecx
shl ebx, 7
xor ebx, edx
xor ebx, esi
rol ebx, 0x16
mov edx, esi
xor edx, edi
mov edi, dword [eax + 0x50]
xor edx, ecx
xor ecx, ebp
rol edx, 5
xor edx, edi
xor esi, dword [eax + 0x5c]
mov edi, dword [eax + 0x58]
xor edx, ecx
xor ecx, esi
xor edi, ebx
mov ebp, ecx
mov ebx, edx
and ebx, ecx
not esi
xor edi, esi
xor ebx, edi
or edi, ebp
xor ebp, esi
and esi, ebx
xor esi, edx
mov ecx, edi
xor ecx, ebp
xor edi, edx
xor ecx, ebx
mov ebp, esi
and ebp, edx
xor ebp, ecx
rol ebx, 0xd
or ecx, esi
rol ebp, 3
not edi
xor esi, ebp
lea edx, [ebx*8]
xor ecx, edx
xor ecx, edi
xor ecx, ebp
rol ecx, 7
xor esi, ebx
rol esi, 1
mov edi, esi
shl edi, 7
xor edi, ecx
xor edi, ebp
mov ebp, dword [eax + 0x6c]
mov edx, ecx
xor edx, esi
xor ecx, ebp
mov ebp, dword [eax + 0x68]
xor edx, ebx
mov ebx, dword [eax + 0x60]
rol edi, 0x16
rol edx, 5
xor ebp, edi
xor edx, ebx
mov edi, ecx
and ecx, edx
not ebp
xor edx, edi
mov ebx, dword [eax + 0x64]
xor ecx, ebp
xor ebx, ecx
xor esi, ebx
mov ebx, edi
or ebx, ebp
xor ebx, edx
or edx, esi
xor edi, edx
xor ebx, esi
mov dword [esp + 0x1c], edi
mov ebp, dword [esp + 0x1c]
mov edi, ecx
or edi, edx
xor edi, ebx
mov edx, ecx
xor edx, ebp
xor edx, edi
mov ebp, edx
and ebp, ebx
not ecx
xor ebp, ecx
rol edi, 0xd
rol edx, 3
mov ebx, edx
xor edx, esi
xor edx, edi
lea ecx, [edi*8]
xor ecx, ebx
xor ecx, ebp
mov ebp, dword [eax + 0x74]
rol ecx, 7
rol edx, 1
mov esi, edx
shl esi, 7
xor esi, ebx
xor esi, ecx
mov ebx, edx
xor ebx, ecx
xor edx, ebp
mov ebp, dword [eax + 0x7c]
xor ebx, edi
mov edi, dword [eax + 0x70]
rol esi, 0x16
xor ecx, ebp
rol ebx, 5
xor ebx, edi
xor esi, dword [eax + 0x78]
mov ebp, esi
and esi, edx
xor esi, ecx
xor ebp, esi
xor esi, edx
and ecx, edx
mov edi, ebp
xor edx, ebx
xor ecx, edx
or edi, ebx
xor edi, esi
xor esi, ecx
and ecx, edi
xor ecx, ebp
xor ebp, esi
not ebp
and esi, edi
xor esi, ebp
and ebp, edi
xor ebp, edx
mov edx, dword [esp + 0x14]
xor ebp, ecx
dec edx
mov dword [esp + 0x14], edx
jne 0x42cdc2
mov edx, dword [eax + 0x84]
mov ebx, dword [eax + 0x88]
xor ebp, edx
xor edi, dword [eax + 0x8c]
mov edx, dword [eax + 0x80]
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc], edi
pop edi
xor edx, esi
pop esi
xor ecx, ebx
mov dword [eax + 4], ebp
pop ebp
mov dword [eax], edx
mov dword [eax + 8], ecx
pop ebx
ret