Function at 0x40a070
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov edi, dword [ebp + 8]
mov dword [esp + 0x74], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x78], 0x2f3630db
mov dword [esp + 0x7c], 0x88504b3d
mov dword [esp + 0x80], 0x444852b2
mov dword [esp + 0x84], 0x5bb7f590
mov dword [esp + 0x88], 0x4b4db25a
mov dword [esp + 0x8c], 0x435a5245
mov dword [esp + 0x90], 0x5a9f419f
mov dword [esp + 0x94], 0x5a5b5fa8
mov dword [esp + 0x98], 0xf4faf64a
mov word [esp + 0x9c], 0xfdf8
mov dword [esp + 0x9e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x29
ja 0x40a150
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0x8586eabb
add eax, 0x8586eabb
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xe3
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x78], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2a
jb 0x40a110
mov dword [esp + 8], 0xa39a9684
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x40a1ce
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 8]
lea eax, [edx + 0x670bd1bb]
lea ecx, [edx + esi]
add ecx, 0x670bd1bb
add edx, 0xbb
and edx, esi
and eax, esi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0xe3
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x40a180
mov dword [esp + 0x18], 0x76743839
mov dword [esp + 0x1c], 0x7a7a0400
mov dword [esp + 0x20], 0x7f727c09
mov dword [esp + 0x24], 0x62677e73
mov dword [esp + 0x28], 0x2a675352
mov dword [esp + 0x2c], 0x6409cfcd
mov dword [esp + 0x30], 0x616f5966
mov dword [esp + 0x34], 0x1672245c
mov dword [esp + 0x38], 0x24191d23
mov dword [esp + 0x3c], 0x141f2511
mov dword [esp + 0x40], 0x19426316
mov dword [esp + 0x44], 0x4a0b2f13
mov dword [esp + 0x48], 0x1a361c00
mov dword [esp + 0x4c], 0x1604597f
mov dword [esp + 0x50], 0x4d770801
mov dword [esp + 0x54], 0x323a080a
mov dword [esp + 0x58], 0x316a4a72
mov dword [esp + 0x5c], 0x353b3d31
mov dword [esp + 0x60], 0x463f3025
mov word [esp + 0x64], 0x817e
mov word [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp + 0x66], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x57
ja 0x40a2e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x757b2ca2]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x757b2ca1
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x92
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x58
jb 0x40a2a0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x18]
mov edx, edi
test cl, cl
je 0x40a30b
lea esi, [esp + 0x19]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40a300
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40a32b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40a320
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40a34b
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a340
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x78]
test al, al
mov dword [esp + 0x70], edi
je 0x40a37b
lea ecx, [esp + 0x79]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a370
mov byte [edx], 0
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
mov ecx, esi
lea esi, [edx + eax]
add eax, ecx
mov ecx, ebx
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 ebx, dword [ebp + 0x14]
test bl, 1
je 0x40a3bd
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x18], 0x18076b65
mov dword [esp + 0x1c], 0x400d22c
mov dword [esp + 0x20], 0xdc07d62a
mov dword [esp + 0x24], 0x22d125d2
mov dword [esp + 0x28], 0xedd2ded9
mov dword [esp + 0x2c], 0x414b2ee1
mov word [esp + 0x30], 0x434d
mov byte [esp + 0x32], 0x7c
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov byte [esp + 0x3b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x23
mov edi, dword [esp + 0x70]
ja 0x40a470
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x18]
lea esi, [eax + ecx]
add esi, 0x3a738d4d
add eax, 0x3a738d4d
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x78]
add al, 0xe5
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x24
jb 0x40a430
add edx, ebx
movzx eax, byte [esp + 0x18]
test al, al
je 0x40a48b
lea ecx, [esp + 0x19]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a480
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x74]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10