Function at 0x408c0f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xbc
push ebx
push ebp
mov ebp, dword [esp + 0xcc]
push esi
push edi
xor edi, edi
mov dword [esp + 0x44], ebp
push ebp
mov dword [esp + 0x14], edi
call fcn.00492770
lea esi, [eax + 0x41]
push esi
mov dword [esp + 0x34], esi
call fcn.00493664
and dword [esp + 0x2c], edi
mov ebx, eax
cmp byte [ebp], 0
pop ecx
pop ecx
mov dword [esp + 0x14], ebx
je 0x4090ae
lea eax, [esi - 0x40]
cmp edi, eax
jle 0x408c73
lea eax, [edi + 0x80]
push eax
push ebx
mov dword [esp + 0x34], eax
call fcn.0049366f
pop ecx
mov ebx, eax
pop ecx
mov dword [esp + 0x14], ebx
mov al, byte [ebp]
cmp al, 0x2f
jne 0x408d01
mov al, byte [ebp + 1]
cmp al, 0x2f
jne 0x408ca8
add ebp, 2
mov al, byte [ebp]
test al, al
je 0x4090aa
cmp al, 0xa
je 0x409098
inc ebp
mov al, byte [ebp]
test al, al
jne 0x408c93
jmp 0x409098
cmp al, 0x2a
jne 0x408ec7
add ebp, 2
mov cl, byte [ebp]
test cl, cl
je 0x408cf2
mov esi, ebp
sub esi, dword [esp + 0x44]
inc esi
lea eax, [ebp + 1]
cmp cl, 0x2a
jne 0x408cd2
cmp byte [eax], 0x2f
je 0x408cf2
mov ebp, eax
jmp 0x408cea
mov ebp, eax
cmp cl, 0xa
jne 0x408cea
push edi
push esi
push dword [esp + 0xd8]
call fcn.00408bae
add esp, 0xc
mov cl, byte [ebp]
inc esi
test cl, cl
jne 0x408cc1
lea eax, [ebp + 2]
test cl, cl
cmove eax, ebp
mov ebp, eax
jmp 0x409098
cmp al, 0x24
jne 0x408ec7
movsx eax, byte [ebp + 1]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x58
jne 0x408d79
push 0x10
lea ecx, [esp + 0x44]
lea eax, [ebp + 2]
push ecx
push eax
mov dword [esp + 0x4c], eax
call fcn.004948fb
mov ebp, dword [esp + 0x4c]
push eax
lea eax, [esp + 0x5c]
push 0x4bec00
push eax
call fcn.004096cb
lea eax, [esp + 0x64]
push eax
call fcn.00492770
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [ebx + edi]
push eax
call fcn.00488ac0
lea eax, [esp + 0x74]
push eax
call fcn.00492770
add edi, eax
lea eax, [esp + 0x78]
push eax
mov dword [esp + 0x40], edi
call fcn.00492770
add esp, 0x30
jmp 0x408de7
mov al, byte [ebp + 1]
cmp al, 0x27
jne 0x408df9
mov cl, byte [ebp + 2]
test cl, cl
je 0x408df9
cmp byte [ebp + 3], al
jne 0x408df9
movzx eax, cl
push eax
lea eax, [esp + 0x90]
push 0x4bec00
push eax
call fcn.004096cb
lea eax, [esp + 0x98]
add ebp, 4
push eax
call fcn.00492770
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [ebx + edi]
push eax
call fcn.00488ac0
lea eax, [esp + 0xa8]
push eax
call fcn.00492770
add edi, eax
lea eax, [esp + 0xac]
push eax
mov dword [esp + 0x34], edi
call fcn.00492770
add esp, 0x24
mov ecx, dword [esp + 0xd0]
add dword [ecx + 0x3ec], eax
jmp 0x409098
movsx eax, al
push eax
call fcn.00493470
pop ecx
cmp eax, 0x50
jne 0x408e49
movsx eax, byte [ebp + 2]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x49
jne 0x408e49
push 0x11
push dword [0x4e37ac]
lea eax, [ebx + edi]
add ebp, 3
push eax
call fcn.00488ac0
mov eax, dword [esp + 0xdc]
add edi, 0x11
add esp, 0xc
mov dword [esp + 0x10], edi
add dword [eax + 0x3ec], 0x11
jmp 0x409098
movsx eax, byte [ebp + 1]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x45
jne 0x408e66
push 0xa
push dword [0x4e37b0]
add ebp, 2
jmp 0x408ea1
movsx eax, byte [ebp + 1]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x50
jne 0x408ec7
movsx eax, byte [ebp + 2]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x48
jne 0x408ec7
movsx eax, byte [ebp + 3]
push eax
call fcn.00493470
pop ecx
cmp eax, 0x49
jne 0x408ec7
push 0xa
push dword [0x4e37b4]
add ebp, 4
lea eax, [ebx + edi]
push eax
call fcn.00488ac0
mov eax, dword [esp + 0xdc]
add edi, 0xa
add esp, 0xc
mov dword [esp + 0x10], edi
add dword [eax + 0x3ec], 0xa
jmp 0x409098
mov bl, byte [ebp]
inc ebp
mov dword [esp + 0xd4], ebp
cmp bl, 0xa
jne 0x408eee
mov eax, ebp
sub eax, dword [esp + 0x44]
push edi
push eax
push dword [esp + 0xd8]
call fcn.00408bae
add esp, 0xc
movsx eax, bl
push eax
call fcn.00493130
pop ecx
test eax, eax
je 0x408fad
mov bl, 0x20
movsx esi, bl
push esi
call fcn.00493130
pop ecx
test eax, eax
jne 0x40907a
push esi
call fcn.00492f80
pop ecx
test eax, eax
jne 0x40907a
xor edi, edi
mov ecx, 0x4e37d0
cmp bl, byte [ecx + edi*8]
jne 0x408f3f
mov al, byte [edi*8 + 0x4e37d1]
test al, al
je 0x408f45
cmp byte [ebp], al
je 0x408f45
inc edi
cmp edi, 0x16
jl 0x408f2a
mov dword [esp + 0x3c], edi
cmp edi, 0x16
jge 0x409076
movsx eax, byte [edi*8 + 0x4e37d2]
movsx ecx, byte [edi*8 + 0x4e37d3]
and dword [esp + 0x18], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
test eax, eax
js 0x409105
mov ecx, dword [esp + 0x10]
xor ebx, ebx
mov eax, dword [eax*4 + 0x4e37b8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
lea esi, [ecx - 1]
add esi, eax
cmp esi, eax
jb 0x4090e7
mov ebp, dword [esp + 0x30]
mov al, byte [esi]
cmp al, 0x29
jne 0x4090c3
inc ebx
jmp 0x4091df
mov cl, bl
cmp bl, 0x28
jne 0x408fbd
inc dword [esp + 0x24]
jmp 0x40907a
mov bl, cl
cmp cl, 0x29
jne 0x408fd9
mov eax, dword [esp + 0x24]
xor edx, edx
sub eax, 1
cmovns edx, eax
mov dword [esp + 0x24], edx
jmp 0x40907a
cmp bl, 0x3b
jne 0x408f02
cmp dword [esp + 0x24], 0
jle 0x408f02
movsx esi, byte [ebp]
xor edi, edi
test esi, esi
je 0x4090bf
mov ebx, ebp
mov eax, edi
test edi, edi
jne 0x409028
cmp esi, 0x2f
jne 0x40901b
mov al, byte [ebx + 1]
cmp al, 0x2f
jne 0x409012
inc edi
jmp 0x409049
cmp al, 0x2a
jne 0x40901b
push 2
pop edi
jmp 0x409049
push esi
call fcn.00493130
pop ecx
test eax, eax
je 0x409051
jmp 0x409049
mov edi, eax
cmp eax, 1
jne 0x409036
cmp esi, 0xa
jne 0x409049
jmp 0x409047
cmp edi, 2
jne 0x409049
cmp esi, 0x2a
jne 0x409049
cmp byte [ebx + 1], 0x2f
jne 0x409049
inc ebx
xor edi, edi
inc ebx
movsx esi, byte [ebx]
test esi, esi
jne 0x408ffd
test esi, esi
je 0x4090bf
push esi
call fcn.00492f80
pop ecx
test eax, eax
jne 0x409074
cmp esi, 0x28
je 0x409074
cmp esi, 0x5f
je 0x409074
cmp esi, 0x21
je 0x409074
cmp esi, 0x24
jne 0x4090bf
mov bl, 0x25
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov byte [eax + edi], bl
inc edi
mov dword [esp + 0x10], edi
cmp bl, 0x20
je 0x409098
mov eax, dword [esp + 0xd0]
inc dword [eax + 0x3ec]
cmp byte [ebp], 0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
jne 0x408c53
mov ebx, dword [esp + 0x14]
mov byte [ebx + edi], 0
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov bl, 0x20
jmp 0x409076
cmp al, 0x28
jne 0x409170
sub ebx, 1
jns 0x4091df
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0xd4]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
inc esi
mov byte [eax + ecx], 0
mov eax, esi
sub eax, dword [esp + 0x14]
push esi
mov dword [esp + 0x14], eax
call fcn.00498a77
pop ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
cmp byte [edi*8 + 0x4e37d1], 0
je 0x409117
inc ebp
mov dword [esp + 0xd4], ebp
mov ebx, dword [ecx*4 + 0x4e37b8]
xor edx, edx
and dword [esp + 0x48], 0
xor ecx, ecx
and dword [esp + 0x34], edx
mov esi, ebp
xor edi, edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], ecx
cmp byte [ebp], cl
je 0x4092c8
mov ebp, dword [esp + 0x48]
mov eax, edi
test edi, edi
jne 0x4093c9
cmp byte [esi], 0x2f
jne 0x4091fd
mov al, byte [esi + 1]
cmp al, 0x2f
jne 0x4091f1
inc edi
jmp 0x4092af
test ebx, ebx
jne 0x4091df
mov dl, byte [ebp]
test dl, dl
jne 0x4091a7
movsx eax, al
push eax
call fcn.00493130
pop ecx
test eax, eax
jne 0x4091df
movsx eax, byte [esi]
push eax
call fcn.00492f80
pop ecx
test eax, eax
jne 0x4091df
mov al, byte [esi]
cmp al, 0x5f
je 0x4091df
cmp al, 0x2e
jne 0x4090d4
jmp 0x4091df
cmp dword [esp + 0x28], 2
mov edi, ebp
mov cl, al
jne 0x4091d0
cmp al, 0x7c
jne 0x4091c1
cmp byte [esi + 1], al
je 0x4090d4
jmp 0x4091d0
mov cl, al
cmp al, 0x26
jne 0x4091d0
cmp byte [esi + 1], cl
je 0x4090d4
cmp cl, dl
je 0x4090d4
inc edi
mov dl, byte [edi]
test dl, dl
jne 0x4091d0
mov eax, dword [esp + 0x14]
dec esi
cmp esi, eax
jae 0x408f9d
jmp 0x4090d8
cmp al, 0x2a
jne 0x4091fd
push 2
pop edi
jmp 0x4092af
mov al, byte [esi]
cmp al, 0x28
jne 0x409211
mov dword [esp + 0x34], 1
inc ebp
jmp 0x4092af
cmp al, 0x29
jne 0x409223
sub ebp, 1
js 0x4092bd
jmp 0x4092af
test ebp, ebp
jne 0x4092af
cmp al, 0x3b
je 0x4092bd
cmp al, 0x2c
je 0x4092bd
cmp dword [esp + 0x20], ebp
jne 0x409345
cmp al, 0x3a
je 0x4092bd
movsx eax, al
push eax
call fcn.00493130
pop ecx
test eax, eax
jne 0x409275
movsx eax, byte [esi]
push eax
call fcn.00492f80
pop ecx
test eax, eax
jne 0x409275
mov al, byte [esi]
cmp al, 0x5f
je 0x409275
cmp al, 0x2e
je 0x409275
cmp dword [esp + 0x34], ebp
jne 0x4092bd
movsx eax, byte [esi]
push eax
call fcn.00492f80
pop ecx
test eax, eax
jne 0x409288
cmp byte [esi], 0x5f
jne 0x409290
mov dword [esp + 0x34], 1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov al, byte [eax]
test al, al
je 0x4092ab
mov cl, byte [esi]
cmp cl, al
je 0x4092bd
inc ebx
mov al, byte [ebx]
test al, al
jne 0x4092a0
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
inc esi
cmp byte [esi], 0
jne 0x40914c
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x30], esi
mov bl, byte [esi]
push ebp
push dword [esp + 0xd4]
mov byte [esi], 0
call fcn.00408c0f
mov byte [esi], bl
mov ebp, esi
mov ebx, eax
mov dword [esp + 0x24], eax
pop ecx
pop ecx
test ebx, ebx
je 0x4096ae
mov eax, dword [esp + 0x18]
mov edi, 0x4bd871
test eax, eax
cmovne edi, eax
push edi
call fcn.00492770
push ebx
mov esi, eax
call fcn.00492770
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
add eax, esi
add ecx, 0x20
add ecx, eax
mov eax, dword [esp + 0x2c]
add eax, 0xffffffc0
cmp ecx, eax
jle 0x4093ff
lea eax, [ecx + 0x80]
push eax
push dword [esp + 0x18]
mov dword [esp + 0x34], eax
call fcn.0049366f
pop ecx
pop ecx
mov dword [esp + 0x14], eax
jmp 0x409403
cmp dword [esp + 0x20], 2
jne 0x40936f
cmp al, 0x7c
jne 0x40935e
cmp byte [esi + 1], al
je 0x4092bd
jmp 0x409294
cmp al, 0x26
jne 0x409294
cmp byte [esi + 1], al
je 0x4092bd
cmp dword [esp + 0x20], 3
je 0x4093a5
cmp dword [esp + 0x20], 4
je 0x4093a5
cmp dword [esp + 0x20], 5
jne 0x409294
cmp al, 0x5b
jne 0x40938f
inc ecx
jmp 0x409394
cmp al, 0x5d
jne 0x409398
dec ecx
mov dword [esp + 0x28], ecx
test ecx, ecx
js 0x4092bd
jmp 0x409294
cmp al, 0x3a
jne 0x4093ac
dec edx
jmp 0x4093b1
cmp al, 0x3f
jne 0x4093b5
inc edx
mov dword [esp + 0x1c], edx
push 3
pop eax
sub eax, dword [esp + 0x20]
cmp edx, eax
jl 0x4092bd
jmp 0x409294
mov edi, eax
cmp eax, 1
jne 0x4093db
cmp byte [esi], 0xa
jne 0x4092af
jmp 0x4093f8
cmp edi, 2
jne 0x4092af
cmp byte [esi], 0x2a
jne 0x4092af
cmp byte [esi + 1], 0x2f
jne 0x4092af
inc esi
xor edi, edi
jmp 0x4092af
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
cmp esi, 0x13
jne 0x409570
mov eax, dword [esp + 0x18]
mov esi, ebx
mov edi, eax
test eax, eax
je 0x409435
mov al, byte [edi]
test al, al
je 0x409435
movsx eax, al
push eax
call fcn.00493130
pop ecx
test eax, eax
je 0x409435
add edi, 1
jne 0x40941c
mov al, byte [esi]
test al, al
je 0x40944e
movsx eax, al
push eax
call fcn.00493130
pop ecx
test eax, eax
je 0x40944e
add esi, 1
jne 0x409435
test edi, edi
je 0x4094b1
push 4
push str.gmem
push edi
call fcn.0049352c
add esp, 0xc
test eax, eax
jne 0x4094b1
mov al, byte [edi + 4]
test al, al
je 0x40947b
movsx eax, al
push eax
call fcn.00493130
pop ecx
test eax, eax
je 0x4094b1
cmp byte [ebx], 0
mov eax, 0x4bec0c
mov esi, dword [esp + 0x10]
cmovne eax, ebx
push eax
mov eax, dword [esp + 0x18]
add eax, esi
push str._gmem__s
push eax
call fcn.004096cb
add esi, eax
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x24]
push esi
call fcn.00492770
jmp 0x40953c
test esi, esi
je 0x409516
cmp byte [esi], 0
je 0x409516
push 0x4bec0c
push esi
call fcn.004934a0
pop ecx
pop ecx
test eax, eax
je 0x409516
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x14]
push esi
push edi
push str._mem___s___s_
push eax
call fcn.004096cb
add dword [esp + 0x20], eax
push esi
call fcn.00492770
push edi
mov esi, eax
call fcn.00492770
mov edx, dword [esp + 0xe8]
add esi, eax
mov eax, dword [esp + 0xe8]
add esp, 0x18
mov eax, dword [eax + 0x3ec]
add eax, 8
add eax, esi
mov esi, dword [esp + 0x18]
jmp 0x409551
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add eax, esi
push edi
push str._mem__s
push eax
call fcn.004096cb
add esi, eax
push edi
mov dword [esp + 0x20], esi
call fcn.00492770
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0xe0]
add esp, 0x10
mov ecx, dword [edx + 0x3ec]
add ecx, 4
add eax, ecx
mov edi, dword [esp + 0x10]
mov dword [edx + 0x3ec], eax
mov eax, dword [esp + 0x30]
cmp byte [eax], 0x5d
jne 0x4096b6
lea ebp, [eax + 1]
jmp 0x4096b6
cmp esi, 0x14
jne 0x40959f
mov edi, dword [esp + 0x10]
add eax, edi
push ebx
push str._not__s
push eax
call fcn.004096cb
add edi, eax
add esp, 0xc
mov eax, dword [esp + 0xd0]
add dword [eax + 0x3ec], 4
jmp 0x4096b2
cmp esi, 0x15
jne 0x409671
mov eax, dword [esp + 0x1c]
xor edi, edi
xor edx, edx
mov esi, ebx
inc edi
mov al, byte [eax]
jmp 0x4095ed
cmp al, 0x3f
jne 0x4095c0
inc edi
mov cl, al
jmp 0x4095d9
cmp al, 0x3a
jne 0x4095c9
dec edi
mov cl, al
jmp 0x4095d9
cmp al, 0x28
jne 0x4095d2
inc edx
mov cl, al
jmp 0x4095d9
mov cl, al
cmp al, 0x29
jne 0x4095d9
dec edx
mov al, cl
test edx, edx
js 0x4095f1
jne 0x4095ea
test edi, edi
jne 0x4095ea
cmp cl, 0x3a
je 0x4095f1
inc esi
mov al, byte [esi]
test al, al
jne 0x4095b7
test al, al
je 0x4095fb
mov byte [esi], 0
inc esi
mov al, byte [esi]
movsx eax, al
jmp 0x409604
inc esi
movsx eax, byte [esi]
push eax
call fcn.00493130
pop ecx
test eax, eax
jne 0x409600
mov eax, dword [esp + 0x1c]
movsx eax, byte [eax]
jmp 0x40961c
inc ebx
movsx eax, byte [ebx]
push eax
call fcn.00493130
pop ecx
test eax, eax
jne 0x409618
cmp byte [esi], 0
mov ecx, 0x4bec0c
mov edi, dword [esp + 0x10]
mov eax, ecx
cmovne eax, esi
cmp byte [ebx], 0
mov esi, dword [esp + 0x18]
push eax
mov eax, ecx
cmovne eax, ebx
push eax
mov eax, dword [esp + 0x1c]
push esi
add eax, edi
push str._if__s__s__s
push eax
call fcn.004096cb
mov ebx, dword [esp + 0x30]
add edi, eax
mov eax, dword [esp + 0xe4]
add esp, 0x14
add dword [eax + 0x3ec], 6
jmp 0x4096b6
push ebx
push edi
push dword [esi*8 + 0x4e37d4]
mov edi, dword [esp + 0x1c]
add eax, edi
push str._s__s__s
push eax
call fcn.004096cb
push dword [esi*8 + 0x4e37d4]
add edi, eax
call fcn.00492770
mov ecx, dword [esp + 0xe8]
add eax, 2
add esp, 0x18
add dword [ecx + 0x3ec], eax
jmp 0x4096b2
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
push ebx
call fcn.00492806
push esi
call fcn.00492806
pop ecx
pop ecx
mov bl, 0x29
jmp 0x40907a