Function at 0x40bb20
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.0040d2e0
add esp, 0xc
mov edx, 0x3d
push 0x24b7
push 0xaa0e6e52
lea ecx, [edx - 0x31]
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 0x40c1d3
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x19]
push 0x288
push 0x10957352
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 0x40c1d3
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x5d]
push 0xb49e
push 0xbb247452
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 0x40c1b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c1b0
xor ecx, ecx
mov edx, 0x29c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040b0e0
mov esi, dword [esp + 0x14]
mov edi, eax
add esp, 4
mov dword [esp + 0x78], edi
mov ecx, 0xc
test edi, edi
je 0x40c1b9
mov eax, dword [esp + 0x18]
lea edx, [ecx + 0x51]
push 0xb49e
push 0xbb247452
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 0x40c1e0
cmp dword [esp + 0x18], eax
je 0x40c1e0
mov eax, dword fs:[0x18]
mov ebx, 0x7f
mov eax, dword [eax + 0x20]
mov byte [esp + 0x59], 0x62
mov byte [esp + 0x5a], 0x2c
mov byte [esp + 0x5b], 0x27
mov byte [esp + 0x5c], 0x2c
mov byte [esp + 0x5d], 0x7c
mov byte [esp + 0x5e], 0x2c
mov byte [esp + 0x5f], 0x67
mov byte [esp + 0x60], 0x2c
mov byte [esp + 0x61], 0x57
mov byte [esp + 0x62], 0x2c
mov byte [esp + 0x63], 0x47
mov byte [esp + 0x64], 0x2c
mov byte [esp + 0x65], 0x62
mov byte [esp + 0x66], 0x2c
mov byte [esp + 0x67], 0x47
mov byte [esp + 0x68], 0x2c
mov byte [esp + 0x69], 0x5f
mov byte [esp + 0x6a], 0x2c
mov byte [esp + 0x6b], 0x62
mov byte [esp + 0x6c], 0x2c
mov byte [esp + 0x6d], 0x27
mov byte [esp + 0x6e], 0x2c
mov byte [esp + 0x6f], 0x62
mov byte [esp + 0x70], 0x2c
mov byte [esp + 0x71], 0x2c
mov byte [esp + 0x72], 0x2c
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x59]
mov byte [esp + 0x73], 0
cmp byte [esp + 0x73], 0
jne 0x40bd57
xor esi, esi
nop word [eax + eax]
mov al, byte [esp + esi + 0x59]
mov ecx, 0x2c
movzx eax, al
sub ecx, eax
lea eax, [ecx + ecx*2]
shl eax, 3
cdq
idiv ebx
lea eax, [edx + 0x7f]
cdq
idiv ebx
mov byte [esp + esi + 0x59], dl
inc esi
cmp esi, 0x1a
jb 0x40bd30
push 0x22c
lea eax, [esp + 0xe0]
push 0
push eax
call fcn.0040d2e0
add esp, 0xc
mov edx, 0x7e
push 0xe47a
push 0x2e127443
lea ecx, [edx - 0x7d]
call fcn.00402800
add esp, 8
push 0
push 2
call eax
mov esi, eax
cmp esi, 0xffffffff
jne 0x40bd9c
xor ecx, ecx
jmp 0x40be60
mov edx, 0xc
mov dword [esp + 0xdc], 0x22c
push 0x84b1
push 0xb6e45750
lea ecx, [edx - 0xb]
call fcn.00402800
add esp, 8
lea edx, [esp + 0xdc]
push edx
push esi
call eax
mov ecx, 1
test eax, eax
jne 0x40bdf1
push 0x8541
push 0x5b626543
lea edx, [ecx + 0x42]
call fcn.00402800
add esp, 8
push esi
call eax
xor ecx, ecx
jmp 0x40be60
push 0xfa84
push 0x3abe576c
mov edx, 0x25
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 0x40be3f
push 0xe68b
push 0xe0ce5750
lea edx, [ecx + 0x4e]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0xdc]
push ecx
jmp 0x40bdc9
push 0x8541
push 0x5b626543
mov edx, 0x43
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 0x40c140
mov edx, dword [esp + 0x1c]
mov ebx, edi
mov dword [esp + 0x80], ebx
mov ebx, dword [ebx]
cmp ebx, edx
je 0x40c1a4
cmp ebx, ecx
je 0x40c1a4
cmp eax, ebx
je 0x40c11d
mov dword [esp + 0x24], ebx
mov esi, 0x1e
xor edi, edi
test edi, edi
je 0x40beb5
push edi
call fcn.0040b100
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.0040b0e0
mov edi, eax
add esp, 4
test edi, edi
je 0x40c111
xor eax, eax
mov dword [esp + 0x88], ebx
push 0x3ff
push 0x5e6e6e5a
mov word [esp + 0x94], ax
lea edx, [eax + 0x6d]
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 0x40bf4e
cmp eax, 0xc0000004
jne 0x40bf40
cmp esi, 0x104
jae 0x40c111
add esi, esi
jmp 0x40bea8
push edi
call fcn.0040b100
add esp, 4
jmp 0x40c111
mov byte [esp + 0x2b], 0x28
mov byte [esp + 0x2c], 0xb
mov byte [esp + 0x2d], 0xe
mov byte [esp + 0x2e], 0xb
mov byte [esp + 0x2f], 0x33
mov byte [esp + 0x30], 0xb
mov byte [esp + 0x31], 0x41
mov byte [esp + 0x32], 0xb
mov byte [esp + 0x33], 0x25
mov byte [esp + 0x34], 0xb
mov byte [esp + 0x35], 0x11
mov byte [esp + 0x36], 0xb
mov byte [esp + 0x37], 0xe
mov byte [esp + 0x38], 0xb
mov byte [esp + 0x39], 0x4f
mov byte [esp + 0x3a], 0xb
mov byte [esp + 0x3b], 0x28
mov byte [esp + 0x3c], 0xb
mov byte [esp + 0x3d], 0xb
mov byte [esp + 0x3e], 0xb
mov al, byte [esp + 0x2b]
mov byte [esp + 0x3f], 0
cmp byte [esp + 0x3f], 0
jne 0x40bff8
xor esi, esi
lea ebp, [esi + 0x7f]
nop word [eax + eax]
mov al, byte [esp + esi + 0x2b]
mov ecx, 0xb
movzx eax, al
sub ecx, eax
imul eax, ecx, 0x2d
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + esi + 0x2b], dl
inc esi
cmp esi, 0x14
jb 0x40bfd0
mov ebp, dword [esp + 0x74]
mov edx, 9
push 0xc166
push 0xc8f95753
lea ecx, [edx + 1]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x2b]
push ecx
push edi
call eax
mov byte [esp + 0x40], 3
test eax, eax
mov byte [esp + 0x41], 0x50
mov byte [esp + 0x42], 0x36
setne bl
mov byte [esp + 0x43], 0x50
mov byte [esp + 0x44], 0x70
mov byte [esp + 0x45], 0x50
mov byte [esp + 0x46], 0x46
mov byte [esp + 0x47], 0x50
mov byte [esp + 0x48], 0x3e
mov byte [esp + 0x49], 0x50
mov byte [esp + 0x4a], 3
mov byte [esp + 0x4b], 0x50
mov byte [esp + 0x4c], 0x14
mov byte [esp + 0x4d], 0x50
mov byte [esp + 0x4e], 0x64
mov byte [esp + 0x4f], 0x50
mov byte [esp + 0x50], 0x13
mov byte [esp + 0x51], 0x50
mov byte [esp + 0x52], 0x58
mov byte [esp + 0x53], 0x50
mov byte [esp + 0x54], 0x13
mov byte [esp + 0x55], 0x50
mov byte [esp + 0x56], 0x50
mov byte [esp + 0x57], 0x50
mov al, byte [esp + 0x40]
mov byte [esp + 0x58], 0
cmp byte [esp + 0x58], 0
jne 0x40c0d8
xor esi, esi
lea ebp, [esi + 0x7f]
nop dword [eax]
mov al, byte [esp + esi + 0x40]
movzx ecx, al
sub ecx, 0x50
mov eax, ecx
shl eax, 4
sub eax, ecx
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + esi + 0x40], dl
inc esi
cmp esi, 0x18
jb 0x40c0b0
mov ebp, dword [esp + 0x74]
mov edx, 9
push 0xc166
push 0xc8f95753
lea ecx, [edx + 1]
call fcn.00402800
add esp, 8
lea ecx, [esp + 0x40]
push ecx
push edi
call eax
push edi
mov esi, eax
call fcn.0040b100
add esp, 4
test esi, esi
jne 0x40c140
test bl, bl
jne 0x40c1a4
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 0x40be83
mov esi, dword [esp + 0x10]
mov edx, 0x8b
push 0xced2
push 0xa7bf6e52
lea ecx, [edx - 0x7f]
call fcn.00402800
add esp, 8
push 0
push 1
push esi
call eax
push dword [esp + 0x78]
mov edi, eax
call fcn.0040b100
mov esi, dword [esp + 0x14]
add esp, 4
mov edx, 0x40
push 0x6f4c
push 0x98586e52
lea ecx, [edx - 0x34]
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.0040b100
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, 0xc
push 0x6f4c
push 0x98586e52
mov edx, 0x40
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 0x40c1a8