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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa4
cmp dword [ecx + 0x20], 0
je 0x40e234
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa0]
push 0xa
push 4
push ecx
push eax
call fcn.0040e250
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040ab20
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040cbc0
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0x35051604
mov byte [esp + 0x14], 0x90
mov dword [esp + 0x15], 0
mov word [esp + 0x19], 0
xor ecx, ecx
mov ebp, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebp
or eax, 0x25
mov edx, ecx
or edx, 0x25
add edx, eax
add edx, ecx
inc dl
xor dl, byte [esp + ecx + 0x10]
add dl, 0x47
mov byte [esp + ecx + 0x10], dl
lea eax, [ecx + 1]
dec ebp
mov ecx, eax
cmp eax, 0xb
jne 0x40de40
lea eax, [esp + 0x10]
mov ecx, esi
push 0x451558
push eax
push edi
call fcn.0040d7b0
mov dword [esp + 0x10], 0xcfaa5058
mov word [esp + 0x14], 0
mov eax, 0x52
mov ecx, 0xad
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax - 0x42]
mov edx, ecx
xor edx, eax
and edx, ebp
xor edx, eax
add dl, 0x66
mov byte [esp + eax - 0x42], dl
inc eax
dec ecx
cmp eax, 0x58
jne 0x40dea0
mov ecx, esi
push ebx
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d7b0
mov eax, dword [str.vjaGvm__angry]
mov dword [esp + 0x10], 0x137e7884
mov word [esp + 0x14], 0
mov ecx, 0xb087af84
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x4f78508c]
mov ebx, ecx
and ebx, edx
add ebx, ebx
sub edx, ebx
add edx, ecx
mov ebx, edx
and ebx, 0x6b
xor edx, 0x6b
lea edx, [edx + ebx*2]
inc dl
mov byte [esp + ecx + 0x4f78508c], dl
inc ecx
cmp ecx, 0xb087af8a
jne 0x40def0
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d7b0
mov dword [esp + 0x10], 0xe7ece4f3
mov dword [esp + 0x14], 0xf4e3e8db
mov dword [esp + 0x18], 0xeeede8fb
mov byte [esp + 0x1c], 0xc
mov dword [esp + 0x1d], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
lea edx, [eax + 0x40]
and edx, ecx
or ecx, eax
or ecx, 0x99e8fc40
xor ecx, edx
add ecx, 0xfe7312bf
mov edx, ecx
xor edx, 0xc
and ecx, 0x73
add ecx, ecx
sub ecx, edx
add cl, 0xd
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x11
jne 0x40df60
mov dword [esp], 0x89063633
mov word [esp + 4], 0
mov eax, 3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 3]
mov ebx, ecx
and ebx, 3
mov ebp, eax
and ebp, 0xc
or ebp, ebx
xor ebp, edx
and edx, 0x10
xor ebp, 0x73
lea edx, [edx*2]
add edx, ebp
inc dl
mov byte [esp + eax - 3], dl
inc eax
dec ecx
cmp eax, 9
jne 0x40dfb0
mov edx, esp
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push edx
push edi
call fcn.0040d7b0
mov dword [esp + 0x10], 0x323e3c36
mov byte [esp + 0x14], 0x88
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xe3
xor cl, byte [esp + eax + 0x10]
add cl, 0x91
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xc
jne 0x40e010
mov ecx, esi
push dword [esp + 0x9c]
push dword [esp + 0x9c]
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040da10
mov eax, dword [esi + 0x60]
mov dword [esp + 0x10], 0x57a54987
mov dword [esp + 0x14], 0x53ae55a6
mov dword [esp + 0x18], 0x5fac51bd
mov dword [esp + 0x1c], 0x5b6f5da0
mov dword [esp + 0x20], 0x679f5984
mov dword [esp + 0x24], 0x638f6594
mov dword [esp + 0x28], 0x6f4e61a6
mov dword [esp + 0x2c], 0x6b976d99
mov dword [esp + 0x30], 0x778a699c
mov dword [esp + 0x34], 0x7382759d
mov dword [esp + 0x38], 0x7f807191
mov dword [esp + 0x3c], 0x7b497d80
mov dword [esp + 0x40], 0x7f57992
mov dword [esp + 0x44], 0x3f705fa
mov dword [esp + 0x48], 0xfe20135
mov dword [esp + 0x4c], 0xbf60ded
mov dword [esp + 0x50], 0x17d109e9
mov dword [esp + 0x54], 0x13fc1534
mov dword [esp + 0x58], 0x1fe311e3
mov dword [esp + 0x5c], 0x1bf61dee
mov dword [esp + 0x60], 0x27d819f9
mov dword [esp + 0x64], 0x23e725dd
mov dword [esp + 0x68], 0x2fc321ce
mov dword [esp + 0x6c], 0x2b172d14
mov dword [esp + 0x70], 0x37db29c4
mov dword [esp + 0x74], 0x33db3509
mov dword [esp + 0x78], 0x3fd231c0
mov dword [esp + 0x7c], 0x3bd53dcf
mov dword [esp + 0x80], 0xc72b39d1
mov dword [esp + 0x84], 0xc33cc53a
mov dword [esp + 0x88], 0xcfffc12d
mov dword [esp + 0x8c], 0xcbdccdd9
mov word [esp + 0x90], 0xc9c8
mov word [esp + 0x96], 0
mov dword [esp + 0x92], 0
xor ebx, ebx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
and ecx, 0x1c
mov edx, ebp
xor edx, 0x8e
add edx, ecx
xor dl, byte [esp + ebp + 0x10]
add dl, 0x3a
mov byte [esp + ebp + 0x10], dl
inc ebp
add ebx, 2
cmp ebp, 0x88
jne 0x40e180
mov dword [esp], 0x93f391a7
mov dword [esp + 4], 0xafd7addc
mov word [esp + 8], 0xa9a8
mov dword [esp + 0xa], 0
mov ebp, 0x9c
mov edx, 0x63
nop
nop
mov ebx, edx
and ebx, 0x71
mov ecx, ebp
and ecx, 0x8e
or ecx, ebx
xor cl, byte [esp + ebp - 0x9c]
xor cl, 0x71
add cl, 0xf4
mov byte [esp + ebp - 0x9c], cl
inc ebp
dec edx
cmp ebp, 0xaa
jne 0x40e1d0
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00411330
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cbd0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e236
mov bl, 1
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret