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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45caa3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
mov dword [esp + 0x58], ecx
push edi
lea ecx, [esp + 0x14]
call 0x49a3b4
xor ebx, ebx
lea ecx, [esp + 0x64]
mov dword [esp + 0xcc], ebx
call 0x49ab6f
mov esi, 0x462694
mov dword [esp + 0x64], esi
call 0x49abcf
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x74], eax
push ebx
or edi, 0xffffffff
push ebx
lea ecx, [esp + 0x7c]
mov byte [esp + 0xd4], 1
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edi
call fcn.00466e00
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x64]
push eax
push ebx
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 2
call 0x49a6b8
test eax, eax
jne 0x474950
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
mov byte [esp + 0xcc], bl
mov dword [esp + 0x64], esi
lea edx, [eax + 0xc]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x474944
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0xcc], edi
jmp 0x474d56
push ebx
push ebx
push 4
lea ecx, [esp + 0x20]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], ebx
call 0x49a14c
push 2
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 2
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0x1c]
call 0x49a0c1
push ebx
push ebx
mov edi, 0x1c
push edi
lea ecx, [esp + 0x20]
call 0x49a14c
lea ecx, [esp + 0xa4]
call fcn.0046cac0
xor esi, esi
cmp word [esp + 0x24], bx
mov byte [esp + 0xcc], 3
jbe 0x474a14
push 8
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 8
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
call 0x49a0c1
lea ecx, [esp + 0x14]
call 0x49a19d
xor ecx, ecx
cmp ecx, edx
ja 0x474a14
jb 0x4749e8
cmp edi, eax
jae 0x474a14
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
push ebx
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
push ecx
lea ecx, [esp + 0xb8]
add edi, 0x10
call fcn.0046cb30
inc esi
cmp si, word [esp + 0x24]
jb 0x4749b3
movzx esi, word [esp + 0x24]
push ebx
shl esi, 4
push ebx
add esi, 0x1c
push esi
lea ecx, [esp + 0x20]
call 0x49a14c
cmp word [esp + 0x30], bx
mov dword [esp + 0x60], ebx
jbe 0x474cf5
lea ebx, [ebx]
push 2
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 2
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 2
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
call 0x49a0c1
lea ecx, [esp + 0x14]
call 0x49a19d
xor ecx, ecx
cmp ecx, edx
ja 0x474cf5
jb 0x474a8d
cmp esi, eax
jae 0x474cf5
movzx eax, word [esp + 0x10]
add esi, 6
cmp eax, ebx
mov dword [esp + 0x34], esi
jle 0x474ac2
cmp eax, 2
jg 0x474ac2
push 8
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 8
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x1c]
call 0x49a0c1
movzx eax, word [esp + 0x10]
dec eax
je 0x474ae6
dec eax
jne 0x474b06
push 8
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 8
lea edx, [esp + 0x44]
push edx
jmp 0x474afd
push 8
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x1c]
call 0x49a0c1
push 8
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x1c]
call 0x49a0c1
movzx eax, word [esp + 0x10]
cmp eax, ebx
je 0x474be1
jle 0x474ce1
cmp eax, 2
jg 0x474ce1
push 8
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x1c]
call 0x49a0c1
lea ecx, [esp + 0x14]
call 0x49a19d
xor ecx, ecx
cmp ecx, edx
ja 0x474bd9
jb 0x474b52
cmp esi, eax
jae 0x474bd9
fld qword [0x4612f0]
fmul qword [esp + 0x40]
fmul qword [0x461348]
fstp qword [esp + 0x40]
fld qword [0x4612f0]
fmul qword [esp + 0x28]
fmul qword [0x461348]
fst qword [esp + 0x28]
fcomp qword [esp + 0x40]
fnstsw ax
test ah, 5
jp 0x474b95
fld qword [0x4612f0]
fadd st(0), st(0)
fadd qword [esp + 0x28]
fstp qword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
push eax
add ecx, 0x64
call fcn.00476500
add esi, 0x28
jmp 0x474ce1
mov eax, dword [esp + 0xa8]
xor esi, esi
xor edx, edx
cmp eax, ebx
mov ecx, eax
je 0x474cf5
movzx edi, word [esp + 0x38]
jmp 0x474c00
cmp esi, edi
jge 0x474c10
mov edx, ecx
mov ecx, dword [ecx]
mov edx, dword [edx + 8]
inc esi
cmp ecx, ebx
jne 0x474c00
cmp edx, ebx
je 0x474cf5
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x88], ecx
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x8c], esi
movzx esi, word [esp + 0x3c]
mov dword [esp + 0x78], ecx
xor edx, edx
xor ecx, ecx
cmp edx, esi
jge 0x474c53
mov ecx, eax
mov eax, dword [eax]
mov ecx, dword [ecx + 8]
inc edx
cmp eax, ebx
jne 0x474c43
cmp ecx, ebx
je 0x474cf5
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x80], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x84], edx
mov edx, ecx
push edx
mov edx, dword [esp + 0x84]
push eax
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x74]
push edx
push eax
add ecx, 0x80
call fcn.00477730
push 1
push ebx
push 0x28
lea ecx, [esp + 0x20]
call 0x49a14c
mov eax, dword [esp + 0x34]
add eax, 0x28
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [esp + 0x60]
inc eax
cmp ax, word [esp + 0x30]
mov dword [esp + 0x60], eax
jb 0x474a40
lea ecx, [esp + 0x14]
call 0x49a352
lea ecx, [esp + 0xa4]
call fcn.004764d0
lea ecx, [esp + 0xa4]
mov byte [esp + 0xcc], 2
call fcn.0046cae0
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
mov byte [esp + 0xcc], bl
mov dword [esp + 0x64], 0x462694
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x474d4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov dword [esp + 0xcc], 0xffffffff
lea ecx, [esp + 0x14]
call 0x49a3f3
mov ecx, dword [esp + 0xc4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4