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

Disassembly:
sub esp, 0x2fc
push ebx
push ebp
push esi
push edi
push 0x42
lea eax, [esp + 0x98]
mov dword [esp + 0x88], ecx
push 0
push eax
mov dword [esp + 0x1c], 0
call fcn.0040d320
add esp, 0xc
mov edx, 0x5f
push 0x7da5
push 0xaa4d6e52
lea ecx, [edx - 0x53]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x94]
push ecx
push 0
lea ecx, [esp + 0x18]
push ecx
call eax
test eax, eax
jne 0x40c21e
mov esi, dword [esp + 0x10]
lea ecx, [eax + 0xc]
push 0xca18
push 0x128f7352
mov edx, 0x82
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x84]
push 0
push 0
push 0
push 0
push ecx
push 1
push esi
call eax
test eax, eax
jne 0x40c21e
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x67]
push 0xdfbc
push 0xfb2c7452
lea ecx, [eax + 0xc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x78]
push ecx
push 0
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
push ecx
push esi
call eax
cmp eax, 0xea
jne 0x40c1fb
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c1fb
xor ecx, ecx
mov edx, 0x29c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040b130
mov esi, dword [esp + 0x14]
mov edi, eax
add esp, 4
mov dword [esp + 0x74], edi
mov ecx, 0xc
test edi, edi
je 0x40c204
mov eax, dword [esp + 0x18]
lea edx, [ecx + 0x5b]
push 0xdfbc
push 0xfb2c7452
mov dword [esp + 0x28], eax
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x78]
push ecx
push edi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
push ecx
push esi
call eax
test eax, eax
jne 0x40c22b
cmp dword [esp + 0x18], eax
je 0x40c22b
mov eax, dword fs:[0x18]
mov ebx, 0x7f
mov eax, dword [eax + 0x20]
mov byte [esp + 0x59], 0x12
mov byte [esp + 0x5a], 0x1c
mov byte [esp + 0x5b], 0x7b
mov byte [esp + 0x5c], 0x1c
mov byte [esp + 0x5d], 0x20
mov byte [esp + 0x5e], 0x1c
mov byte [esp + 0x5f], 0x32
mov byte [esp + 0x60], 0x1c
mov byte [esp + 0x61], 0x64
mov byte [esp + 0x62], 0x1c
mov byte [esp + 0x63], 0x17
mov byte [esp + 0x64], 0x1c
mov byte [esp + 0x65], 0x12
mov byte [esp + 0x66], 0x1c
mov byte [esp + 0x67], 0x17
mov byte [esp + 0x68], 0x1c
mov byte [esp + 0x69], 0x4b
mov byte [esp + 0x6a], 0x1c
mov byte [esp + 0x6b], 0x12
mov byte [esp + 0x6c], 0x1c
mov byte [esp + 0x6d], 0x7b
mov byte [esp + 0x6e], 0x1c
mov byte [esp + 0x6f], 0x12
mov byte [esp + 0x70], 0x1c
mov byte [esp + 0x71], 0x1c
mov byte [esp + 0x72], 0x1c
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x59]
mov byte [esp + 0x73], 0
cmp byte [esp + 0x73], 0
jne 0x40bda9
xor esi, esi
nop dword [eax]
mov al, byte [esp + esi + 0x59]
movzx ecx, al
sub ecx, 0x1c
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
cdq
idiv ebx
lea eax, [edx + 0x7f]
cdq
idiv ebx
mov byte [esp + esi + 0x59], dl
inc esi
cmp esi, 0x1a
jb 0x40bd80
push 0x22c
lea eax, [esp + 0xe0]
push 0
push eax
call fcn.0040d320
add esp, 0xc
mov edx, 0x4d
push 0xa0fa
push 0x3ee67443
lea ecx, [edx - 0x4c]
call fcn.00402800
add esp, 8
push 0
push 2
call eax
mov esi, eax
mov ebx, 2
cmp esi, 0xffffffff
jne 0x40bdf3
xor ecx, ecx
jmp 0x40bebc
mov edx, 0x2f
mov dword [esp + 0xdc], 0x22c
push 0xdb1
push 0x97405750
lea ecx, [edx - 0x2e]
call fcn.00402800
add esp, 8
lea edx, [esp + 0xdc]
push edx
push esi
call eax
mov ecx, 1
test eax, eax
jne 0x40be50
push 0x1543
push 0x45ea6543
lea edx, [ecx + 0x5a]
call fcn.00402800
add esp, 8
push esi
call eax
xor ecx, ecx
jmp 0x40bebc
push 0x83a6
push 0x7ab6576c
mov edx, ebx
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x5d]
push ecx
call eax
mov ecx, 1
test eax, eax
je 0x40be9b
push 0xaf99
push 0xe08d5750
lea edx, [ecx + 0x53]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0xdc]
push ecx
jmp 0x40be20
push 0x1543
push 0x45ea6543
mov edx, 0x5b
call fcn.00402800
add esp, 8
push esi
call eax
mov ecx, dword [esp + 0xe4]
xor eax, eax
mov dword [esp + 0x14], ecx
xor ebp, ebp
mov dword [esp + 0x7c], ebp
cmp dword [esp + 0x20], eax
jbe 0x40c18b
mov edx, dword [esp + 0x1c]
mov ebx, edi
mov dword [esp + 0x80], ebx
nop
mov ebx, dword [ebx]
cmp ebx, edx
je 0x40c1ef
cmp ebx, ecx
je 0x40c1ef
cmp eax, ebx
je 0x40c168
mov dword [esp + 0x24], ebx
mov esi, 0x1e
xor edi, edi
test edi, edi
je 0x40bf12
push edi
call fcn.0040b150
add esp, 4
xor ecx, ecx
mov eax, esi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040b130
mov edi, eax
add esp, 4
test edi, edi
je 0x40c15c
xor eax, eax
mov dword [esp + 0x88], ebx
push 0x477f
push 0x4eb86e5a
mov word [esp + 0x94], ax
lea edx, [eax + 0x6f]
mov word [esp + 0x96], si
lea ecx, [eax + 5]
mov dword [esp + 0x98], edi
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x88]
push 0
push 0xc
push ecx
push 0x58
call eax
test eax, eax
je 0x40bfab
cmp eax, 0xc0000004
jne 0x40bf9d
cmp esi, 0x104
jae 0x40c15c
add esi, esi
jmp 0x40bf05
push edi
call fcn.0040b150
add esp, 4
jmp 0x40c15c
mov byte [esp + 0x2b], 0x5d
mov byte [esp + 0x2c], 0x6c
mov byte [esp + 0x2d], 0x20
mov byte [esp + 0x2e], 0x6c
mov byte [esp + 0x2f], 0x1a
mov byte [esp + 0x30], 0x6c
mov byte [esp + 0x31], 0xa
mov byte [esp + 0x32], 0x6c
mov byte [esp + 0x33], 0x2a
mov byte [esp + 0x34], 0x6c
mov byte [esp + 0x35], 0x53
mov byte [esp + 0x36], 0x6c
mov byte [esp + 0x37], 0x20
mov byte [esp + 0x38], 0x6c
mov byte [esp + 0x39], 0x79
mov byte [esp + 0x3a], 0x6c
mov byte [esp + 0x3b], 0x5d
mov byte [esp + 0x3c], 0x6c
mov byte [esp + 0x3d], 0x6c
mov byte [esp + 0x3e], 0x6c
mov al, byte [esp + 0x2b]
mov byte [esp + 0x3f], 0
cmp byte [esp + 0x3f], 0
jne 0x40c04f
xor esi, esi
lea ebp, [esi + 0x7f]
mov al, byte [esp + esi + 0x2b]
mov ecx, 0x6c
movzx eax, al
sub ecx, eax
lea eax, [ecx + ecx*4]
shl eax, 3
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + esi + 0x2b], dl
inc esi
cmp esi, 0x14
jb 0x40c024
mov ebp, dword [esp + 0x7c]
mov edx, 0x13
push 0xd1b2
push 0x8c795753
lea ecx, [edx - 9]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x2b]
push ecx
push edi
call eax
mov byte [esp + 0x40], 0x72
test eax, eax
mov byte [esp + 0x41], 8
mov byte [esp + 0x42], 0x18
setne bl
mov byte [esp + 0x43], 8
mov byte [esp + 0x44], 0x56
mov byte [esp + 0x45], 8
mov byte [esp + 0x46], 0x3f
mov byte [esp + 0x47], 8
mov byte [esp + 0x48], 0x6b
mov byte [esp + 0x49], 8
mov byte [esp + 0x4a], 0x72
mov byte [esp + 0x4b], 8
mov byte [esp + 0x4c], 0x54
mov byte [esp + 0x4d], 8
mov byte [esp + 0x4e], 0x19
mov byte [esp + 0x4f], 8
mov byte [esp + 0x50], 0x1a
mov byte [esp + 0x51], 8
mov byte [esp + 0x52], 0x5b
mov byte [esp + 0x53], 8
mov byte [esp + 0x54], 0x1a
mov byte [esp + 0x55], 8
mov byte [esp + 0x56], 8
mov byte [esp + 0x57], 8
mov al, byte [esp + 0x40]
mov byte [esp + 0x58], 0
cmp byte [esp + 0x58], 0
jne 0x40c123
xor ecx, ecx
lea esi, [ecx + 0x7f]
mov al, byte [esp + ecx + 0x40]
movzx eax, al
sub eax, 8
imul eax, eax, 0x37
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov byte [esp + ecx + 0x40], dl
inc ecx
cmp ecx, 0x18
jb 0x40c103
mov edx, 0x13
push 0xd1b2
push 0x8c795753
lea ecx, [edx - 9]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x40]
push ecx
push edi
call eax
push edi
mov esi, eax
call fcn.0040b150
add esp, 4
test esi, esi
jne 0x40c18b
test bl, bl
jne 0x40c1ef
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x80]
inc ebp
add ebx, 0x29c
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebx
cmp ebp, dword [esp + 0x20]
jb 0x40bee0
mov esi, dword [esp + 0x10]
mov edx, 0x4b
push 0x5ff2
push 0xa38a6e52
lea ecx, [edx - 0x3f]
call fcn.00402800
add esp, 8
push 0
push 1
push esi
call eax
push dword [esp + 0x74]
mov edi, eax
call fcn.0040b150
mov esi, dword [esp + 0x14]
add esp, 4
mov edx, 0x4c
push 0x6e41
push 0xfc106e52
lea ecx, [edx - 0x40]
call fcn.00402800
add esp, 8
push esi
call eax
test edi, edi
sete al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2fc
ret
push dword [esp + 0x74]
call fcn.0040b150
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, 0xc
push 0x6e41
push 0xfc106e52
mov edx, 0x4c
call fcn.00402800
add esp, 8
push esi
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x2fc
ret
push edi
jmp 0x40c1f3