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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
cmp dword [ecx + 0x20], 0
je 0x40db14
mov edi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040db30
add esp, 0x10
mov ebx, eax
lea eax, [edi + 0x10]
push eax
call fcn.0040a3d0
add esp, 4
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x20], 0xbdbdaebc
mov byte [esp + 0x24], 0x20
mov dword [esp + 0x25], 0
mov byte [esp + 0x29], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb9
xor cl, byte [esp + eax + 0x20]
add cl, 0x63
mov byte [esp + eax + 0x20], cl
inc eax
cmp eax, 0xa
jne 0x40d670
lea ebp, [esp + 0x20]
mov ecx, edi
push 0x44e69c
push ebp
push dword [esp + 8]
call fcn.0040cfc0
mov dword [esp + 0x20], 0x11fa848c
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
mov eax, 0x1ec250c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x1ec250a5]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x27
mov byte [esp + eax - 0x1ec250a5], cl
inc eax
cmp eax, 0x1ec250cc
jne 0x40d6c0
mov ecx, edi
push ebx
push ebp
push dword [esp + 8]
call fcn.0040cfc0
mov eax, dword [str.xAeOdp__mainteam]
mov dword [esp + 0x20], 0x51aaa4a0
mov word [esp + 0x24], 0
mov ecx, 0x72
nop
nop
nop
movzx edx, byte [ebp]
lea esi, [ecx - 0x257e0700]
or esi, edx
and edx, ecx
sub edx, esi
mov esi, 0xc2
sub esi, edx
add edx, 0x3d
and esi, 0x99
and edx, 0x66
sub edx, esi
add dl, 0x9a
mov byte [ebp], dl
inc ebp
dec ecx
cmp ecx, 0x6c
jne 0x40d710
lea edx, [esp + 0x20]
mov dword [esp + 8], edi
mov ecx, edi
push eax
push edx
push dword [esp + 8]
call fcn.0040cfc0
mov dword [esp + 0x20], 0xf5f8f081
mov dword [esp + 0x24], 0x88fdf4e9
mov dword [esp + 0x28], 0xfafbfc89
mov dword [esp + 0x2c], 0
mov word [esp + 0x30], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx + 0x20]
mov esi, eax
and esi, 6
mov edx, ecx
xor edx, 0x28fa2c3
add edx, esi
lea ebx, [ebp*2]
not ebx
add ebx, ebp
lea edi, [edx + edx]
not edi
add edi, edx
mov esi, edx
or edx, ebp
not ebp
and ebx, ebp
not esi
and esi, edi
or esi, ebx
and edx, esi
add dl, 0x31
mov byte [esp + ecx + 0x20], dl
inc ecx
add eax, 2
cmp ecx, 0x12
jne 0x40d790
mov dword [esp + 0xc], 0xf19aaaaf
mov byte [esp + 0x10], 0
mov eax, 0x5f1c4f7d
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5f1c4f71]
xor ecx, eax
mov edx, ecx
and edx, 0x98
xor edx, 0xe08098
and ecx, 0xe100867
sub ecx, edx
add ecx, 0x2472728e
mov edx, ecx
and edx, 0x18
xor ecx, 0x98
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x5f1c4f71], cl
inc eax
cmp eax, 0x5f1c4f82
jne 0x40d7f0
lea edx, [esp + 0xc]
mov ecx, dword [esp + 8]
lea eax, [esp + 0x20]
push eax
push edx
push dword [esp + 8]
call fcn.0040cfc0
mov dword [esp + 0x20], 0xaea6a8ae
mov byte [esp + 0x24], 0x2c
mov dword [esp + 0x25], 0
mov word [esp + 0x29], 0
mov eax, 0x1c97420c
nop
nop
nop
movzx ebp, byte [esp + eax - 0x1c9741ec]
mov ebx, eax
and ebx, ebp
mov esi, ebx
mov ecx, ebx
mov edi, ebx
xor ebp, eax
lea edx, [ebx*2]
add edx, ebp
and ebx, 0x1d
and esi, 2
or ecx, 0xfd
inc ecx
imul ecx, ebx
or edi, 2
imul edi, esi
sub ecx, edi
add edx, ecx
add dl, 0xc4
mov byte [esp + eax - 0x1c9741ec], dl
inc eax
cmp eax, 0x1c974217
jne 0x40d870
mov esi, dword [esp + 8]
mov ecx, esi
push dword [esp + 4]
push dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
push dword [esp + 0xc]
call fcn.0040d220
mov eax, dword [esi + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0x39ab3bf1
mov dword [esp + 0x24], 0x25ba27aa
mov dword [esp + 0x28], 0x21b0238f
mov dword [esp + 0x2c], 0x2dfd2fbc
mov dword [esp + 0x30], 0x29ad2b90
mov dword [esp + 0x34], 0x15bd17b8
mov dword [esp + 0x38], 0x11f213d2
mov dword [esp + 0x3c], 0x1d851f83
mov dword [esp + 0x40], 0x19861b88
mov dword [esp + 0x44], 0x596078f
mov dword [esp + 0x48], 0x19c03ab
mov dword [esp + 0x4c], 0xddf0f9c
mov dword [esp + 0x50], 0x99b0ba6
mov dword [esp + 0x54], 0xf565f796
mov dword [esp + 0x58], 0xf15ef327
mov dword [esp + 0x5c], 0xfd62ff5f
mov dword [esp + 0x60], 0xf93ffb53
mov dword [esp + 0x64], 0xe548e718
mov dword [esp + 0x68], 0xe179e375
mov dword [esp + 0x6c], 0xed42ef72
mov dword [esp + 0x70], 0xe974eb43
mov dword [esp + 0x74], 0xd515d76f
mov dword [esp + 0x78], 0xd179d37a
mov dword [esp + 0x7c], 0xdd05df08
mov dword [esp + 0x80], 0xd971db70
mov dword [esp + 0x84], 0xc551c703
mov dword [esp + 0x88], 0xc16ec354
mov dword [esp + 0x8c], 0xcd63cf51
mov dword [esp + 0x90], 0xc961cb5b
mov dword [esp + 0x94], 0xb528b756
mov dword [esp + 0x98], 0xb16db31f
mov dword [esp + 0x9c], 0xbd48bf43
mov dword [esp + 0xa0], 0xbbbc
mov ecx, 0x6a8d65cb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x6a8d65ab]
lea esi, [ecx - 0x80000000]
and esi, 0x4a853bdc
mov edx, ecx
and edx, 0x20084423
or edx, esi
mov esi, eax
xor esi, 0xdc
mov edi, edx
xor edi, 0xdc
or edi, esi
xor eax, 0x23
xor edx, 0x23
or edx, eax
and edx, edi
add dl, 9
mov byte [esp + ecx - 0x6a8d65ab], dl
inc ecx
cmp ecx, 0x6a8d664f
jne 0x40da10
mov dword [esp + 0xc], 0x9fff99ab
mov dword [esp + 0x10], 0xa3cb9dec
mov word [esp + 0x14], 0xa1a0
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov ecx, 0x24aebb9a
mov edx, 0xdb514465
nop
nop
nop
movzx eax, byte [esp + ecx - 0x24aebb8e]
mov ebp, ecx
and ebp, eax
add ebp, ebp
mov ebx, eax
sub ebx, ebp
add ebx, ecx
mov esi, ebp
sub esi, eax
add esi, edx
or esi, 0xfd
or ebx, 0xfd
add ebx, esi
add ebx, eax
sub ebx, ebp
add ebx, ecx
add bl, 2
mov byte [esp + ecx - 0x24aebb8e], bl
inc ecx
dec edx
cmp ecx, 0x24aebbaa
jne 0x40da90
push 0x493e0
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
push 0
push 0
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.004101b0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040c4f0
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40db16
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret