Function at 0x52ede0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5d87a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebx + ebx*4]
mov dword [esp + 0x10], ecx
lea eax, [eax + eax*8]
lea edx, [ebx + eax*2]
mov eax, dword [ecx + 0x24]
mov ecx, edi
lea esi, [eax + edx*8]
call fcn.004b7060
fcomp qword [esi + 0x298]
fnstsw ax
test ah, 1
jne 0x52efe2
mov ecx, dword [ebp + 0x18]
push ecx
mov ecx, esi
call fcn.0059eda0
test eax, eax
mov dword [esp + 0x14], eax
je 0x52efe2
lea ecx, [esp + 0x60]
call fcn.004b6ca0
push 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x94], 0
call fcn.00527630
mov ecx, edi
mov word [esp + 0x36], bx
call fcn.004b71f0
mov ebx, dword [esp + 0x10]
mov ecx, edi
fcomp qword [ebx + 0x88]
fnstsw ax
test ah, 1
je 0x52eea6
call fcn.004b7040
fcomp qword [esi + 0x290]
fnstsw ax
test ah, 1
jne 0x52efce
mov ecx, edi
call fcn.004b7040
jmp 0x52eeb9
call fcn.004b7040
fld qword [ebx + 0x80]
fmul qword [esi + 0x2b8]
faddp st(1)
fsub qword [esi + 0x290]
fdiv qword [esi + 0x2b8]
fadd qword [0x5e2858]
call sub.msvcrt.dll__ftol
test ax, ax
mov word [esp + 0x3a], ax
je 0x52efce
mov ecx, edi
call fcn.004b7060
fsub qword [esi + 0x298]
fdiv qword [esi + 0x2b0]
fadd qword [0x5e2858]
call sub.msvcrt.dll__ftol
mov word [esp + 0x38], ax
movsx ecx, ax
mov eax, dword [esp + 0x14]
cdq
idiv ecx
movsx edx, word [esp + 0x3a]
cmp edx, eax
jge 0x52ef17
mov ax, dx
mov ebx, dword [ebp + 0x1c]
mov word [esp + 0x3a], ax
test ax, ax
jne 0x52ef4b
cmp word [ebx + 0x14], 0
jne 0x52ef4b
cmp word [ebx + 0x16], 0
jne 0x52ef4b
mov eax, dword [esp + 0x14]
mov word [esp + 0x3a], 1
cmp ecx, eax
mov word [esp + 0x38], cx
jl 0x52ef4b
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0x18]
imul eax, dword [esp + 0x3a]
mov ecx, dword [esp + 0x10]
mov word [esp + 0x3c], ax
movsx eax, ax
push edx
push esi
push eax
call fcn.00530600
test al, al
jne 0x52efce
push edi
lea ecx, [esp + 0x64]
call fcn.004b6d90
movsx ecx, word [esp + 0x3a]
dec ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [esi + 0x2b8]
fadd qword [esi + 0x290]
fadd qword [esp + 0x60]
fstp qword [esp + 0x70]
cmp word [esi + 8], 1
jne 0x52effb
movsx edx, word [esp + 0x38]
dec edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [esi + 0x2b0]
fadd qword [esi + 0x298]
fadd qword [esp + 0x68]
fst qword [esp + 0x78]
fcomp qword [edi + 0x18]
fnstsw ax
test ah, 0x41
jne 0x52f04c
lea ecx, [esp + 0x60]
mov dword [esp + 0x90], 0xffffffff
call fcn.0042bd50
xor al, al
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
lea ecx, [esp + 0x60]
call fcn.004b7040
fld qword [esi + 0x290]
fadd st(0), st(0)
mov ecx, edi
faddp st(1)
fstp qword [esp + 0x14]
call fcn.004b7040
fcomp qword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x52f037
movsx eax, word [esp + 0x38]
dec eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
jmp 0x52efb0
mov ecx, dword [ebp + 0x18]
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x14]
push esi
push edx
call fcn.00535b20
fstp st(0)
cmp word [esp + 0x3c], 0
jne 0x52f060
cmp word [esp + 0x3e], 0
je 0x52efce
mov eax, dword [esp + 0x10]
lea edi, [ebx + 0x38]
mov ecx, dword [eax + 0x24]
movsx eax, word [ebx + 0xe]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*2]
mov edx, dword [ebp + 0x18]
push edx
lea esi, [ecx + eax*8]
movsx eax, word [esp + 0x3a]
lea edx, [eax + eax*4]
lea edx, [edx + edx*8]
lea eax, [eax + edx*2]
lea ecx, [ecx + eax*8]
push ecx
lea ecx, [esp + 0x30]
call fcn.005277b0
fstp qword [esp + 0x14]
lea ecx, [esp + 0x60]
call fcn.004b7040
fdivr qword [esp + 0x14]
mov edx, dword [ebp + 0x18]
mov ecx, ebx
push edx
push esi
fstp qword [esp + 0x24]
call fcn.005277b0
fstp qword [esp + 0x14]
mov ecx, edi
call fcn.004b7040
fdivr qword [esp + 0x14]
fcomp qword [esp + 0x1c]
fnstsw ax
test ah, 1
je 0x52efce
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 8]
fld qword [esi + 0x68]
fmul qword [0x5e2790]
fcomp qword [eax]
fnstsw ax
test ah, 0x41
jne 0x52f10b
lea ecx, [esp + 0x60]
call fcn.004b71f0
fcomp qword [esi + 0x88]
fnstsw ax
test ah, 1
jne 0x52efce
lea ecx, [esp + 0x60]
call fcn.004b7040
fcomp qword [ebp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x52efce
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [ebx], ecx
mov cx, word [esp + 0x34]
mov dword [ebx + 4], edx
mov dx, word [esp + 0x36]
mov dword [ebx + 8], eax
mov ax, word [esp + 0x38]
mov word [ebx + 0xc], cx
mov cx, word [esp + 0x3a]
mov word [ebx + 0xe], dx
mov dx, word [esp + 0x3c]
mov word [ebx + 0x10], ax
mov ax, word [esp + 0x3e]
mov word [ebx + 0x12], cx
lea edi, [ebx + 0x18]
mov ecx, 8
lea esi, [esp + 0x40]
mov word [ebx + 0x14], dx
mov word [ebx + 0x16], ax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [ebx + 0x38]
call fcn.004b6d90
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x60]
mov dword [ebx + 0x58], edx
mov dword [esp + 0x90], 0xffffffff
call fcn.0042bd50
mov ecx, dword [esp + 0x88]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x18