Function at 0x40dd90
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 0x40e221
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa0]
push 0xa
push 4
push ecx
push eax
call fcn.0040e230
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a9d0
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.0040cb60
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0x55a596a4
mov byte [esp + 0x14], 0xf0
mov dword [esp + 0x15], 0
mov word [esp + 0x19], 0
mov eax, 0xcdf9ebfd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x32061413]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xf
mov byte [esp + eax + 0x32061413], cl
inc eax
cmp eax, 0xcdf9ec08
jne 0x40de20
lea eax, [esp + 0x10]
mov ecx, esi
push 0x451aa8
push eax
push edi
call fcn.0040d710
mov dword [esp + 0x10], 0x117a848c
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x85
xor cl, byte [esp + eax + 0x10]
add cl, 0x67
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 4
jne 0x40de70
mov ecx, esi
push ebx
lea eax, [esp + 0x14]
push eax
mov dword [esp + 8], edi
push edi
call fcn.0040d710
mov ebp, dword [str.jMw1IE__YT]
mov dword [esp + 0x10], 0x1fbab0b4
mov dword [esp + 0x14], 0
mov edi, 0x3a
mov edx, 0xc5
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0x2a]
lea ebx, [edi - 0x4b4f7d00]
mov ecx, edi
or ecx, edx
not ecx
add ecx, edi
and ecx, eax
or ebx, eax
xor ebx, ecx
lea eax, [ebx + 0xdd]
mov ecx, 0x22
sub ecx, ebx
or ecx, 1
add ecx, ebx
or eax, 1
add eax, ecx
add al, 0xde
mov byte [esp + edi - 0x2a], al
inc edi
dec edx
cmp edi, 0x42
jne 0x40dec0
mov ecx, esi
push ebp
lea eax, [esp + 0x14]
push eax
mov ebx, dword [esp + 8]
push ebx
call fcn.0040d710
mov dword [esp + 0x10], 0x1d1018e9
mov dword [esp + 0x14], 0xf01d1401
mov dword [esp + 0x18], 0x6071cf1
mov byte [esp + 0x1c], pe_nt_image_headers32
mov dword [esp + 0x1d], 0
mov dword [esp + 0x20], 0
mov eax, 0x69
mov ecx, 0x96
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x59]
mov edi, eax
or edi, edx
not edx
or edx, ecx
and edx, edi
add dl, 0xf3
mov byte [esp + eax - 0x59], dl
inc eax
dec ecx
cmp eax, 0x7d
jne 0x40df50
mov dword [esp + 4], 0x37bac6d9
mov dword [esp + 8], 0
mov eax, 0xf63b3276
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x9c4cd8e]
xor ecx, eax
mov edx, ecx
and edx, 0x31
xor ecx, 0xb1
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax + 0x9c4cd8e], cl
inc eax
cmp eax, 0xf63b327e
jne 0x40df90
lea edx, [esp + 4]
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push edx
push ebx
call fcn.0040d710
mov dword [esp + 0x10], 0xd6c2c4da
mov byte [esp + 0x14], 0x70
mov word [esp + 0x15], 0
mov byte [esp + 0x17], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x10]
mov ebp, eax
and ebp, 0xa
mov edx, ecx
xor edx, 0x84315615
add edx, ebp
mov ebp, edx
and ebp, edi
add edx, edi
add ebp, ebp
sub edx, ebp
lea edi, [edx + 0x6b095196]
mov ebp, 0x69
sub ebp, edx
or ebp, 1
mov ebx, edi
and ebx, 0xfe
xor edi, 1
lea edx, [edx*2 + 0x6b095196]
add edx, ebp
add edx, edi
sub edx, ebx
add dl, 0x97
mov byte [esp + ecx + 0x10], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x40dff0
mov ecx, esi
push dword [esp + 0x9c]
push dword [esp + 0x9c]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0xc]
call fcn.0040d950
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 dword [esp + 0x92], 0
xor ecx, ecx
xor ebp, ebp
nop
nop
nop
nop
mov edi, ecx
and edi, 0x1c
mov edx, ebp
xor edx, 0x8e
add edx, edi
xor dl, byte [esp + ebp + 0x10]
add dl, 0x3a
mov byte [esp + ebp + 0x10], dl
inc ebp
add ecx, 2
cmp ebp, 0x86
jne 0x40e190
mov dword [esp + 4], 0x41e54715
mov dword [esp + 8], 0x4de943d0
mov dword [esp + 0xc], 0x4f4c
xor ecx, ecx
mov edx, ecx
add dl, 0xf1
xor dl, byte [esp + ecx + 4]
add dl, 0x4b
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0xc
jne 0x40e1d0
push 0x493e0
push eax
mov edi, dword [esp + 8]
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00410a70
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cb70
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e223
mov bl, 1
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret