Function at 0x40d930
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, 0x8c
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp], eax
mov dword [esp + 0x60], 0x2b241ac7
mov dword [esp + 0x64], 0xe62e27d9
mov dword [esp + 0x68], 0xd22e28cc
mov dword [esp + 0x6c], 0x27db9dfa
mov dword [esp + 0x70], 0xcfc9d824
mov dword [esp + 0x74], 0x3f30c831
mov dword [esp + 0x78], 0x3cfb39f3
mov dword [esp + 0x7c], 0xc4c73bc2
mov dword [esp + 0x80], 0xe2e09c34
mov word [esp + 0x84], 0xd5e2
mov dword [esp + 0x86], 0
mov eax, 0x1e
mov esi, 0xe1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x42]
mov edi, esi
or edi, edx
not edx
or edx, eax
and edx, edi
mov bl, 0x69
sub bl, dl
mov byte [esp + eax + 0x42], bl
inc eax
dec esi
cmp eax, 0x48
jne 0x40d9c0
mov dword [esp + 4], 0xc1cc3026
mov dword [esp + 8], 0
mov esi, 0xb730cd31
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x48cf32d3]
mov edx, esi
and edx, eax
add eax, esi
add edx, edx
mov edi, eax
sub edi, edx
mov edx, edi
not edx
and edx, 0xf6
and edi, 8
sub edi, edx
and eax, 1
or eax, edi
inc al
mov byte [esp + esi + 0x48cf32d3], al
inc esi
cmp esi, 0xb730cd39
jne 0x40da00
mov dword [esp + 0x10], 0x225c6857
mov dword [esp + 0x14], 0x265a7470
mov dword [esp + 0x18], 0x55222c77
mov dword [esp + 0x1c], 0x2e295221
mov dword [esp + 0x20], 0x7e313d22
mov dword [esp + 0x24], 0x3c6b919b
mov dword [esp + 0x28], 0x3339373e
mov dword [esp + 0x2c], 0x3a627434
mov dword [esp + 0x30], 0xcccbcb31
mov dword [esp + 0x34], 0xccc1cbc7
mov dword [esp + 0x38], 0xcb729dce
mov dword [esp + 0x3c], 0x86c5c1c1
mov dword [esp + 0x40], 0xaedeacb0
mov dword [esp + 0x44], 0xaadc6f85
mov dword [esp + 0x48], 0x6781d8df
mov dword [esp + 0x4c], 0xdedad8da
mov dword [esp + 0x50], 0xe35ab662
mov dword [esp + 0x54], 0xefe5e3e7
mov dword [esp + 0x58], 0xb2e9e09b
mov dword [esp + 0x5c], 0x7756
mov esi, 0xcbdbf5f
mov edi, 0x34240a0
mov ecx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi - 0xcbdbf4f]
mov edx, edi
and edx, 0x34240d7
mov ebx, esi
and ebx, 0x28
or ebx, edx
xor ebx, 0xf0000028
lea ebp, [edi - 0x10000000]
and ebp, ebx
mov edx, ebp
or edx, eax
xor ebp, eax
add ebp, eax
or eax, esi
not ebp
add ebp, edx
and ebp, eax
mov eax, ebp
and eax, 0x24
xor ebp, 0x24
lea eax, [eax*2]
add eax, ebp
inc al
mov byte [esp + esi - 0xcbdbf4f], al
inc esi
dec edi
cmp esi, 0xcbdbfaf
jne 0x40daf0
add ecx, dword [esp]
movzx eax, byte [esp + 0x10]
mov edx, ecx
test al, al
je 0x40db6b
lea esi, [esp + 0x11]
mov edx, ecx
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40db60
mov byte [edx], 0
mov esi, dword [esp + 0xa4]
movzx eax, byte [esi]
test al, al
je 0x40db8b
inc esi
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40db80
mov dword [esp], ecx
mov byte [edx], 0
movzx eax, byte [esp + 4]
test al, al
je 0x40dbab
lea ecx, [esp + 5]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dba0
mov byte [edx], 0
movzx eax, byte [esp + 0x60]
test al, al
je 0x40dbcb
lea ecx, [esp + 0x61]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dbc0
mov byte [edx], 0
mov ebx, dword [esp + 0xac]
mov ecx, ebx
shr ecx, 2
mov eax, dword [esp + 0xa8]
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebp, ebx
and ebp, 0xfffffffc
lea esi, [edx + ebp]
add ebp, dword [esp + 0xa8]
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov ebx, ebp
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and eax, ecx
je 0x40dc44
mov ecx, dword [esp + 0xac]
and ecx, 2
movzx ebx, byte [ebp + ecx]
mov byte [esi + ecx], bl
cmp eax, 1
je 0x40dc44
movzx ebx, byte [ebp + ecx + 1]
mov byte [esi + ecx + 1], bl
cmp eax, 2
je 0x40dc44
movzx eax, byte [ebp + ecx + 2]
mov byte [esi + ecx + 2], al
mov dword [esp + 0x10], 0x66670b05
mov dword [esp + 0x14], 0x2226d0ce
mov dword [esp + 0x18], 0xd227d4d4
mov dword [esp + 0x1c], 0xc4d1d9d4
mov dword [esp + 0x20], 0xd1d0dcd9
mov dword [esp + 0x24], 0x656b0cc1
mov word [esp + 0x28], 0x636d
mov byte [esp + 0x2a], 0x7a
mov word [esp + 0x2b], 0
mov byte [esp + 0x2d], 0
mov eax, 0x51961e3c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x51961e2c]
lea esi, [eax - 0x51961e00]
and esi, ecx
or ecx, eax
xor ecx, esi
add ecx, 0x681168d3
mov esi, ecx
and esi, 1
xor ecx, 1
lea ecx, [ecx + esi*2]
mov byte [esp + eax - 0x51961e2c], cl
inc eax
cmp eax, 0x51961e5a
jne 0x40dca0
add edx, dword [esp + 0xac]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40dcfb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40dcf0
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [esp + 0xc]
add dword [eax + 0x60], edx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10