Function at 0x40d770
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x64], 0x5b5c5a0f
mov dword [esp + 0x68], 0x1e565f69
mov dword [esp + 0x6c], 0x62564874
mov dword [esp + 0x70], 0x2f1b250a
mov dword [esp + 0x74], 0x2719182c
mov dword [esp + 0x78], 0x27201821
mov dword [esp + 0x7c], 0x246b3963
mov dword [esp + 0x80], 0xc0f2b12
mov dword [esp + 0x84], 0x5250543c
mov word [esp + 0x88], 0xad52
mov dword [esp + 0x8a], 0
mov word [esp + 0x8e], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x64]
mov edi, esi
and edi, 0x30
mov edx, esi
and edx, 2
mov ebp, edx
xor ebp, 2
imul ebp, edi
or edi, 2
imul edi, edx
mov edx, esi
xor edx, 0xdf51f232
add edx, ebp
add edx, edi
mov edi, eax
and edi, edx
add edi, edi
sub edx, edi
add dl, al
add dl, 6
mov byte [esp + esi + 0x64], dl
inc esi
cmp esi, 0x2c
jne 0x40d800
mov dword [esp + 4], 0xd9c4c822
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov esi, 0xeaef8a2f
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi + 0x151075d5]
mov eax, edi
not eax
lea edx, [esi + 0x40000000]
mov ebp, edi
xor ebp, 0xaa
or edi, 0x55
and edi, ebp
mov ebp, esi
and ebp, 0xc0ca022a
and edx, 0x2a258815
or edx, ebp
and eax, 0xaa
or eax, edi
xor eax, edx
xor eax, 0xaa
add al, 0x15
mov byte [esp + esi + 0x151075d5], al
inc esi
cmp esi, 0xeaef8a36
jne 0x40d860
mov dword [esp + 0x10], 0x86805c5d
mov dword [esp + 0x14], 0x8282506c
mov dword [esp + 0x18], 0x9f8a804d
mov dword [esp + 0x1c], 0x9a879e83
mov dword [esp + 0x20], 0x42978382
mov dword [esp + 0x24], 0x88752f29
mov dword [esp + 0x28], 0xb5afbdb6
mov dword [esp + 0x2c], 0xb64a70b8
mov dword [esp + 0x30], 0xb0bdb1b3
mov dword [esp + 0x34], 0xb8bfb1bd
mov dword [esp + 0x38], 0xbd7a53a6
mov dword [esp + 0x3c], 0x62a3afa3
mov dword [esp + 0x40], 0xb2a6b0b4
mov dword [esp + 0x44], 0xb6a8755f
mov dword [esp + 0x48], 0x927ccd5
mov dword [esp + 0x4c], 0xcad2d4ca
mov dword [esp + 0x50], 0xc5022a02
mov dword [esp + 0x54], 0xd9c3d9dd
mov dword [esp + 0x58], 0x36dfc4d9
mov word [esp + 0x5c], 0x7d1e
mov byte [esp + 0x60], 0
mov word [esp + 0x5e], 0
mov esi, 0x35e6eb89
mov ecx, 0xca191476
mov ebp, 0x4a191477
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x35e6eb79]
lea eax, [esi - 1]
xor eax, edx
or eax, ebp
mov edi, ecx
sub edi, eax
sub edi, eax
xor edi, edx
lea eax, [esi + eax*2]
and eax, edx
add eax, eax
sub eax, edi
lea edx, [eax + 0x57]
mov edi, 0x28
sub edi, eax
not eax
and eax, 1
and edi, 0x6e
and edx, 0x91
or edx, edi
xor edx, 0x6f
lea eax, [edx + eax*2]
mov byte [esp + esi - 0x35e6eb79], al
inc esi
dec ecx
dec ebp
cmp esi, 0x35e6ebda
jne 0x40d970
mov ebp, dword [esp + 0xa4]
add ebp, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ebp
test al, al
je 0x40d9eb
lea esi, [esp + 0x11]
mov edx, ebp
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40d9e0
mov dword [esp], ebp
mov byte [edx], 0
mov ecx, dword [esp + 0xa8]
movzx eax, byte [ecx]
test al, al
je 0x40da0b
inc ecx
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da00
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40da2b
lea ecx, [esp + 5]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da20
mov byte [edx], 0
movzx eax, byte [esp + 0x64]
test al, al
je 0x40da4b
lea ecx, [esp + 0x65]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da40
mov byte [edx], 0
mov ebp, dword [esp + 0xb0]
mov ecx, ebp
shr ecx, 2
mov ebx, dword [esp + 0xac]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebp
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, ebp
test cl, 1
je 0x40da9d
mov ecx, dword [esp + 0xb0]
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0xb6b19d93
mov dword [esp + 0x14], 0x92aa7c42
mov dword [esp + 0x18], 0x42914040
mov dword [esp + 0x1c], 0x484b4748
mov dword [esp + 0x20], 0x4344484f
mov dword [esp + 0x24], 0xb7a5804f
mov word [esp + 0x28], 0xb5bb
mov byte [esp + 0x2a], 0xce
mov word [esp + 0x2b], 0
mov byte [esp + 0x2d], 0
mov eax, 0x707ce259
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x707ce249]
mov ebx, ecx
and ebx, eax
add bl, bl
sub cl, bl
movzx ecx, cl
add ecx, eax
add cl, 0x43
mov byte [esp + eax - 0x707ce249], cl
inc eax
cmp eax, 0x707ce277
jne 0x40daf0
add edx, dword [esp + 0xb0]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40db3b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40db30
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 0x10