Function at 0x40baf0
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.0040d290
add esp, 0xc
xor edx, edx
push 0x76f6
push 0xba006e52
lea ecx, [edx + 0xc]
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0x94]
push ecx
push 0
lea ecx, [esp + 0x18]
push ecx
call eax
test eax, eax
jne 0x40c183
mov esi, dword [esp + 0x10]
lea edx, [eax + 0x3b]
push 0x9080
push 0x90e77352
lea ecx, [eax + 0xc]
call fcn.004027f0
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 0x40c183
mov esi, dword [esp + 0x10]
lea ecx, [eax + 0xc]
push 0x7ed6
mov ebx, 0x7f
mov dword [esp + 0x7c], eax
push 0x99257452
mov edx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
call fcn.004027f0
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 0x40c160
mov eax, dword [esp + 0x18]
test eax, eax
je 0x40c160
xor ecx, ecx
mov edx, 0x29c
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040b0b0
mov esi, dword [esp + 0x14]
lea ecx, [ebx - 0x73]
mov edi, eax
add esp, 4
mov dword [esp + 0x74], edi
test edi, edi
je 0x40c169
mov eax, dword [esp + 0x18]
mov edx, ebx
push 0x7ed6
push 0x99257452
mov dword [esp + 0x28], eax
call fcn.004027f0
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 0x40c190
cmp dword [esp + 0x18], eax
je 0x40c190
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x20]
mov byte [esp + 0x59], 9
mov byte [esp + 0x5a], 8
mov byte [esp + 0x5b], 0x3e
mov byte [esp + 0x5c], 8
mov byte [esp + 0x5d], 0x21
mov byte [esp + 0x5e], 8
mov byte [esp + 0x5f], 0x52
mov byte [esp + 0x60], 8
mov byte [esp + 0x61], 0x4d
mov byte [esp + 0x62], 8
mov byte [esp + 0x63], 0x48
mov byte [esp + 0x64], 8
mov byte [esp + 0x65], 9
mov byte [esp + 0x66], 8
mov byte [esp + 0x67], 0x48
mov byte [esp + 0x68], 8
mov byte [esp + 0x69], 0x10
mov byte [esp + 0x6a], 8
mov byte [esp + 0x6b], 9
mov byte [esp + 0x6c], 8
mov byte [esp + 0x6d], 0x3e
mov byte [esp + 0x6e], 8
mov byte [esp + 0x6f], 9
mov byte [esp + 0x70], 8
mov byte [esp + 0x71], 8
mov byte [esp + 0x72], 8
mov dword [esp + 0x1c], eax
mov al, byte [esp + 0x59]
mov byte [esp + 0x73], 0
cmp byte [esp + 0x73], 0
jne 0x40bd14
xor esi, esi
nop dword [eax]
mov al, byte [esp + esi + 0x59]
mov ecx, 8
movzx eax, al
sub ecx, eax
imul eax, ecx, 0x1a
cdq
idiv ebx
lea eax, [edx + 0x7f]
cdq
idiv ebx
mov byte [esp + esi + 0x59], dl
inc esi
cmp esi, 0x1a
jb 0x40bcf0
push 0x22c
lea eax, [esp + 0xe0]
push 0
push eax
call fcn.0040d290
add esp, 0xc
mov edx, 0x65
push 0x743e
push 0x2da67443
lea ecx, [edx - 0x64]
call fcn.004027f0
add esp, 8
push 0
push 2
call eax
mov esi, eax
cmp esi, 0xffffffff
jne 0x40bd59
xor ecx, ecx
jmp 0x40be1f
mov edx, 0x54
mov dword [esp + 0xdc], 0x22c
push 0xa439
push 0xb1c55750
lea ecx, [edx - 0x53]
call fcn.004027f0
add esp, 8
lea edx, [esp + 0xdc]
push edx
push esi
call eax
mov ecx, 1
test eax, eax
jne 0x40bdb0
push 0x8dc1
push 0x2df06543
lea edx, [ecx + 0x4f]
call fcn.004027f0
add esp, 8
push esi
call eax
xor ecx, ecx
jmp 0x40be1f
push 0x6cc
push 0x18bf576c
mov edx, 0x30
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0x100]
push ecx
lea ecx, [esp + 0x5d]
push ecx
call eax
mov ecx, 1
test eax, eax
je 0x40bdfe
push 0xa4ca
push 0xf0c05750
lea edx, [ecx + 0x6b]
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0xdc]
push ecx
jmp 0x40bd86
push 0x8dc1
push 0x2df06543
mov edx, 0x50
call fcn.004027f0
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 0x40c0f0
mov edx, dword [esp + 0x1c]
mov ebx, edi
mov dword [esp + 0x80], ebx
mov ebx, dword [ebx]
cmp ebx, edx
je 0x40c154
cmp ebx, ecx
je 0x40c154
cmp eax, ebx
je 0x40c0cd
mov dword [esp + 0x24], ebx
mov esi, 0x1e
xor edi, edi
test edi, edi
je 0x40be74
push edi
call fcn.0040b0d0
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.0040b0b0
mov edi, eax
add esp, 4
test edi, edi
je 0x40c0c1
xor eax, eax
mov dword [esp + 0x88], ebx
push 0x93bb
push 0x5dfa6e5a
mov word [esp + 0x94], ax
lea edx, [eax + 0x2a]
mov word [esp + 0x96], si
lea ecx, [eax + 5]
mov dword [esp + 0x98], edi
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0x88]
push 0
push 0xc
push ecx
push 0x58
call eax
test eax, eax
je 0x40bf0d
cmp eax, 0xc0000004
jne 0x40beff
cmp esi, 0x104
jae 0x40c0c1
add esi, esi
jmp 0x40be67
push edi
call fcn.0040b0d0
add esp, 4
jmp 0x40c0c1
mov byte [esp + 0x2b], 0x68
mov byte [esp + 0x2c], 0x36
mov byte [esp + 0x2d], 0xb
mov byte [esp + 0x2e], 0x36
mov byte [esp + 0x2f], 0x1f
mov byte [esp + 0x30], 0x36
mov byte [esp + 0x31], 0x2a
mov byte [esp + 0x32], 0x36
mov byte [esp + 0x33], 0x14
mov byte [esp + 0x34], 0x36
mov byte [esp + 0x35], 0x5f
mov byte [esp + 0x36], 0x36
mov byte [esp + 0x37], 0xb
mov byte [esp + 0x38], 0x36
mov byte [esp + 0x39], 0x35
mov byte [esp + 0x3a], 0x36
mov byte [esp + 0x3b], 0x68
mov byte [esp + 0x3c], 0x36
mov byte [esp + 0x3d], 0x36
mov byte [esp + 0x3e], 0x36
mov al, byte [esp + 0x2b]
mov byte [esp + 0x3f], 0
cmp byte [esp + 0x3f], 0
jne 0x40bfa9
xor ecx, ecx
lea ebx, [ecx + 0x7f]
mov al, byte [esp + ecx + 0x2b]
movzx eax, al
sub eax, 0x36
lea eax, [eax + eax*2]
shl eax, 2
cdq
idiv ebx
lea eax, [edx + 0x7f]
cdq
idiv ebx
mov byte [esp + ecx + 0x2b], dl
inc ecx
cmp ecx, 0x14
jb 0x40bf86
mov edx, 0x5b
push 0xc2f2
push 0x58bd5753
lea ecx, [edx - 0x51]
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0x2b]
push ecx
push edi
call eax
mov byte [esp + 0x40], 0x6b
test eax, eax
mov byte [esp + 0x41], 0x5b
mov byte [esp + 0x42], 0x67
setne bl
mov byte [esp + 0x43], 0x5b
mov byte [esp + 0x44], 0x56
mov byte [esp + 0x45], 0x5b
mov byte [esp + 0x46], 0x25
mov byte [esp + 0x47], 0x5b
mov byte [esp + 0x48], 0x46
mov byte [esp + 0x49], 0x5b
mov byte [esp + 0x4a], 0x6b
mov byte [esp + 0x4b], 0x5b
mov byte [esp + 0x4c], 0x15
mov byte [esp + 0x4d], 0x5b
mov byte [esp + 0x4e], 0x48
mov byte [esp + 0x4f], 0x5b
mov byte [esp + 0x50], 0x29
mov byte [esp + 0x51], 0x5b
mov byte [esp + 0x52], 0x3a
mov byte [esp + 0x53], 0x5b
mov byte [esp + 0x54], 0x29
mov byte [esp + 0x55], 0x5b
mov byte [esp + 0x56], 0x5b
mov byte [esp + 0x57], 0x5b
mov al, byte [esp + 0x40]
mov byte [esp + 0x58], 0
cmp byte [esp + 0x58], 0
jne 0x40c088
xor esi, esi
lea ebp, [esi + 0x7f]
nop dword [eax]
mov al, byte [esp + esi + 0x40]
movzx ecx, al
sub ecx, 0x5b
mov eax, ecx
shl eax, 5
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 0x40c060
mov ebp, dword [esp + 0x7c]
mov edx, 0x5b
push 0xc2f2
push 0x58bd5753
lea ecx, [edx - 0x51]
call fcn.004027f0
add esp, 8
lea ecx, [esp + 0x40]
push ecx
push edi
call eax
push edi
mov esi, eax
call fcn.0040b0d0
add esp, 4
test esi, esi
jne 0x40c0f0
test bl, bl
jne 0x40c154
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 0x40be42
mov esi, dword [esp + 0x10]
mov edx, 0x11
push 0xeac3
push 0xa75a6e52
lea ecx, [edx - 5]
call fcn.004027f0
add esp, 8
push 0
push 1
push esi
call eax
push dword [esp + 0x74]
mov edi, eax
call fcn.0040b0d0
mov esi, dword [esp + 0x14]
add esp, 4
mov edx, 0x12
push 0x2f75
push 0xd15c6e52
lea ecx, [edx - 6]
call fcn.004027f0
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.0040b0d0
add esp, 4
mov esi, dword [esp + 0x10]
mov ecx, 0xc
push 0x2f75
push 0xd15c6e52
mov edx, 0x12
call fcn.004027f0
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 0x40c158