Function at 0x40d670
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, 0x7c
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x90]
mov esi, dword [ecx + 0x80]
mov dword [esp + 0x14], 0xabacaa5f
mov dword [esp + 0x18], 0xed6afb9
mov dword [esp + 0x1c], 0xc2d6d834
mov dword [esp + 0x20], 0xdfcb051a
mov dword [esp + 0x24], 0xc7c9c8dc
mov dword [esp + 0x28], 0xc7c0c8c1
mov dword [esp + 0x2c], 0xc41bc903
mov dword [esp + 0x30], 0xdcdfdbd2
mov dword [esp + 0x34], 0x727074cc
mov dword [esp + 0x38], 0x7d72
xor eax, eax
nop
nop
nop
mov edx, eax
add dl, 0xba
xor dl, byte [esp + eax + 0x14]
add dl, 0x5e
mov byte [esp + eax + 0x14], dl
inc eax
cmp eax, 0x28
jne 0x40d6e0
mov dword [esp + 0xc], 0x292438c2
mov dword [esp + 0x10], 0
xor edx, edx
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ebx, eax
xor bl, 0x47
add bl, dl
xor bl, byte [esp + eax + 0xc]
add bl, 0x9d
mov byte [esp + eax + 0xc], bl
inc eax
add dl, 2
cmp eax, 8
jne 0x40d710
mov dword [esp + 0x40], 0xc4e92f2d
mov dword [esp + 0x44], 0xc1cfb9c6
mov dword [esp + 0x48], 0x361204bc
mov dword [esp + 0x4c], 0x44393d43
mov dword [esp + 0x50], 0x343f4531
mov dword [esp + 0x54], 0x39e20336
mov dword [esp + 0x58], 0xea2b4f33
mov dword [esp + 0x5c], 0x3a563c20
mov dword [esp + 0x60], 0x3624f91f
mov dword [esp + 0x64], 0xed172821
mov dword [esp + 0x68], 0x121a282a
mov dword [esp + 0x6c], 0x11ca2ad2
mov dword [esp + 0x70], 0x151b1d11
mov dword [esp + 0x74], 0x261f1005
mov dword [esp + 0x78], 0xe1de
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
add dl, 0xf6
xor dl, byte [esp + ebx + 0x40]
add dl, 0x32
mov byte [esp + ebx + 0x40], dl
mov edx, ebx
and edx, 1
xor ebx, 1
lea ebx, [ebx + edx*2]
cmp ebx, 0x3c
jb 0x40d7b0
add ebp, esi
mov word [esp], 0xd0d3
mov byte [esp + 2], 0x26
mov word [esp + 3], 0
mov byte [esp + 5], 0
mov esi, 0x8c8d5449
nop
nop
movzx ebx, byte [esp + esi + 0x7372abb7]
mov edx, ebx
not edx
or edx, esi
add dl, dl
add dl, bl
neg dl
movzx edx, dl
add edx, esi
add dl, 0x91
mov byte [esp + esi + 0x7372abb7], dl
inc esi
cmp esi, 0x8c8d544f
jne 0x40d7f0
movzx ebx, byte [esp]
mov esi, ebp
test bl, bl
je 0x40d83b
lea edx, [esp + 1]
mov esi, ebp
nop
nop
nop
nop
mov byte [esi], bl
inc esi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40d830
mov byte [esi], 0
movzx eax, byte [ecx + 0x60]
test al, al
je 0x40d85b
lea edx, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d850
mov byte [esi], 0
movzx eax, byte [esp + 0x40]
test al, al
je 0x40d87b
lea edx, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d870
mov byte [esi], 0
movzx eax, byte [edi]
test al, al
je 0x40d89b
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x40d890
mov byte [esi], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x40d8bb
lea edx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40d8b0
mov byte [esi], 0
movzx eax, byte [esp + 0x14]
test al, al
mov dword [esp + 8], ecx
mov dword [esp + 0x3c], ebp
je 0x40d8eb
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d8e0
mov byte [esi], 0
mov ebp, dword [esp + 0x9c]
mov ecx, ebp
shr ecx, 2
mov ebx, dword [esp + 0x98]
mov eax, ebx
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebp
and edx, 0xfffffffc
lea eax, [esi + edx]
add edx, ebx
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov ebx, edx
mov edi, eax
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, ebp
test cl, 1
je 0x40d93d
mov ecx, dword [esp + 0x9c]
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [eax + ecx], dl
mov dword [esp + 0x14], 0x999f9b9d
mov byte [esp + 0x18], 0x64
mov word [esp + 0x19], 0
mov byte [esp + 0x1b], 0
mov eax, 0x18
mov ecx, 0xe7
mov ebp, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 4]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x88
mov byte [esp + eax - 4], dl
inc eax
dec ecx
cmp eax, 0x20
jne 0x40d970
mov dword [esp + 0x40], 0x22237f7d
mov byte [esp + 0x44], 0x74
mov dword [esp + 0x45], 0
mov dword [esp + 0x48], 0
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
mov edi, edx
not edi
mov eax, edx
shr eax, 2
and edi, 2
imul edi, eax
shl al, 2
or al, 2
mov ah, dl
shr ah, 1
and ah, 1
mul ah
add al, al
mov ah, cl
and ah, 0xfc
sub al, ah
add al, 0x3c
movzx ebx, al
lea eax, [edx + edi*4]
add eax, ebx
add al, 2
xor al, byte [esp + edx + 0x40]
add al, 0xca
mov byte [esp + edx + 0x40], al
inc edx
add ecx, 2
cmp edx, 0xc
jne 0x40d9b0
add esi, dword [esp + 0x9c]
movzx eax, byte [esp + 0x40]
test al, al
je 0x40da1d
lea ecx, [esp + 0x41]
mov edx, dword [esp + 8]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da10
jmp 0x40da21
mov edx, dword [esp + 8]
mov byte [esi], 0
movzx eax, byte [edx + 0x60]
test al, al
je 0x40da3b
lea ecx, [edx + 0x61]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da30
mov byte [esi], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x40da5b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da50
mov byte [esi], 0
mov eax, esi
xor eax, ebp
not ebp
and ebp, esi
add ebp, ebp
sub ebp, eax
add dword [edx + 0x80], ebp
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10