Function at 0x40bbe0
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.0040d3a0
add esp, 0xc
mov edx, 0x45
push 0x65b7
push 0xbba26e52
lea ecx, [edx - 0x39]
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 0x40c296
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x48]
push 0xa88
push 0x9df77352
lea ecx, [eax + 0xc]
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 0x40c296
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x19]
push 0x3cbe
push 0xb9117452
lea ecx, [eax + 0xc]
mov dword [esp + 0x84], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x7c]
push ecx
push 0
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
push ecx
push esi
call eax
cmp eax, 0xea
jne 0x40c273
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c273
xor ecx, ecx
mov edx, 0x29c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040b1b0
mov esi, dword [esp + 0x14]
mov edi, eax
add esp, 4
mov dword [esp + 0x78], edi
mov ecx, 0xc
test edi, edi
je 0x40c27c
mov eax, dword [esp + 0x18]
lea edx, [ecx + 0xd]
push 0x3cbe
push 0xb9117452
mov dword [esp + 0x28], eax
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x7c]
push ecx
push edi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x24]
push ecx
push esi
call eax
test eax, eax
jne 0x40c2a3
cmp dword [esp + 0x18], eax
je 0x40c2a3
mov eax, dword fs:[0x18]
mov esi, 0x7f
mov eax, dword [eax + 0x20]
mov byte [esp + 0x59], 0x5d
mov byte [esp + 0x5a], 0x1c
mov byte [esp + 0x5b], 0x6d
mov byte [esp + 0x5c], 0x1c
mov byte [esp + 0x5d], 2
mov byte [esp + 0x5e], 0x1c
mov byte [esp + 0x5f], 0xc
mov byte [esp + 0x60], 0x1c
mov byte [esp + 0x61], 0x44
mov byte [esp + 0x62], 0x1c
mov byte [esp + 0x63], 0x7c
mov byte [esp + 0x64], 0x1c
mov byte [esp + 0x65], 0x5d
mov byte [esp + 0x66], 0x1c
mov byte [esp + 0x67], 0x7c
mov byte [esp + 0x68], 0x1c
mov byte [esp + 0x69], 0x28
mov byte [esp + 0x6a], 0x1c
mov byte [esp + 0x6b], 0x5d
mov byte [esp + 0x6c], 0x1c
mov byte [esp + 0x6d], 0x6d
mov byte [esp + 0x6e], 0x1c
mov byte [esp + 0x6f], 0x5d
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 0x40be10
xor ecx, ecx
nop word [eax + eax]
mov al, byte [esp + ecx + 0x59]
movzx eax, al
sub eax, 0x1c
imul eax, eax, 0x19
cdq
idiv esi
lea eax, [edx + 0x7f]
cdq
idiv esi
mov byte [esp + ecx + 0x59], dl
inc ecx
cmp ecx, 0x1a
jb 0x40bdf0
push 0x22c
lea eax, [esp + 0xe0]
push 0
push eax
call fcn.0040d3a0
add esp, 0xc
mov edx, 0x82
mov ecx, 1
push 0xa47e
push 0x45227443
call fcn.00402800
add esp, 8
push 0
push 2
call eax
mov esi, eax
cmp esi, 0xffffffff
jne 0x40be57
xor ecx, ecx
jmp 0x40bf1f
mov edx, 0x32
mov dword [esp + 0xdc], 0x22c
push 0x4b9
push 0x60c45750
lea ecx, [edx - 0x31]
call fcn.00402800
add esp, 8
lea edx, [esp + 0xdc]
push edx
push esi
call eax
mov ecx, 1
test eax, eax
jne 0x40beb0
push 0x85cc
push 0x3d6a6543
lea edx, [ecx + 0x12]
call fcn.00402800
add esp, 8
push esi
call eax
xor ecx, ecx
jmp 0x40bf1f
push 0x46a4
push 0x388b576c
mov edx, 0x2f
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 0x40befe
push 0xa78b
push 0xf1625750
lea edx, [ecx + 0x6a]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0xdc]
push ecx
jmp 0x40be84
push 0x85cc
push 0x3d6a6543
mov edx, 0x13
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 + 0x74], ebp
cmp dword [esp + 0x20], eax
jbe 0x40c203
mov edx, dword [esp + 0x1c]
mov ebx, edi
mov dword [esp + 0x80], ebx
mov ebx, dword [ebx]
cmp ebx, edx
je 0x40c267
cmp ebx, ecx
je 0x40c267
cmp eax, ebx
je 0x40c1e0
mov dword [esp + 0x24], ebx
mov esi, 0x1e
xor edi, edi
test edi, edi
je 0x40bf74
push edi
call fcn.0040b1d0
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.0040b1b0
mov edi, eax
add esp, 4
test edi, edi
je 0x40c1d4
xor eax, eax
mov dword [esp + 0x88], ebx
push 0x43fb
push 0x357e6e5a
mov word [esp + 0x94], ax
lea edx, [eax + 0x12]
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 0x40c00d
cmp eax, 0xc0000004
jne 0x40bfff
cmp esi, 0x104
jae 0x40c1d4
add esi, esi
jmp 0x40bf67
push edi
call fcn.0040b1d0
add esp, 4
jmp 0x40c1d4
mov byte [esp + 0x2b], 0x3b
mov byte [esp + 0x2c], 0x76
mov byte [esp + 0x2d], 0x5a
mov byte [esp + 0x2e], 0x76
mov byte [esp + 0x2f], 0x29
mov byte [esp + 0x30], 0x76
mov byte [esp + 0x31], 0x7a
mov byte [esp + 0x32], 0x76
mov byte [esp + 0x33], 0x57
mov byte [esp + 0x34], 0x76
mov byte [esp + 0x35], 0x3e
mov byte [esp + 0x36], 0x76
mov byte [esp + 0x37], 0x5a
mov byte [esp + 0x38], 0x76
mov byte [esp + 0x39], 0x4c
mov byte [esp + 0x3a], 0x76
mov byte [esp + 0x3b], 0x3b
mov byte [esp + 0x3c], 0x76
mov byte [esp + 0x3d], 0x76
mov byte [esp + 0x3e], 0x76
mov al, byte [esp + 0x2b]
mov byte [esp + 0x3f], 0
cmp byte [esp + 0x3f], 0
jne 0x40c0bb
xor esi, esi
lea ebp, [esi + 0x7f]
nop word [eax + eax]
mov al, byte [esp + esi + 0x2b]
mov ecx, 0x76
movzx eax, al
sub ecx, eax
lea eax, [ecx + ecx*8]
shl eax, 2
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + esi + 0x2b], dl
inc esi
cmp esi, 0x14
jb 0x40c090
mov ebp, dword [esp + 0x74]
mov edx, 0x1d
push 0xaa76
push 0x88fd5753
lea ecx, [edx - 0x13]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x2b]
push ecx
push edi
call eax
mov byte [esp + 0x40], 0x38
test eax, eax
mov byte [esp + 0x41], 0x77
mov byte [esp + 0x42], 0x28
setne bl
mov byte [esp + 0x43], 0x77
mov byte [esp + 0x44], 0x63
mov byte [esp + 0x45], 0x77
mov byte [esp + 0x46], 0x1e
mov byte [esp + 0x47], 0x77
mov byte [esp + 0x48], 0x23
mov byte [esp + 0x49], 0x77
mov byte [esp + 0x4a], 0x38
mov byte [esp + 0x4b], 0x77
mov byte [esp + 0x4c], 0x5d
mov byte [esp + 0x4d], 0x77
mov byte [esp + 0x4e], 0x2b
mov byte [esp + 0x4f], 0x77
mov byte [esp + 0x50], 0x2e
mov byte [esp + 0x51], 0x77
mov byte [esp + 0x52], 0x72
mov byte [esp + 0x53], 0x77
mov byte [esp + 0x54], 0x2e
mov byte [esp + 0x55], 0x77
mov byte [esp + 0x56], 0x77
mov byte [esp + 0x57], 0x77
mov al, byte [esp + 0x40]
mov byte [esp + 0x58], 0
cmp byte [esp + 0x58], 0
jne 0x40c19b
xor esi, esi
lea ebp, [esi + 0x7f]
nop
mov al, byte [esp + esi + 0x40]
mov ecx, 0x77
movzx eax, al
sub ecx, eax
lea eax, [ecx + ecx*2]
shl eax, 3
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + esi + 0x40], dl
inc esi
cmp esi, 0x18
jb 0x40c170
mov ebp, dword [esp + 0x74]
mov edx, 0x1d
push 0xaa76
push 0x88fd5753
lea ecx, [edx - 0x13]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x40]
push ecx
push edi
call eax
push edi
mov esi, eax
call fcn.0040b1d0
add esp, 4
test esi, esi
jne 0x40c203
test bl, bl
jne 0x40c267
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 + 0x74], ebp
mov dword [esp + 0x80], ebx
cmp ebp, dword [esp + 0x20]
jb 0x40bf42
mov esi, dword [esp + 0x10]
mov edx, 0x81
push 0xded3
push 0xbd7b6e52
lea ecx, [edx - 0x75]
call fcn.00402800
add esp, 8
push 0
push 1
push esi
call eax
push dword [esp + 0x78]
mov edi, eax
call fcn.0040b1d0
mov esi, dword [esp + 0x14]
add esp, 4
mov edx, 0x7e
push 0x29fd
push 0x9c586e52
lea ecx, [edx - 0x72]
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 + 0x78]
call fcn.0040b1d0
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, 0xc
push 0x29fd
push 0x9c586e52
mov edx, 0x7e
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 0x40c26b