Function at 0x4b9fd0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b4338
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb4
push ebx
push esi
mov esi, ecx
xor eax, eax
mov ecx, 0x5d3624
push edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ecx
mov eax, dword [esi]
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
mov byte [esp + 0xcc], 1
call dword [eax + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x10], 0
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x74], edx
mov edi, dword [eax + 8]
mov dword [esp + 0x78], edi
mov ebx, dword [eax + 0xc]
mov eax, ebx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0xc], eax
mov eax, edi
fild dword [esp + 0xc]
sub eax, ecx
mov dword [esp + 0x18], eax
fdiv dword [esi + 0x78]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0xc], eax
fstp dword [esp + 0x68]
fild dword [esp + 0xc]
fstp dword [esp + 0x6c]
fld dword [esi + 0xc8]
fsub dword [esi + 0xc4]
fld dword [esp + 0x6c]
fdiv st(1)
fstp dword [esp + 0x30]
call fcn.0056b454
lea edx, [eax*8 + 8]
push edx
call fcn.00586401
mov edi, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x58]
mov ecx, dword [edi + 8]
push eax
push ecx
call dword [0x5c91a4]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
sub edx, ebx
lea ecx, [esp + 0x44]
push edx
push eax
push ecx
mov ecx, edi
call fcn.0058a7ad
xor ecx, ecx
mov dword [esp + 0x20], 0x5d3664
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], 0x5d3654
mov eax, dword [edi + 0xc]
mov byte [esp + 0xc8], 3
cmp eax, ecx
jne 0x4ba1a9
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x78]
push ecx
lea eax, [esp + 0x48]
push ecx
push eax
mov ecx, edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebx
call fcn.0058a7ad
mov ebx, dword [eax]
push 2
mov ecx, dword [eax + 4]
mov dword [esp + 0x4c], ecx
call dword [0x5c91b8]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 8]
lea edx, [esp + 0x58]
push 2
push edx
push eax
call dword [0x5c9064]
lea ecx, [esp + 0x58]
push ecx
call dword [0x5c9060]
push eax
lea ecx, [esp + 0x24]
call fcn.0058aedd
lea edx, [esp + 0x20]
mov ecx, edi
push edx
call fcn.0058a8ad
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x3c]
neg eax
mov edx, dword [esp + 0x24]
sbb eax, eax
and eax, ecx
lea ecx, [esp + 0x20]
neg ecx
sbb ecx, ecx
push eax
mov eax, dword [edi + 4]
and ecx, edx
push ecx
push eax
call dword [0x5c91a8]
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x44]
push ecx
push ebx
push edx
mov ecx, edi
call fcn.0058a7ad
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4ba21c
push 0x5dcd80
mov ecx, edi
call fcn.0058643b
test eax, eax
jne 0x4ba21c
mov eax, dword [edi + 8]
push 0x18
push eax
call dword [str.Iux]
cmp eax, 0xffffffff
je 0x4ba1f6
cmp eax, 3
jg 0x4ba1f6
mov ebx, dword [str.S_R]
push 0
push 3
push 0
call ebx
push eax
lea ecx, [esp + 0x38]
call fcn.0058aedd
push 0
push 1
push 0
jmp 0x4ba240
mov ebx, dword [str.S_R]
push 0xff
push 3
push 0
call ebx
push eax
lea ecx, [esp + 0x38]
call fcn.0058aedd
push 0xff0000
push 3
push 0
jmp 0x4ba240
mov ebx, dword [str.S_R]
push 0xff
push 3
push 0
call ebx
push eax
lea ecx, [esp + 0x38]
call fcn.0058aedd
push 0xff0000
push 3
push 2
call ebx
push eax
lea ecx, [esp + 0x2c]
call fcn.0058aedd
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
call fcn.0058a4e7
mov dword [esp + 0x84], eax
mov eax, dword [edi + 8]
lea edx, [esp + 0x88]
push edx
push eax
call dword [0x5c90e4]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x88]
add edx, ecx
mov dword [esp + 0xc], edx
fild dword [esp + 0xc]
fstp dword [esp + 0xc]
fild dword [esp + 0x70]
fst dword [esp + 0x80]
fstp dword [esp + 0x14]
fld dword [esi + 0xc4]
fst qword [esp + 0x44]
fld dword [esi + 0xc8]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x4ba33b
mov ebx, dword [esp + 0x1c]
fld dword [esp + 0x14]
call fcn.0056b454
fld dword [esi + 0xcc]
fadd st(1)
push 0
push 1
push 0
push 0
fmul qword [0x5cb230]
mov ecx, dword [esi + 0x48]
sub esp, 8
mov dword [esp + 0x70], eax
fstp qword [esp]
fstp st(0)
call fcn.0042c580
fmul dword [esp + 0x68]
call fcn.0056b454
fld dword [esp + 0x14]
fadd dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x10]
add ebx, 8
fstp dword [esp + 0x14]
fld qword [esp + 0x44]
fadd qword [0x5cb1a0]
inc ecx
mov dword [esp + 0x10], ecx
fst qword [esp + 0x44]
fld dword [esi + 0xc8]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ba2bf
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
push edx
push ebx
push eax
fstp st(0)
call dword [0x5c91b4]
push ebx
call fcn.0058642a
add esp, 4
mov ecx, edi
push 0
call fcn.0058a8ad
mov ecx, dword [esp + 0x18]
mov eax, 0xea0ea0eb
imul ecx
fld dword [esp + 0xc]
fmul dword [0x5cb160]
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x18], edx
call fcn.0056b454
fild dword [esp + 0x70]
fild dword [esp + 0x18]
mov ebx, 0xfffffff6
sub ebx, eax
fmul qword [0x5d3648]
fsubp st(1)
call fcn.0056b454
push ebx
lea edx, [esp + 0x48]
push eax
push edx
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.0058a971
mov eax, dword [esp + 0x70]
push ebx
push eax
mov ecx, edi
call fcn.0058a9bd
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.0058a8ad
lea edx, [esp + 0x28]
mov ecx, edi
push edx
call fcn.0058a4e7
fld dword [esi + 0xc0]
fsub dword [esi + 0xbc]
call fcn.0056b454
lea eax, [eax*8 + 8]
push eax
call fcn.00586401
fld dword [esi + 0xc0]
fsub dword [esi + 0xbc]
mov ecx, dword [esp + 0x84]
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
fdivr dword [esp + 0x6c]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x30]
fld dword [esi + 0xbc]
fst qword [esp + 0x44]
fld dword [esi + 0xc0]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
je 0x4ba5b9
fld dword [esp + 0x14]
call fcn.0056b454
fmul qword [0x5cb230]
push 0
push 1
sub esp, 8
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x68], eax
fstp qword [esp]
fld dword [esi + 0xcc]
fmul qword [0x5cb230]
sub esp, 8
fstp qword [esp]
call fcn.0042c580
fmul dword [esp + 0x68]
call fcn.0056b454
fld dword [esp + 0x14]
fadd dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [ebx], edx
mov dword [ebx + 4], eax
inc ecx
add ebx, 8
fstp dword [esp + 0x14]
fld qword [esp + 0x44]
fadd qword [0x5cb1a0]
mov dword [esp + 0x10], ecx
fst qword [esp + 0x44]
fld dword [esi + 0xc0]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ba44d
mov ebx, dword [esp + 0x1c]
fstp st(0)
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 4]
push eax
push ebx
push ecx
call dword [0x5c91b4]
push 0
mov ecx, edi
call fcn.0058a8ad
fld dword [esp + 0xc]
fmul dword [0x5d3644]
call fcn.0056b454
mov edx, dword [esp + 0x18]
mov esi, 0xa
sub esi, eax
lea eax, [esp + 0x44]
push esi
push edx
push eax
mov ecx, edi
call fcn.0058a971
mov ecx, dword [esp + 0x70]
push esi
push ecx
mov ecx, edi
call fcn.0058a9bd
mov edx, dword [esp + 0x1c]
push edx
call fcn.0058642a
mov eax, dword [esp + 0x88]
add esp, 4
mov ecx, edi
push eax
call fcn.0058a4e7
lea ecx, [esp + 0x20]
call fcn.0058af34
mov esi, 0x5ca4dc
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xc8], 4
call fcn.0058af34
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x20]
mov byte [esp + 0xc8], 5
call fcn.0058af34
mov dword [esp + 0x28], esi
lea ecx, [esp + 0x28]
mov byte [esp + 0xc8], 6
call fcn.0058af34
mov dword [esp + 0x34], esi
lea ecx, [esp + 0x34]
mov dword [esp + 0xc8], 7
call fcn.0058af34
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
fstp st(0)
jmp 0x4ba4d3