Function at 0x40e020
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 0x40e51c
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040e530
add esp, 0x10
mov dword [esp], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040abd0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x9c], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040cd40
add esp, 4
mov edi, eax
mov dword [esp + 0x14], 0x47bbb6b8
mov byte [esp + 0x18], 0x24
mov dword [esp + 0x19], 0
mov word [esp + 0x1d], 0
mov eax, 0x7405e149
mov ecx, 0x8bfa1ef6
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax - 0x7405e135]
lea edx, [eax - 0x7405e111]
and edx, ebp
add edx, edx
mov ebx, ebp
sub ebx, edx
add ebx, eax
sub edx, ebp
add edx, ecx
and edx, 0x2a
and ebx, 0xd5
sub ebx, edx
inc bl
mov byte [esp + eax - 0x7405e135], bl
inc eax
dec ecx
cmp eax, 0x7405e154
jne 0x40e0b0
lea eax, [esp + 0x14]
mov ecx, esi
push 0x44f39c
push eax
push edi
call fcn.0040da80
mov dword [esp + 0x14], 0x23869890
mov eax, 0xc6fd4208
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x3902be0c]
xor ecx, eax
add ecx, 0x1d0db5d7
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0x3902be0c], cl
inc eax
cmp eax, 0xc6fd420c
jne 0x40e110
mov ecx, esi
push dword [esp]
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040da80
mov eax, dword [str.hRjzG3__KASTA]
mov dword [esp + 0x14], 0x41eaecd0
mov dword [esp + 0x18], 0
mov ecx, 0x71
mov edx, 0x8e
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x5d]
mov ebp, ebx
not ebp
or ebp, edx
or ebx, ecx
and ebx, ebp
add bl, 0xcb
mov byte [esp + ecx - 0x5d], bl
inc ecx
dec edx
cmp ecx, 0x79
jne 0x40e170
mov ecx, esi
push eax
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040da80
mov dword [esp + 0x14], 0x95a890a1
mov dword [esp + 0x18], 0xb88db499
mov dword [esp + 0x1c], 0x8a8b8cb9
mov byte [esp + 0x20], 0x20
mov dword [esp + 0x21], 0
mov word [esp + 0x25], 0
mov eax, 0x620706cb
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x620706b7]
xor ecx, eax
mov edx, ecx
and edx, 8
xor ecx, 8
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x620706b7], cl
inc eax
cmp eax, 0x620706de
jne 0x40e1d0
mov dword [esp + 8], 0xe97e4e43
xor eax, eax
movzx edx, byte [esp + eax + 8]
lea ecx, [eax - 0x1765c29]
mov ebx, 0x1765c28
sub ebx, eax
and ebx, 3
and ecx, 0x5c
or ecx, ebx
xor ecx, edx
xor ecx, 0x83
add cl, 0xcd
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x40e200
lea edx, [esp + 8]
mov dword [esp + 0xa0], esi
mov ecx, esi
lea eax, [esp + 0x14]
push eax
push edx
mov dword [esp + 8], edi
push edi
call fcn.0040da80
mov dword [esp + 0x14], 0x3602043a
mov byte [esp + 0x18], 0x90
mov dword [esp + 0x19], 0
mov dword [esp + 0x1c], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x14]
mov ebx, ecx
xor ebx, 0xc300d569
mov ebp, eax
and ebp, 0xc
sub ebp, ebx
lea edi, [ebp + 0x4e]
and edi, edx
add edi, edi
lea ebx, [edx + ebp]
add ebx, 0xb3115d4e
mov edx, ebx
sub edx, edi
mov edi, 0xb052a779
sub edi, edx
or edi, 1
lea ebp, [edx + edi]
add ebp, 0x4fad5887
mov edi, ebp
and edi, 0xfffffffd
mov esi, ebp
and esi, 2
or ebp, 2
imul ebp, esi
xor esi, 2
imul esi, edi
add ebp, esi
and edx, 0xfffffffe
and ebx, 1
add ebx, edx
add ebx, 0x4fad5886
add edx, 0x4fad5886
and edx, ebp
or ebx, ebp
xor ebx, 1
add ebx, edx
mov byte [esp + ecx + 0x14], bl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x40e280
mov edi, dword [esp + 0xa0]
mov ecx, edi
push dword [esp + 4]
push dword [esp + 0xa0]
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0xc]
call fcn.0040dcb0
mov eax, dword [edi + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0x14], 0x21b72759
mov dword [esp + 0x18], 0x5dae23b6
mov dword [esp + 0x1c], 0x59c85fc3
mov dword [esp + 0x20], 0x550d5bd4
mov dword [esp + 0x24], 0x51dd5738
mov dword [esp + 0x28], 0x4dcd53c0
mov dword [esp + 0x2c], 0x496e4f06
mov dword [esp + 0x30], 0x45c54bdf
mov dword [esp + 0x34], 0x41ca47d0
mov dword [esp + 0x38], 0x7dd243db
mov dword [esp + 0x3c], 0x79ec7f1f
mov dword [esp + 0x40], 0x752b7bf4
mov dword [esp + 0x44], 0x71e777ea
mov dword [esp + 0x48], 0x6de573e2
mov dword [esp + 0x4c], 0x69f26f3b
mov dword [esp + 0x50], 0x65e66b0b
mov dword [esp + 0x54], 0x61236707
mov dword [esp + 0x58], 0x9d006340
mov dword [esp + 0x5c], 0x99119f0d
mov dword [esp + 0x60], 0x95069b0e
mov dword [esp + 0x64], 0x910497f7
mov dword [esp + 0x68], 0x8dd5931b
mov dword [esp + 0x6c], 0x89118fee
mov dword [esp + 0x70], 0x85c58bc0
mov dword [esp + 0x74], 0x81198718
mov dword [esp + 0x78], 0xbd1983cf
mov dword [esp + 0x7c], 0xb922bf2c
mov dword [esp + 0x80], 0xb527bb29
mov dword [esp + 0x84], 0xb129b72f
mov dword [esp + 0x88], 0xad20b322
mov dword [esp + 0x8c], 0xa9fdaf33
mov dword [esp + 0x90], 0xa590ab9f
mov word [esp + 0x94], 0xa7a4
mov word [esp + 0x9a], 0
mov dword [esp + 0x96], 0
mov ecx, 0xa4ed5739
mov edx, 0x5b12a8c6
nop
nop
movzx ebx, byte [esp + ecx + 0x5b12a8db]
mov eax, ebx
xor eax, ecx
or eax, edx
not eax
add eax, eax
lea esi, [edx - 0x5b12a800]
and esi, eax
not eax
and eax, ecx
sub eax, esi
add al, bl
add al, 0xe3
mov byte [esp + ecx + 0x5b12a8db], al
inc ecx
dec edx
cmp ecx, 0xa4ed57c1
jne 0x40e460
mov dword [esp + 8], 0x13f311c7
mov dword [esp + 0xc], 0x1ff71d8c
mov dword [esp + 0x10], 0x1918
mov ecx, 0x44
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x3c]
mov edx, eax
and edx, ecx
add dl, dl
sub al, dl
movzx eax, al
add eax, ecx
add al, 0xac
mov byte [esp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x50
jne 0x40e4c0
push 0x493e0
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
push 0
push 0
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00410720
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040cd50
add esp, 4
mov eax, dword [edi + 0x60]
add dword [edi + 4], eax
mov dword [edi + 0x60], 0
jmp 0x40e51e
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret