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

Disassembly:
sub esp, 0x304
push ebx
push ebp
push esi
push edi
push 0x42
lea eax, [esp + 0xa0]
mov dword [esp + 0x8c], ecx
push 0
push eax
mov dword [esp + 0x20], 0
call fcn.0040d1e0
add esp, 0xc
mov edx, 0x81
push 0x596
push 0x2e2a6e52
lea ecx, [edx - 0x75]
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x9c]
push ecx
push 0
lea ecx, [esp + 0x1c]
push ecx
call eax
test eax, eax
jne 0x40c0db
mov esi, dword [esp + 0x14]
lea edx, [eax + 0x16]
push 0xb84
push 0x31b47352
lea ecx, [eax + 0xc]
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x88]
push 0
push 0
push 0
push 0
push ecx
push 1
push esi
call eax
test eax, eax
jne 0x40c0db
mov esi, dword [esp + 0x14]
lea ecx, [eax + 0xc]
push 0x30ba
push 0x8ba07452
mov edx, 0x86
mov dword [esp + 0x88], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x80]
push ecx
push 0
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x28]
push ecx
push esi
call eax
cmp eax, 0xea
jne 0x40c0b8
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40c0b8
xor ecx, ecx
mov edx, 0x29c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040aff0
mov esi, dword [esp + 0x18]
mov edi, eax
add esp, 4
mov dword [esp + 0x7c], edi
mov ecx, 0xc
test edi, edi
je 0x40c0c1
mov eax, dword [esp + 0x1c]
lea edx, [ecx + 0x7a]
push 0x30ba
push 0x8ba07452
mov dword [esp + 0x2c], eax
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x80]
push ecx
push edi
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x28]
push ecx
push esi
call eax
test eax, eax
jne 0x40c0e8
cmp dword [esp + 0x1c], eax
je 0x40c0e8
mov eax, dword fs:[0x18]
mov ebx, 0x7f
mov eax, dword [eax + 0x20]
mov byte [esp + 0x5d], 5
mov byte [esp + 0x5e], 0x42
mov byte [esp + 0x5f], 0x4a
mov byte [esp + 0x60], 0x42
mov byte [esp + 0x61], 0x41
mov byte [esp + 0x62], 0x42
mov byte [esp + 0x63], 0x7c
mov byte [esp + 0x64], 0x42
mov byte [esp + 0x65], 0x30
mov byte [esp + 0x66], 0x42
mov byte [esp + 0x67], 0x63
mov byte [esp + 0x68], 0x42
mov byte [esp + 0x69], 5
mov byte [esp + 0x6a], 0x42
mov byte [esp + 0x6b], 0x63
mov byte [esp + 0x6c], 0x42
mov byte [esp + 0x6d], 0x56
mov byte [esp + 0x6e], 0x42
mov byte [esp + 0x6f], 5
mov byte [esp + 0x70], 0x42
mov byte [esp + 0x71], 0x4a
mov byte [esp + 0x72], 0x42
mov byte [esp + 0x73], 5
mov byte [esp + 0x74], 0x42
mov byte [esp + 0x75], 0x42
mov byte [esp + 0x76], 0x42
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x5d]
mov byte [esp + 0x77], 0
cmp byte [esp + 0x77], 0
jne 0x40bc54
xor esi, esi
nop
mov al, byte [esp + esi + 0x5d]
movzx ecx, al
sub ecx, 0x42
mov eax, ecx
shl eax, 4
sub eax, ecx
cdq
idiv ebx
lea eax, [edx + 0x7f]
cdq
idiv ebx
mov byte [esp + esi + 0x5d], dl
inc esi
cmp esi, 0x1a
jb 0x40bc30
push 0x22c
lea eax, [esp + 0xe8]
push 0
push eax
call fcn.0040d1e0
add esp, 0xc
mov edx, 0xf
push 0xac1b
push 0x273a7443
lea ecx, [edx - 0xe]
call fcn.004027e0
add esp, 8
push 0
push 2
call eax
mov esi, eax
cmp esi, 0xffffffff
jne 0x40bc99
xor ecx, ecx
jmp 0x40bd5f
mov edx, 0x70
mov dword [esp + 0xe4], 0x22c
push 0x1473
push 0xa4f45750
lea ecx, [edx - 0x6f]
call fcn.004027e0
add esp, 8
lea edx, [esp + 0xe4]
push edx
push esi
call eax
mov ecx, 1
test eax, eax
jne 0x40bcf0
push 0x8960
push 0x7e6b6543
lea edx, [ecx + 2]
call fcn.004027e0
add esp, 8
push esi
call eax
xor ecx, ecx
jmp 0x40bd5f
push 0x4aa0
push 0xa3a576c
mov edx, 0x5b
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x108]
push ecx
lea ecx, [esp + 0x61]
push ecx
call eax
mov ecx, 1
test eax, eax
je 0x40bd3e
push 0xc7aa
push 0x64ea5750
lea edx, [ecx + 0x71]
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0xe4]
push ecx
jmp 0x40bcc6
push 0x8960
push 0x7e6b6543
mov edx, 3
call fcn.004027e0
add esp, 8
push esi
call eax
mov ecx, dword [esp + 0xec]
xor eax, eax
mov dword [esp + 0x18], ecx
xor ebp, ebp
mov dword [esp + 0x78], ebp
cmp dword [esp + 0x24], eax
jbe 0x40c048
mov edx, dword [esp + 0x20]
mov ebx, edi
mov dword [esp + 0x84], ebx
mov ebx, dword [ebx]
cmp ebx, edx
je 0x40c0ac
cmp ebx, ecx
je 0x40c0ac
cmp eax, ebx
je 0x40c025
mov dword [esp + 0x28], ebx
mov edi, 0x1e
xor esi, esi
test esi, esi
je 0x40bdb4
push esi
call fcn.0040b010
add esp, 4
xor ecx, ecx
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040aff0
mov esi, eax
add esp, 4
mov dword [esp + 0x8c], esi
test esi, esi
je 0x40c019
xor eax, eax
mov dword [esp + 0x90], ebx
push 0x4b9e
push 0x57666e5a
mov word [esp + 0x9c], ax
lea edx, [eax + 0x19]
mov word [esp + 0x9e], di
lea ecx, [eax + 5]
mov dword [esp + 0xa0], esi
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x90]
push 0
push 0xc
push ecx
push 0x58
call eax
test eax, eax
je 0x40be54
cmp eax, 0xc0000004
jne 0x40be46
cmp edi, 0x104
jae 0x40c019
add edi, edi
jmp 0x40bda7
push esi
call fcn.0040b010
add esp, 4
jmp 0x40c019
mov byte [esp + 0x2f], 0x27
mov byte [esp + 0x30], 0x11
mov byte [esp + 0x31], 0x78
mov byte [esp + 0x32], 0x11
mov byte [esp + 0x33], 0x4e
mov byte [esp + 0x34], 0x11
mov byte [esp + 0x35], 0x5d
mov byte [esp + 0x36], 0x11
mov byte [esp + 0x37], 0x3f
mov byte [esp + 0x38], 0x11
mov byte [esp + 0x39], 0x60
mov byte [esp + 0x3a], 0x11
mov byte [esp + 0x3b], 0x78
mov byte [esp + 0x3c], 0x11
mov byte [esp + 0x3d], 0x6c
mov byte [esp + 0x3e], 0x11
mov byte [esp + 0x3f], 0x27
mov byte [esp + 0x40], 0x11
mov byte [esp + 0x41], 0x11
mov byte [esp + 0x42], 0x11
mov al, byte [esp + 0x2f]
mov byte [esp + 0x43], 0
cmp byte [esp + 0x43], 0
jne 0x40bef8
xor edi, edi
lea ebp, [edi + 0x7f]
nop dword [eax]
mov al, byte [esp + edi + 0x2f]
mov ecx, 0x11
movzx eax, al
sub ecx, eax
imul eax, ecx, 0x2a
cdq
idiv ebp
lea eax, [edx + 0x7f]
cdq
idiv ebp
mov byte [esp + edi + 0x2f], dl
inc edi
cmp edi, 0x14
jb 0x40bed0
mov ebp, dword [esp + 0x78]
mov edx, 0x20
push 0xc86e
push 0x80985753
lea ecx, [edx - 0x16]
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x2f]
push ecx
push esi
call eax
mov byte [esp + 0x44], 0x42
test eax, eax
mov byte [esp + 0x45], 2
mov byte [esp + 0x46], 0x32
setne bl
mov byte [esp + 0x47], 2
mov byte [esp + 0x48], 0x6d
mov byte [esp + 0x49], 2
mov byte [esp + 0x4a], 0x28
mov byte [esp + 0x4b], 2
mov byte [esp + 0x4c], 0x2d
mov byte [esp + 0x4d], 2
mov byte [esp + 0x4e], 0x42
mov byte [esp + 0x4f], 2
mov byte [esp + 0x50], 0x67
mov byte [esp + 0x51], 2
mov byte [esp + 0x52], 0x35
mov byte [esp + 0x53], 2
mov byte [esp + 0x54], 0x38
mov byte [esp + 0x55], 2
mov byte [esp + 0x56], 0x7c
mov byte [esp + 0x57], 2
mov byte [esp + 0x58], 0x38
mov byte [esp + 0x59], 2
mov byte [esp + 0x5a], 2
mov byte [esp + 0x5b], 2
mov al, byte [esp + 0x44]
mov byte [esp + 0x5c], 0
cmp byte [esp + 0x5c], 0
jne 0x40bfe0
xor edi, edi
mov esi, 2
lea ebp, [edi + 0x7f]
mov al, byte [esp + edi + 0x44]
mov ecx, esi
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 + edi + 0x44], dl
inc edi
cmp edi, 0x18
jb 0x40bfb1
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x78]
mov edx, 0x20
push 0xc86e
push 0x80985753
lea ecx, [edx - 0x16]
call fcn.004027e0
add esp, 8
lea ecx, [esp + 0x44]
push ecx
push esi
call eax
push esi
mov edi, eax
call fcn.0040b010
add esp, 4
test edi, edi
jne 0x40c048
test bl, bl
jne 0x40c0ac
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x84]
inc ebp
add ebx, 0x29c
mov dword [esp + 0x78], ebp
mov dword [esp + 0x84], ebx
cmp ebp, dword [esp + 0x24]
jb 0x40bd82
mov esi, dword [esp + 0x14]
mov edx, 0x46
push 0xdcca
push 0xe5fd6e52
lea ecx, [edx - 0x3a]
call fcn.004027e0
add esp, 8
push 0
push 1
push esi
call eax
push dword [esp + 0x7c]
mov edi, eax
call fcn.0040b010
mov esi, dword [esp + 0x18]
add esp, 4
mov edx, 0x1d
push 0x7fdc
push 0x1cde6e52
lea ecx, [edx - 0x11]
call fcn.004027e0
add esp, 8
push esi
call eax
test edi, edi
sete al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x304
ret
push dword [esp + 0x7c]
call fcn.0040b010
add esp, 4
mov esi, dword [esp + 0x14]
mov ecx, 0xc
push 0x7fdc
push 0x1cde6e52
mov edx, 0x1d
call fcn.004027e0
add esp, 8
push esi
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x304
ret
push edi
jmp 0x40c0b0