Function at 0x40d7a0
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 0x40dc0b
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040dc20
add esp, 0x10
mov dword [esp + 0x14], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a4f0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c650
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], 0xb5ada2b4
mov byte [esp + 0x20], 0x18
mov dword [esp + 0x21], 0
mov byte [esp + 0x25], 0
mov eax, 0x4388a1bb
nop
nop
movzx ebp, byte [esp + eax - 0x4388a19f]
mov edx, ebp
not edx
and edx, 0xa2
lea ecx, [eax - 0x40000000]
mov ebx, eax
and ebx, 0x4008805d
xor ebp, 0xa2
or ebp, edx
and ecx, 0x38021a2
or ecx, ebx
xor ecx, ebp
xor ecx, 0x5d
mov dl, 0x58
sub dl, cl
mov byte [esp + eax - 0x4388a19f], dl
inc eax
cmp eax, 0x4388a1c5
jne 0x40d820
lea ebp, [esp + 0x1c]
mov ecx, esi
push 0x45076c
push ebp
push edi
call fcn.0040d180
mov dword [esp + 0x1c], 0x21babcb4
mov eax, 0x5583fab9
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5583fa9d]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x62
mov byte [esp + eax - 0x5583fa9d], cl
inc eax
cmp eax, 0x5583fabd
jne 0x40d890
mov ecx, esi
push dword [esp + 0x14]
push ebp
push edi
call fcn.0040d180
mov eax, dword [str.tLYMe5__222]
mov dword [esp + 0x1c], 0x13fef884
xor ecx, ecx
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc4
xor dl, byte [esp + ecx + 0x1c]
add dl, 0x2c
mov byte [esp + ecx + 0x1c], dl
inc ecx
cmp ecx, 4
jne 0x40d8e0
mov ecx, esi
push eax
push ebp
push edi
call fcn.0040d180
mov dword [esp + 0x1c], 0xdd282011
mov dword [esp + 0x20], 0x28252cd9
mov dword [esp + 0x24], 0x2a2bd429
mov byte [esp + 0x28], 0xb0
mov dword [esp + 0x29], 0
mov eax, 0x3980911f
mov ecx, 0xe0
nop
movzx edx, byte [esp + eax - 0x39809103]
mov ebx, ecx
xor ebx, eax
and ebx, edx
xor ebx, eax
mov edx, ebx
and edx, 1
xor ebx, 1
lea edx, [ebx + edx*2]
add dl, 0x64
mov byte [esp + eax - 0x39809103], dl
inc eax
dec ecx
cmp eax, 0x39809130
jne 0x40d930
mov dword [esp + 4], 0x89063633
mov eax, 0x8e245ee3
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x71dba121]
mov edx, eax
and edx, ecx
add ecx, eax
add edx, edx
mov ebx, ecx
sub ebx, edx
and ecx, 1
xor ebx, 1
lea ecx, [ebx + ecx*2]
add cl, 0x90
mov byte [esp + eax + 0x71dba121], cl
inc eax
cmp eax, 0x8e245ee7
jne 0x40d970
lea eax, [esp + 4]
mov ecx, esi
push ebp
push eax
push edi
call fcn.0040d180
mov dword [esp + 0x1c], 0xa6aea8a6
mov byte [esp + 0x20], 0x44
mov word [esp + 0x21], 0
mov byte [esp + 0x23], 0
mov eax, 0xde8e0390
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x2171fc8c]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x30
mov byte [esp + eax + 0x2171fc8c], cl
inc eax
cmp eax, 0xde8e0398
jne 0x40d9d0
mov ecx, esi
push dword [esp]
push dword [esp + 0x1c]
push ebp
push edi
call fcn.0040d3d0
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 0x1c], 0xb11f8fc9
mov dword [esp + 0x20], 0xb526b3de
mov dword [esp + 0x24], 0xb9d8b7d3
mov dword [esp + 0x28], 0xbd95bb2c
mov dword [esp + 0x2c], 0xa125bfc8
mov dword [esp + 0x30], 0xa5c5a330
mov dword [esp + 0x34], 0xa986a7fe
mov dword [esp + 0x38], 0xad3dabc7
mov dword [esp + 0x3c], 0xd13aafc0
mov dword [esp + 0x40], 0xd542d3bb
mov dword [esp + 0x44], 0xd944d7b7
mov dword [esp + 0x48], 0xdd8bdb4c
mov dword [esp + 0x4c], 0xc14fdfba
mov dword [esp + 0x50], 0xc5adc352
mov dword [esp + 0x54], 0xc9a2c7eb
mov dword [esp + 0x58], 0xcd5ecbab
mov dword [esp + 0x5c], 0xf193cfaf
mov dword [esp + 0x60], 0xf590f3d0
mov dword [esp + 0x64], 0xf961f765
mov dword [esp + 0x68], 0xfd9efb96
mov dword [esp + 0x6c], 0xe16cff9f
mov dword [esp + 0x70], 0xe5bde37b
mov dword [esp + 0x74], 0xe981e786
mov dword [esp + 0x78], 0xedbdebb0
mov dword [esp + 0x7c], 0x1189ef88
mov dword [esp + 0x80], 0x15791347
mov dword [esp + 0x84], 0x19721784
mov dword [esp + 0x88], 0x1d7f1b89
mov dword [esp + 0x8c], 0x1791f77
mov dword [esp + 0x90], 0x5900392
mov dword [esp + 0x94], 0x9550763
mov dword [esp + 0x98], 0xd000b07
mov word [esp + 0x9c], 0xf0c
mov byte [esp + 0xa0], 0
mov word [esp + 0x9e], 0
mov ecx, 0xebdf479d
mov edx, 0x1420b862
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x1420b87f]
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
mov eax, ecx
or eax, ebx
not ebx
and ebx, ebp
or ebx, edx
and ebx, eax
mov eax, ebx
not eax
and eax, 0x12
and ebx, 0xed
sub ebx, eax
inc bl
mov byte [esp + ecx + 0x1420b87f], bl
inc ecx
dec edx
cmp ecx, 0xebdf4822
jne 0x40db50
mov dword [esp + 4], 0x21c527f5
mov dword [esp + 8], 0xddb923b0
mov dword [esp + 0xc], 0xdfdc
mov byte [esp + 0x10], 0
xor ecx, ecx
xor edx, edx
nop
nop
mov eax, edx
or al, 0x86
mov ah, dl
and ah, 9
sub al, ah
add al, cl
xor al, byte [esp + edx + 4]
mov ah, 0xa2
sub ah, al
mov byte [esp + edx + 4], ah
inc edx
dec cl
cmp edx, 0xd
jne 0x40dbb0
push 0x493e0
push dword [esp + 4]
push edi
push 0
push 0
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00410240
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c660
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40dc0d
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret