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

Disassembly:
push esi
push ebx
push ebp
fldcw word [0x58ac6c]
sub esp, 0x10c
mov edx, edi
xor eax, eax
mov edi, esp
mov ecx, 0x43
rep stosd dword es:[edi], eax
mov edi, edx
mov ecx, dword [0x58ac74]
mov ebp, dword fs:[0x2c]
mov ebp, dword [ebp + ecx*4]
xor eax, eax
inc eax
lock xadd dword [ebp + 0x10], eax
push eax
push 0x5bf984
push 0
push 0
push dword [ebp]
mov dword [ebp], esp
cmp dword [ebp + 0xc], 0
jne 0x5487eb
push dword [esp + 0x130]
push dword [esp]
mov eax, dword [esp]
test eax, eax
je 0x4754b1
mov eax, dword [eax]
mov dword [esp + 0x28], 0x808fffff
call dword [eax + 4]
lea esp, [esp + 4]
nop dword [eax]
nop dword [eax]
push dword [esp + 0x130]
mov eax, dword [esp]
add eax, 0x84
mov eax, dword [eax]
push eax
mov eax, dword [esp]
cmp eax, 0xffffffff
setne dl
movzx edx, dl
neg edx
mov word [esp + 0x58], dx
lea esp, [esp + 8]
nop dword [eax]
push dword [esp + 0x130]
mov ecx, dword [esp]
add ecx, 0x7c
fld qword [ecx]
fld qword [0x5623a8]
fucompi st(1)
fstp st(0)
push dword [esp + 0x134]
mov ecx, dword [esp]
push eax
setbe byte [esp]
add ecx, 0x7c
fld qword [ecx]
fld qword [0x5623b0]
fucompi st(1)
fstp st(0)
mov al, byte [esp]
movzx eax, al
push eax
seta byte [esp]
neg eax
mov dl, byte [esp]
movzx edx, dl
neg edx
and ax, dx
push eax
mov dx, word [esp]
mov word [esp + 0x66], dx
lea esp, [esp + 0x14]
nop dword [eax]
mov dword [esp + 0x54], 0
nop dword [eax]
mov ax, word [esp + 0x50]
push eax
mov ax, word [esp]
test ax, ax
lea esp, [esp + 4]
je 0x474dbc
nop dword [eax]
push dword [esp + 0x130]
mov eax, dword [esp]
add eax, 0x84
mov eax, dword [eax]
push eax
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 8]
mov dword [esp + 0x34], 0x814002a3
call fcn.004acf37
cmp eax, 0
jl 0x4754c9
push dword [esp + 0x64]
mov edx, dword [esp]
mov dword [esp + 0x60], edx
lea esp, [esp + 0xc]
nop dword [eax]
push dword [esp + 0x130]
lea eax, [esp + 0x64]
push eax
push dword [esp + 4]
mov dword [esp + 0x2c], 0x80c002a8
call fcn.00475c95
cmp eax, 0
jl 0x4754f7
push dword [esp + 0x64]
push 0xffffffffffffffec
push dword [esp + 4]
mov dword [esp + 0x30], 0x810002a8
call dword [0x5639cc]
cmp dword [ebp + 0x20], 0
jne 0x4754ee
mov ecx, dword [ebp]
add ecx, 0xfffffff8
cmp ecx, esp
mov esp, ecx
jne 0x4754d9
push eax
mov dword [esp + 0x2c], 0x80c002a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x3c], eax
mov edx, dword [esp]
mov dword [esp + 0x70], edx
push dword [esp + 0x70]
mov edx, dword [esp]
mov dword [esp + 0x68], edx
lea esp, [esp + 0x10]
nop dword [eax]
mov ax, word [esp + 0x52]
push eax
mov ax, word [esp + 0x54]
push eax
mov ax, word [esp]
or ax, word [esp + 4]
push eax
mov ax, word [esp]
test ax, ax
lea esp, [esp + 0xc]
je 0x4752e8
nop dword [eax]
push dword [esp + 0x58]
mov eax, 0x80000
and eax, dword [esp]
push eax
mov eax, dword [esp]
cmp eax, 0
sete al
movzx eax, al
neg eax
test ax, ax
lea esp, [esp + 8]
je 0x474f4c
nop dword [eax]
push dword [esp + 0x130]
lea eax, [esp + 0x6c]
push eax
push dword [esp + 4]
mov dword [esp + 0x2c], 0x80c002ac
call fcn.00475c95
cmp eax, 0
jl 0x475529
push dword [esp + 0x5c]
mov eax, 0x80000
or eax, dword [esp]
push eax
push dword [esp + 0x74]
push dword [esp + 4]
push 0xffffffffffffffec
push dword [esp + 8]
mov dword [esp + 0x3c], 0x81c002ac
call dword [0x5631ec]
cmp dword [ebp + 0x20], 0
jne 0x47551f
mov ecx, dword [ebp]
add ecx, 0xfffffff0
cmp ecx, esp
mov esp, ecx
jne 0x475509
push eax
mov dword [esp + 0x34], 0x814002ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x3c], eax
mov edx, dword [esp]
mov dword [esp + 0x80], edx
push dword [esp + 0x80]
lea esp, [esp + 0x18]
nop dword [eax]
push dword [esp + 0x130]
lea eax, [esp + 0x74]
push eax
push dword [esp + 4]
mov dword [esp + 0x2c], 0x80c002ae
call fcn.00475c95
cmp eax, 0
jl 0x475590
mov ax, word [esp + 0x56]
push eax
lea eax, [esp + 0xa0]
mov cx, word [esp]
mov word [eax], 0xb
mov dword [eax + 8], ecx
lea eax, [esp + 0xa0]
mov edx, dword [eax + 8]
mov eax, dword [eax]
xor ebx, ebx
cmp ax, 1
je 0x475010
cmp al, 0xb
jne 0x474fd7
cmp ah, 0x40
jne 0x474fc8
mov eax, dword [edx]
jmp 0x475008
test ah, ah
jne 0x474fd7
mov eax, edx
jmp 0x475008
push 0
push 0
push 0
push 0
lea eax, [esp]
push eax
lea eax, [esp + 0xb4]
push eax
push 0xb
mov dword [esp + 0x44], 0x824002ae
call fcn.0055dc24
cmp eax, 0
jl 0x47558b
pop eax
pop eax
pop eax
pop edx
test ax, ax
setne bl
neg ebx
xor eax, eax
test bx, bx
je 0x475057
lea eax, [esp + 0xb0]
mov word [eax], 3
mov dword [eax + 8], 2
lea eax, [esp + 0x90]
lea ecx, [esp + 0xb0]
push dword [ecx + 0xc]
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx]
pop dword [eax]
pop dword [eax + 4]
pop dword [eax + 8]
pop dword [eax + 0xc]
jmp 0x47508d
lea eax, [esp + 0xc0]
mov word [eax], 2
mov word [eax + 8], 0
lea eax, [esp + 0x90]
lea ecx, [esp + 0xc0]
push dword [ecx + 0xc]
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx]
pop dword [eax]
pop dword [eax + 4]
pop dword [eax + 8]
pop dword [eax + 0xc]
mov ax, word [esp + 0x58]
push eax
lea eax, [esp + 0xe4]
mov cx, word [esp]
mov word [eax], 0xb
mov dword [eax + 8], ecx
lea eax, [esp + 0xe4]
mov edx, dword [eax + 8]
mov eax, dword [eax]
xor ebx, ebx
cmp ax, 1
je 0x475128
cmp al, 0xb
jne 0x4750ef
cmp ah, 0x40
jne 0x4750e0
mov eax, dword [edx]
jmp 0x475120
test ah, ah
jne 0x4750ef
mov eax, edx
jmp 0x475120
push 0
push 0
push 0
push 0
lea eax, [esp]
push eax
lea eax, [esp + 0xf8]
push eax
push 0xb
mov dword [esp + 0x48], 0x828002ae
call fcn.0055dc24
cmp eax, 0
jl 0x475586
pop eax
pop eax
pop eax
pop edx
test ax, ax
setne bl
neg ebx
xor eax, eax
test bx, bx
je 0x47516f
lea eax, [esp + 0xf4]
mov word [eax], 3
mov dword [eax + 8], 1
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xf4]
push dword [ecx + 0xc]
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx]
pop dword [eax]
pop dword [eax + 4]
pop dword [eax + 8]
pop dword [eax + 0xc]
jmp 0x4751a5
lea eax, [esp + 0x104]
mov word [eax], 2
mov word [eax + 8], 0
lea eax, [esp + 0xd4]
lea ecx, [esp + 0x104]
push dword [ecx + 0xc]
push dword [ecx + 8]
push dword [ecx + 4]
push dword [ecx]
pop dword [eax]
pop dword [eax + 4]
pop dword [eax + 8]
pop dword [eax + 0xc]
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x9c]
push eax
mov dword [esp + 0x38], 0x818002ae
call fcn.0047f3d5
cmp eax, 0
jl 0x475581
push 0
push 0
push 0
push 0
lea eax, [esp]
push eax
lea eax, [esp + 0x98]
push eax
push 3
mov dword [esp + 0x48], 0x828002ae
call fcn.0055dc24
cmp eax, 0
jl 0x47557c
pop eax
pop eax
pop eax
pop edx
push eax
push dword [esp + 0x140]
fld qword [0x5623b8]
mov ecx, dword [esp]
add ecx, 0x7c
fld qword [ecx]
fmulp st(1)
fld qword [0x5623c0]
fdivp st(1)
push 0
frndint
fistp dword [esp]
fnstsw ax
test ax, 4
jne 0x475572
test ax, 9
jne 0x475568
mov eax, dword [esp]
test eax, 0xffffff00
jne 0x47555e
push eax
push dword [esp + 0x70]
push dword [esp + 0x90]
push dword [esp + 0x14]
mov dl, byte [esp + 0xc]
push edx
push dword [esp + 0xc]
push dword [esp + 0xc]
mov dword [esp + 0x54], 0x834002ae
call dword [0x563204]
cmp dword [ebp + 0x20], 0
jne 0x475554
mov ecx, dword [ebp]
add ecx, 0xffffffdc
cmp ecx, esp
mov esp, ecx
jne 0x47553b
push eax
mov dword [esp + 0x48], 0x828002ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x3c], eax
mov edx, dword [esp]
mov dword [esp + 0x130], edx
push dword [esp + 0x130]
nop
nop
nop
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0x50], 0x830002ae
call fcn.005612fc
nop
nop
nop
lea esp, [esp + 0x2c]
jmp 0x47544d
nop dword [eax]
nop dword [eax]
push dword [esp + 0x58]
mov eax, 0x80000
and eax, dword [esp]
push eax
mov eax, dword [esp]
cmp eax, 0
setne al
movzx eax, al
neg eax
test ax, ax
lea esp, [esp + 8]
je 0x4753be
nop dword [eax]
push dword [esp + 0x130]
lea eax, [esp + 0x110]
push eax
push dword [esp + 4]
mov dword [esp + 0x2c], 0x80c002b1
call fcn.00475c95
cmp eax, 0
jl 0x4755cb
push dword [esp + 0x5c]
mov eax, dword [esp]
mov edx, 0x80000
sub eax, edx
jo 0x4755c2
push eax
push dword [esp + 0x118]
push dword [esp + 4]
push 0xffffffffffffffec
push dword [esp + 8]
mov dword [esp + 0x3c], 0x81c002b1
call dword [0x5631ec]
cmp dword [ebp + 0x20], 0
jne 0x4755b8
mov ecx, dword [ebp]
add ecx, 0xfffffff0
cmp ecx, esp
mov esp, ecx
jne 0x4755a2
push eax
mov dword [esp + 0x34], 0x814002b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x3c], eax
mov edx, dword [esp]
mov dword [esp + 0x124], edx
push dword [esp + 0x124]
lea esp, [esp + 0x18]
nop dword [eax]
push dword [esp + 0x130]
lea eax, [esp + 0x118]
push eax
push dword [esp + 4]
mov dword [esp + 0x2c], 0x80c002b3
call fcn.00475c95
cmp eax, 0
jl 0x4755fe
push dword [esp + 0x118]
push 2
push 0xffffffffffffffff
push 0
push dword [esp + 0xc]
mov dword [esp + 0x38], 0x818002b3
call dword [0x563204]
cmp dword [ebp + 0x20], 0
jne 0x4755f5
mov ecx, dword [ebp]
add ecx, 0xfffffff8
cmp ecx, esp
mov esp, ecx
jne 0x4755dd
push eax
mov dword [esp + 0x2c], 0x80c002b3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x3c], eax
mov edx, dword [esp]
mov dword [esp + 0x124], edx
push dword [esp + 0x124]
lea esp, [esp + 0x10]
nop dword [eax]
lea edx, [esp + 0x78]
mov ecx, dword [edx]
cmp cx, 0x1b
setl al
and ecx, 0xa
cmp cx, 8
setne cl
and al, cl
jne 0x475479
push edx
mov dword [esp + 0x24], 0x804002b5
call fcn.005612fc
push dword [esp + 0x130]
push dword [esp]
mov eax, dword [esp]
test eax, eax
je 0x99e0ee28
mov eax, dword [eax]
mov dword [esp + 0x28], 0x808002b5
call dword [eax + 8]
lea esp, [esp + 4]
pop ecx
mov dword [ebp], ecx
pop eax
add esp, 0x118
pop ebp
pop ebx
pop esi
ret 4
pop edx
pop edx
mov eax, 0x800a005b
push eax
push eax
push 0x3000
push 0x3c0029a
call fcn.00560734
pop edx
pop edx
push eax
push eax
push 0x48000
push 0xa9802a3
jmp 0x4754c4
pop edx
pop edx
mov eax, 0xeaeaea05
push eax
push eax
push 0x8c000
push 0xcd802a8
jmp 0x4754c4
pop edx
pop edx
mov eax, 0xeaeaea06
jmp 0x4754e0
pop edx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp - 4]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
jmp 0x4754e0
add esp, 0x10
mov eax, 0xeaeaea05
push eax
push eax
push 0x9a000
push 0x148802ac
jmp 0x4754c4
add esp, 0x10
mov eax, 0xeaeaea06
jmp 0x475511
pop edx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp - 4]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
jmp 0x475511
add esp, 0x24
mov eax, 0xeaeaea05
push eax
push eax
push 0x397000
push 0x195802ae
call fcn.00560734
add esp, 0x24
mov eax, 0xeaeaea06
jmp 0x475543
add esp, 0x18
mov eax, 0x8002000a
jmp 0x475543
add esp, 0x18
mov eax, 0x8002000a
jmp 0x475543
add esp, 0x18
mov eax, 0x80020012
jmp 0x475543
add esp, 0x1c
jmp 0x475543
add esp, 0xc
jmp 0x475543
add esp, 0x1c
jmp 0x475543
add esp, 0x18
jmp 0x475543
pop edx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp - 4]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
jmp 0x475543
add esp, 0x10
mov eax, 0xeaeaea05
push eax
push eax
push 0xa4000
push 0x37c802b1
jmp 0x47554f
add esp, 0x10
mov eax, 0xeaeaea06
jmp 0x4755aa
pop edx
pop edx
mov eax, 0x8002000a
jmp 0x4755aa
pop edx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp - 4]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
jmp 0x4755aa
pop edx
pop edx
mov eax, 0xeaeaea05
push eax
push eax
push 0x8f000
push 0x3ce802b3
call fcn.00560734
pop edx
pop edx
mov eax, 0xeaeaea06
jmp 0x4755e4
pop edx
mov dword [ebp + 0x1c], eax
mov eax, dword [esp - 4]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x18], eax
jmp 0x4755e4