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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f6710
mov eax, dword fs:[0]
push eax
sub esp, 0x70
push ebx
push esi
push edi
mov eax, dword [0x52ec00]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
push 0x511394
lea eax, [esp + 0x1c]
push eax
push dword [ebp + 0xc]
xor esi, esi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], esi
call fcn.00411696
push 4
mov dword [esp + 0x8c], esi
call fcn.004d6661
pop ecx
cmp eax, esi
je 0x40fa15
lea ecx, [esp + 0x5c]
mov dword [eax], ecx
jmp 0x40fa17
xor eax, eax
mov dword [esp + 0x5c], eax
mov byte [esp + 0x88], 1
call fcn.0046c105
mov dword [esp + 0x74], eax
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x74]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x74]
mov dword [eax], eax
mov eax, dword [esp + 0x74]
mov dword [eax + 8], eax
mov dword [esp + 0x78], esi
mov byte [esp + 0x88], 2
jmp 0x40fce9
and dword [esp + 0x20], 0
lea eax, [esp + 0x18]
call fcn.00411782
push 0x511398
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x2c]
call fcn.00411696
lea eax, [esp + 0x14]
mov byte [esp + 0x88], 3
call fcn.00411782
push dword [0x546fbc]
push 0x546fc0
push dword [esp + 0x1c]
call dword [sym.imp.SHLWAPI.dll_StrCmpNA]
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
je 0x40fabc
mov eax, dword [0x546fbc]
push 0
lea ebx, [esp + 0x18]
call fcn.00411420
lea eax, [esp + 0x14]
push eax
lea ebx, [esp + 0x38]
lea edi, [esp + 0x60]
call fcn.004122e7
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
lea edi, [esp + 0x3c]
mov esi, ebx
mov dword [esp + 0x3c], eax
call fcn.0046b5c0
test al, al
jne 0x40fb06
mov eax, dword [esp + 0x38]
push dword [eax + 0xc]
lea eax, [esp + 0x18]
push eax
call fcn.00411faa
test eax, eax
jl 0x40fb06
mov eax, ebx
jmp 0x40fb1a
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x44]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
lea edi, [esp + 0x4c]
lea esi, [esp + 0x54]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
call fcn.0046b5c0
test al, al
jne 0x40fb53
cmp dword [esp + 0x20], 0
jne 0x40fca2
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00411ce1
xor edi, edi
mov dword [eax], edi
lea eax, [esp + 0x28]
push 0x511398
push eax
lea ecx, [esp + 0x1c]
call fcn.00411946
mov edx, dword [eax]
mov ebx, dword [ebp + 8]
pop ecx
pop ecx
test edx, edx
je 0x40fba6
mov eax, dword [ebx]
mov ecx, dword [eax - 0xc]
test edi, edi
jl 0x40fba6
cmp edi, ecx
jg 0x40fba6
push edx
add eax, edi
push eax
call fcn.004d8a02
pop ecx
pop ecx
test eax, eax
je 0x40fba6
sub eax, dword [ebx]
mov esi, eax
jmp 0x40fba9
or esi, 0xffffffff
mov eax, dword [esp + 0x28]
cmp esi, 0xffffffff
setne byte [esp + 0x13]
add eax, 0xfffffff0
call fcn.00406ace
cmp byte [esp + 0x13], 0
je 0x40fc89
test esi, esi
je 0x40fc0e
lea ecx, [esi - 1]
test ecx, ecx
jl 0x40fd3c
mov eax, dword [ebx]
mov edx, dword [eax - 0xc]
cmp ecx, edx
jg 0x40fd3c
cmp byte [eax + ecx], 0x20
je 0x40fc0e
test ecx, ecx
jl 0x40fd3c
cmp ecx, edx
jg 0x40fd3c
cmp byte [eax + ecx], 0x3b
je 0x40fc0e
mov eax, dword [esp + 0x14]
mov edi, dword [eax - 0xc]
add edi, esi
jmp 0x40fb66
push 0x511394
lea eax, [esp + 0x20]
push eax
push ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], esi
call fcn.00411696
mov byte [esp + 0x88], 4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x40fc73
cmp dword [esp + 0x20], 0
je 0x40fc49
inc eax
push esi
call fcn.00411420
jmp 0x40fc73
push dword [esp + 0x18]
lea eax, [esp + 0x20]
push eax
call fcn.00411faa
test eax, eax
je 0x40fc73
mov eax, dword [esp + 0x1c]
mov eax, dword [eax - 0xc]
push esi
call fcn.00411420
push dword [esp + 0x18]
push esi
push ebx
call fcn.004114a0
mov byte [esp + 0x88], 3
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.00406ace
jmp 0x40fca2
cmp dword [esp + 0x20], 0
jne 0x40fca2
push dword [esp + 0x18]
mov ecx, ebx
push str.___s
call fcn.004128d3
pop ecx
pop ecx
push 0x511394
lea eax, [esp + 0x34]
push eax
push dword [ebp + 0xc]
lea ecx, [esp + 0x30]
call fcn.00411696
lea edi, [esp + 0x18]
mov byte [esp + 0x88], 5
call fcn.004113b0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
call fcn.00406ace
mov byte [esp + 0x88], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.00406ace
push 0x511450
lea eax, [esp + 0x1c]
push eax
call fcn.00411faa
test eax, eax
jne 0x40fa55
mov eax, dword [ebp + 8]
call fcn.00411782
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x8c], 0
call fcn.00411d89
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.00406ace
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.0040499d
int3