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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffb8
mov dword [esp], edx
mov edi, eax
mov eax, dword [esp]
mov byte [eax], 0
mov eax, dword [edi + 0x18]
call fcn.00405248
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4b5a5b
call sub.kernel32.dll_GetTickCount
mov dword [esp + 0x10], eax
mov ebp, ebx
test ebp, ebp
jl 0x4b5a00
inc ebp
xor ebx, ebx
imul eax, ebx, 0x2b
mov edx, dword [edi + 0x18]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x10]
cmp eax, dword [esi + 0x30]
jbe 0x4b59f8
cmp byte [esi + 8], 1
jne 0x4b59f8
mov ecx, dword [esi + 0x34]
mov eax, ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4b5528
cmp eax, dword [esp]
pop edx
pop eax
jb 0x4b5533
jmp 0x4b552c
pop edx
pop eax
jl 0x4b5533
inc ecx
jne 0x4b59f4
mov ecx, dword [esi + 0xe8]
mov eax, ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4b5557
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4b55d8
jmp 0x4b555b
pop edx
pop eax
jge 0x4b55d8
mov eax, dword [esp + 0x10]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0xec]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fld xword [0x4b5a64]
fmulp st(1)
sub ecx, dword [esi + 0xec]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fdivp st(1)
fld xword [0x4b5a70]
faddp st(1)
fstp qword [esp + 8]
wait
fld qword [esp + 8]
call fcn.00402a24
fld qword [esi + 0xd8]
fsub qword [esi + 0xd0]
fmulp st(1)
fld qword [esi + 0xd0]
fadd qword [esi + 0xd8]
faddp st(1)
fdiv dword [0x4b5a7c]
fstp qword [esi + 0xe0]
wait
jmp 0x4b55f6
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x10]
sub eax, dword [esi + 0xec]
mov dword [esi + 0xe8], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x38]
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4b5615
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4b56eb
jmp 0x4b561d
pop edx
pop eax
jge 0x4b56eb
mov al, byte [esi + 0x79]
sub al, 1
jb 0x4b562b
je 0x4b567b
jmp 0x4b56eb
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
sub eax, ecx
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
mov eax, dword [esi + 0x38]
cdq
push edx
push eax
mov eax, ecx
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
fild qword [esp + 0x34]
fdivp st(1)
fstp qword [esp + 8]
wait
fld qword [esi + 0x18]
fsub qword [esi + 0x10]
fmul qword [esp + 8]
fadd qword [esi + 0x10]
fstp qword [esi + 0x28]
wait
jmp 0x4b56eb
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
sub eax, ecx
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
fld xword [0x4b5a64]
fmulp st(1)
mov eax, dword [esi + 0x38]
cdq
push edx
push eax
mov eax, ecx
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
fild qword [esp + 0x34]
fdivp st(1)
fld xword [0x4b5a70]
faddp st(1)
fstp qword [esp + 8]
wait
fld qword [esp + 8]
call fcn.00402a24
fld qword [esi + 0x18]
fsub qword [esi + 0x10]
fmulp st(1)
fld qword [esi + 0x10]
fadd qword [esi + 0x18]
faddp st(1)
fdiv dword [0x4b5a7c]
fstp qword [esi + 0x28]
wait
mov ecx, dword [esi + 0x3c]
mov eax, ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4b5708
cmp eax, dword [esp]
pop edx
pop eax
jb 0x4b5719
jmp 0x4b570c
pop edx
pop eax
jl 0x4b5719
inc ecx
je 0x4b5719
cmp byte [esi + 0x78], 2
jne 0x4b59a3
mov al, byte [esi + 0x78]
sub al, 1
jb 0x4b5735
dec al
je 0x4b5915
dec al
je 0x4b57fb
jmp 0x4b59a3
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
sub eax, ecx
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
mov eax, dword [esi + 0x3c]
cdq
push edx
push eax
mov eax, ecx
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
fild qword [esp + 0x34]
fdivp st(1)
fstp qword [esp + 8]
wait
fild dword [esi + 0x70]
fmul qword [esp + 8]
call fcn.00402a5c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fstp xword [esp + 0x3c]
wait
fld qword [esi + 0x138]
fmul qword [esp + 8]
fadd qword [esi + 0x148]
call fcn.00402a4c
fmul qword [esi + 0x128]
fld xword [esp + 0x3c]
faddp st(1)
fstp qword [esi + 0x48]
wait
fild dword [esi + 0x74]
fmul qword [esp + 8]
call fcn.00402a5c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fstp xword [esp + 0x3c]
wait
fld qword [esi + 0x140]
fmul qword [esp + 8]
fadd qword [esi + 0x150]
call fcn.00402a4c
fmul qword [esi + 0x130]
fld xword [esp + 0x3c]
faddp st(1)
fstp qword [esi + 0x50]
wait
jmp 0x4b59a3
mov eax, dword [esp + 0x10]
sub eax, dword [esi + 0x30]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
fstp qword [esp + 8]
wait
xor eax, eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
xor eax, eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
fld qword [esi + 0xa8]
fmul qword [esp + 8]
fdiv dword [0x4b5a80]
fadd qword [esi + 0x60]
fstp qword [esp + 0x18]
wait
fld qword [esi + 0xb0]
fmul qword [esp + 8]
fdiv dword [0x4b5a80]
fadd qword [esi + 0x68]
fstp qword [esp + 0x20]
wait
fld qword [esp + 0x18]
fmul qword [esp + 8]
fdiv dword [0x4b5a80]
fadd qword [esi + 0xb8]
call fcn.00402a5c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fstp qword [esi + 0x48]
wait
fld qword [esp + 0x20]
fmul qword [esp + 8]
fdiv dword [0x4b5a80]
fadd qword [esi + 0xc0]
call fcn.00402a5c
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
fild qword [esp + 0x28]
fstp qword [esi + 0x50]
wait
mov edx, dword [esi + 0xc]
mov eax, edi
call fcn.004b1524
mov edx, eax
cmp edx, 0xffffffff
je 0x4b5a5b
cmp byte [esi + 0x120], 0
jne 0x4b59a3
fild dword [esi + 0x44]
fadd qword [esi + 0x50]
fild dword [edi + 0x10]
fcompp
fnstsw ax
sahf
jb 0x4b590c
fild dword [esi + 0x44]
fadd qword [esi + 0x50]
mov eax, edx
shl eax, 2
mov edx, dword [edi + 0x14]
fild dword [edx + eax*8 + 0x10]
fsubp st(1)
fcomp dword [0x4b5a84]
fnstsw ax
sahf
jb 0x4b590c
fild dword [esi + 0x40]
fadd qword [esi + 0x48]
fild dword [edi + 0xc]
fcompp
fnstsw ax
sahf
jae 0x4b59a3
mov byte [esi + 8], 0
jmp 0x4b59a3
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
sub eax, ecx
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
fild qword [esp + 0x28]
fld xword [0x4b5a64]
fmulp st(1)
mov eax, dword [esi + 0x3c]
cdq
push edx
push eax
mov eax, ecx
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
fild qword [esp + 0x34]
fdivp st(1)
fld xword [0x4b5a70]
faddp st(1)
fadd qword [esi + 0x98]
movsx eax, byte [esi + 0xa0]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmulp st(1)
fstp qword [esp + 8]
wait
fld qword [esp + 8]
call fcn.00402a24
fild dword [esi + 0x90]
fmulp st(1)
fstp qword [esi + 0x48]
wait
fld qword [esp + 8]
call fcn.00402a4c
fild dword [esi + 0x94]
fmulp st(1)
fstp qword [esi + 0x50]
wait
cmp byte [esi + 0x7a], 1
jbe 0x4b59f8
mov eax, dword [esi + 0x80]
add eax, dword [esi + 0x7c]
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x4b59ca
cmp eax, dword [esp]
pop edx
pop eax
jb 0x4b59f8
jmp 0x4b59ce
pop edx
pop eax
jl 0x4b59f8
mov eax, dword [esp + 0x10]
mov dword [esi + 0x80], eax
mov al, byte [esi + 0x84]
cmp al, byte [esi + 0x7a]
jne 0x4b59ec
mov byte [esi + 0x84], 1
jmp 0x4b59f8
inc byte [esi + 0x84]
jmp 0x4b59f8
mov byte [esi + 8], 0
inc ebx
dec ebp
jne 0x4b54eb
xor ebx, ebx
imul eax, ebx, 0x2b
mov edx, dword [edi + 0x18]
cmp byte [edx + eax*8 + 8], 0
jne 0x4b5a4e
mov edx, dword [edi + 0x18]
cmp dword [edx + eax*8 + 0xf0], 0xffffffff
je 0x4b5a43
imul eax, ebx, 0x2b
mov edx, dword [edi + 0x18]
mov eax, dword [edx + eax*8 + 0xf0]
mov edx, eax
shl eax, 3
sub eax, edx
mov edx, dword [0x4b9ba4]
mov edx, dword [edx]
mov byte [edx + eax*8 + 0x16], 0
mov eax, dword [esp]
mov byte [eax], 1
mov edx, ebx
mov eax, edi
call fcn.004b5a88
jmp 0x4b5a4f
inc ebx
mov eax, dword [edi + 0x18]
call fcn.00405248
cmp ebx, eax
jle 0x4b5a02
add esp, 0x48
pop ebp
pop edi
pop esi
pop ebx
ret