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

Disassembly:
sub esp, 0x60
mov ecx, dword [esp + 0x78]
push ebx
mov ebx, dword [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x84]
push esi
mov esi, dword [esp + 0x74]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], ecx
push edi
mov edi, dword [esp + 0x74]
xor eax, eax
lea ecx, [esp + 0x5c]
push ebp
mov byte [esp + 0x17], al
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov eax, dword [0x4d77d8]
push ecx
push esi
push edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x28], eax
call fcn.004853b0
cmp ebp, 3
mov eax, 0x64
mov edx, dword [esp + 0x18]
mov dword [0x4d77d8], edx
jg 0x48639c
mov eax, ebp
push eax
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.004853b0
cmp ebp, 5
mov ecx, dword [esp + 0x18]
mov dword [0x4d77d8], ecx
jne 0x4863bd
mov ebp, 4
lea edx, [esp + 0x48]
push ebp
push edx
push esi
push edi
call fcn.004853b0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov dword [0x4d77d8], eax
mov eax, dword [esp + 0x6c]
sub eax, ecx
mov dword [esp + 0x58], ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x80]
mov ebp, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x20], 0
sar ebp, 1
add ebp, eax
mov eax, dword [esp + 0x50]
sub eax, edx
add eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x8c]
test eax, eax
jle case.0x48643f.5
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00485cc0
mov ecx, dword [0x4d77ec]
mov eax, ecx
and eax, 0xff
lea edx, [eax - 2]
cmp edx, 0x1a
ja case.0x48643f.26
jmp dword [edx*4 + 0x487070]
mov edx, dword [0x4d77d8]
cmp byte [edx - 1], 0x7b
je 0x48646a
mov eax, dword [esp + 0x88]
cmp eax, 0xffffffff
je 0x48646a
and eax, 0x7fff
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
push eax
push ebx
push ecx
push ebp
push esi
push edi
call fcn.004862a0
mov byte [0x4d77ec], 0
jmp case.0x48643f.28
mov edx, dword [eax*4 + 0x4d321c]
mov eax, dword [eax*4 + 0x4d3344]
push 0
push ebx
push ebx
push edx
push 0x40
push ebx
push eax
mov byte [esp + 0x2f], 0x20
call dword [sym.imp.KERNEL32.dll_MulDiv]
add eax, dword [esp + 0x88]
jmp 0x486fcd
mov al, byte [0x4d77ec]
mov ecx, dword [0x4d77d8]
cmp al, 5
mov dword [esp + 0x74], ecx
je 0x486518
push 1
call fcn.00485cc0
mov al, byte [0x4d77ec]
cmp al, 5
je 0x486518
push 2
call fcn.00485cc0
mov al, byte [0x4d77ec]
cmp al, 5
je 0x486518
push 3
call fcn.00485cc0
mov al, byte [0x4d77ec]
cmp al, 0x1c
je 0x486518
cmp al, 5
je 0x486518
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
call fcn.004853b0
mov al, byte [0x4d77ec]
cmp al, 5
jne 0x4864ed
xor ecx, ecx
cmp al, 5
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
je 0x486544
push 4
call fcn.00485cc0
cmp byte [0x4d77ec], 0x1c
jne 0x486544
lea eax, [esp + 0x34]
push 5
push eax
push esi
push edi
call fcn.004853b0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x3c]
mov dword [0x4d77d8], ecx
mov ecx, dword [esp + 0x40]
cmp eax, ecx
jge 0x48655c
mov ecx, eax
mov eax, ebx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp ecx, eax
jge 0x48656d
mov ecx, eax
mov eax, dword [esp + 0x78]
mov edx, dword [0x4d3374]
sub eax, ecx
push 0
mov dword [esp + 0x7c], eax
lea eax, [ebx + ecx*2]
push eax
push eax
push 0xf2ff
push 0x40
push eax
push edx
mov dword [0x4d77ec], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add eax, dword [esp + 0x88]
jmp 0x486fcd
mov eax, dword [0x4d77d8]
lea ecx, [esp + 0x34]
push 5
push ecx
push esi
push edi
mov dword [esp + 0x84], eax
call fcn.004853b0
cmp byte [0x4d77ec], 5
jne 0x4865d3
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
jmp 0x4865e1
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
call fcn.004853b0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
add ecx, eax
mov eax, dword [esp + 0x88]
add ecx, edx
mov edx, dword [esp + 0x74]
push 5
push eax
mov eax, ebx
mov dword [0x4d77d8], edx
mov dword [esp + 0x4c], ecx
cdq
sub eax, edx
sar eax, 1
push eax
push 0x40
push ecx
push 0xc
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x48]
sub ecx, edx
sub ecx, eax
mov eax, 0x55555556
imul ebx
mov eax, edx
push ecx
shr eax, 0x1f
add edx, eax
add edx, ebp
push edx
push esi
push edi
call fcn.00486310
add ebp, eax
mov ecx, dword [0x4d77d8]
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
mov dword [esp + 0x84], ecx
call fcn.004853b0
push 0
push 0x3d
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [0x4d77d8], eax
push 0x4b
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x40]
add eax, ecx
push eax
mov dword [esp + 0x54], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
mov eax, dword [esp + 0x4c]
push eax
push 0xd6ff
push 0xf40
push 0x384
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x4c]
sub ecx, edx
sub ecx, eax
push ecx
push ebp
push esi
push edi
call fcn.00485f00
mov edx, dword [esp + 0x64]
add esp, 0x20
push 0
push edx
push 0xd6ff
push esi
push edi
call fcn.00485be0
add ebp, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [esp + 0x74], eax
mov eax, ebx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esp + 0x8c]
push 1
push eax
push ebx
push 0x14
push 1
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, dword [esp + 0x88]
sub edx, eax
mov eax, dword [esp + 0x44]
push edx
push 0x14
push 1
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
add eax, ebp
push eax
push esi
push edi
call fcn.00486310
movsx ecx, word [esp + 0x78]
mov edx, dword [esp + 0x48]
add eax, ecx
push eax
push 0x40
push edx
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, eax
mov eax, 0x2aaaaaab
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x44]
sub edx, eax
mov eax, dword [esp + 0x80]
add edx, eax
sub edx, ecx
push edx
push ebp
push esi
push edi
call fcn.00486080
add esp, 0x18
jmp case.0x48643f.28
mov ecx, dword [0x4d77d8]
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
mov dword [esp + 0x84], ecx
call fcn.004853b0
lea eax, [esp + 0x34]
push 1
push eax
push esi
push edi
call fcn.004853b0
push 0
mov ecx, dword [esp + 0x78]
mov dword [0x4d77d8], ecx
call fcn.00485cc0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x88]
add eax, edx
push ecx
mov ecx, dword [0x4d77ec]
lea edx, [eax + ebx]
push edx
push ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x84]
sar eax, 1
sub edx, eax
push ecx
push edx
push ebp
push esi
push edi
call fcn.00485f00
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x60]
mov dword [0x4d77d8], eax
mov eax, dword [esp + 0x5c]
sub eax, edx
add esp, 0x20
cdq
lea ecx, [esp + 0x34]
sub eax, edx
push 1
push ecx
sar eax, 1
push esi
push edi
mov dword [esp + 0x84], eax
call fcn.004853b0
push 1
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x48]
movsx eax, word [esp + 0x78]
push edx
mov edx, dword [esp + 0x80]
add eax, edx
push ebx
add ebp, ecx
push eax
push ebp
push esi
push edi
call fcn.00486310
jmp case.0x48643f.28
mov edx, dword [0x4d77d8]
push 0
cmp byte [edx - 1], 0x78
sete byte [esp + 0x88]
call fcn.00485cc0
cmp byte [0x4d77ec], 4
jne 0x486a76
mov eax, dword [0x4d77d8]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
mov dword [esp + 0x84], eax
mov dword [0x4d77d8], ecx
call fcn.004853b0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x3c]
mov dword [0x4d77d8], eax
mov eax, dword [esp + 0x78]
sub eax, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x28], 0
lea edx, [esp + 0x34]
push 5
push edx
push esi
push edi
call fcn.004853b0
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x4868f4
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jle 0x4868e4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jle 0x4868f4
mov dword [esp + 0x28], eax
mov al, byte [0x4d77ec]
cmp al, 5
je 0x486901
cmp al, 0x19
jne 0x4868be
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
add edx, eax
cmp eax, 0xffffffff
mov dword [esp + 0x78], edx
je 0x486a25
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x18]
push 0
mov dword [0x4d77d8], eax
call fcn.00485cc0
push 0
call fcn.00485cc0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x34]
push 5
push ecx
push esi
push edi
call fcn.004853b0
mov cl, byte [0x4d77ec]
cmp cl, 0x19
jne 0x486964
mov dword [esp + 0x1c], 0
jmp 0x486941
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp edx, eax
jne 0x486982
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x486982
cmp eax, dword [esp + 0x14]
jle 0x486982
mov dword [esp + 0x14], eax
cmp cl, 5
je 0x48698e
mov eax, dword [esp + 0x1c]
inc eax
jmp 0x48693d
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x34]
push 5
push ecx
push esi
push edi
mov dword [0x4d77d8], eax
call fcn.004853b0
mov al, byte [esp + 0x84]
mov edx, dword [esp + 0x74]
test al, al
mov dword [0x4d77d8], edx
je 0x4869cb
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
jmp 0x4869cd
xor eax, eax
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x78]
push 5
push ecx
push ebx
add eax, ebp
push edx
push eax
push esi
push edi
call fcn.00486310
mov eax, dword [0x4d77d8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x14]
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
add ebp, eax
mov al, byte [0x4d77ec]
cmp al, 5
je 0x486a15
cmp al, 0x19
je 0x486a15
inc dword [esp + 0x24]
jmp 0x486920
cmp al, 5
mov dword [esp + 0x14], 0
je case.0x48643f.28
mov ecx, dword [0x4d72c4]
mov edx, dword [0x4d72b4]
push 0x64
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x58]
add eax, ebx
add edx, eax
mov eax, dword [esp + 0x6c]
sub eax, ecx
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x7c]
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [esp + 0x14]
sar ebp, 1
add ebp, ecx
cmp eax, 0xffffffff
jne 0x4868ae
jmp case.0x48643f.28
mov eax, dword [esp + 0x18]
push 0
mov dword [0x4d77d8], eax
call fcn.00485cc0
jmp case.0x48643f.6
mov eax, dword [0x4d77d8]
mov dword [esp + 0x44], 0
sub eax, 3
mov dword [0x4d77d8], eax
mov edx, dword [0x4d77d8]
mov ecx, dword [0x4d7388]
push ecx
mov ecx, dword [esp + 0x7c]
movsx eax, byte [edx]
push ebx
push ebx
push eax
push ecx
push ebp
push esi
push edi
call fcn.00485f00
mov eax, dword [0x4d77d8]
mov edx, dword [0x4d7388]
add esp, 0x20
movsx ecx, byte [eax]
push edx
push ebx
push ecx
inc eax
push esi
push edi
mov dword [0x4d77d8], eax
call fcn.00485be0
add ebp, eax
mov eax, dword [esp + 0x44]
inc eax
cmp eax, 3
mov dword [esp + 0x44], eax
jl 0x486aa0
mov byte [esp + 0x13], 0x20
jmp case.0x48643f.28
mov eax, dword [0x4d77d8]
lea ecx, [esp + 0x34]
push 1
push ecx
push esi
push edi
mov dword [esp + 0x84], eax
call fcn.004853b0
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
call fcn.004853b0
push 0
mov byte [0x4d7818], 3
mov eax, dword [esp + 0x78]
mov dword [0x4d77d8], eax
call fcn.00485cc0
mov eax, dword [0x4d77ec]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x44]
push ecx
push edx
push ebx
push eax
push ecx
push ebx
push eax
push esi
push edi
call fcn.00485be0
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x4c]
sub ecx, edx
sub ecx, eax
push ecx
push ebp
push esi
push edi
call fcn.00485f00
mov edx, dword [esp + 0x94]
add esp, 0x20
lea eax, [esp + 0x34]
mov dword [0x4d77d8], edx
push 1
push eax
push esi
push edi
mov byte [0x4d7818], 0
call fcn.004853b0
push 1
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x7c]
push ecx
push ebx
push edx
push ebp
push esi
push edi
call fcn.00486310
jmp case.0x48643f.28
mov eax, dword [0x4d77d8]
lea ecx, [esp + 0x34]
push 1
push ecx
push esi
push edi
mov dword [esp + 0x84], eax
call fcn.004853b0
lea edx, [esp + 0x34]
push 1
push edx
push esi
push edi
call fcn.004853b0
push 0
mov byte [0x4d7818], 3
mov eax, dword [esp + 0x78]
mov dword [0x4d77d8], eax
call fcn.00485cc0
mov eax, dword [0x4d77ec]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x80]
add ecx, edx
push ebx
add ecx, ebx
push eax
push ecx
push ebp
push esi
push edi
call fcn.00485f00
mov eax, dword [esp + 0x94]
add esp, 0x20
lea ecx, [esp + 0x34]
mov byte [0x4d7818], 0
push 1
push ecx
push esi
push edi
mov dword [0x4d77d8], eax
call fcn.004853b0
push 1
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
push edx
push ebx
push eax
push ebp
push esi
push edi
call fcn.00486310
jmp case.0x48643f.28
mov ecx, dword [0x4d77d8]
cmp byte [ecx - 5], 0x5c
setne al
dec eax
and eax, 0x20
add eax, 0x20
mov byte [esp + 0x13], al
jmp case.0x48643f.28
mov edx, dword [0x4d7388]
mov eax, dword [esp + 0x78]
push 1
push edx
push ebx
push eax
push ebp
push esi
push edi
call fcn.00486310
jmp case.0x48643f.28
mov cl, byte [esp + 0x13]
test cl, cl
jle 0x486cc9
movsx edx, byte [esp + 0x13]
mov ecx, dword [esp + 0x34]
push 0x40
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x6c]
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [esp + 0x7c]
sar ebp, 1
add ebp, eax
jmp 0x486ce9
mov edx, dword [esp + 0x34]
shr edx, 1
test cl, cl
mov dword [esp + 0x34], edx
jge 0x486ce9
movsx ecx, cl
add ecx, eax
jne 0x486ce9
mov eax, dword [esp + 0x14]
mov byte [esp + 0x13], 0
add ebp, eax
mov dl, byte [0x4d77ec]
mov eax, dword [0x4d77d8]
lea ecx, [esp + 0x34]
push 1
push ecx
push esi
push edi
mov byte [esp + 0x94], dl
mov dword [esp + 0x84], eax
call fcn.004853b0
mov al, byte [esp + 0x13]
mov edx, dword [esp + 0x74]
test al, al
mov dword [0x4d77d8], edx
jle 0x486da7
mov al, byte [esp + 0x84]
push 1
cmp al, 2
mov eax, dword [esp + 0x8c]
push eax
jne 0x486d76
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
sub ecx, edx
mov edx, dword [esp + 0x80]
push eax
sub ecx, eax
mov eax, dword [esp + 0x50]
add ecx, edx
cdq
sub eax, edx
mov edx, ebp
sar eax, 1
add ecx, ebx
sub edx, eax
push ecx
push edx
push esi
push edi
call fcn.00486310
mov dword [esp + 0x34], ebx
jmp case.0x48643f.6
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x5c]
sub edx, ecx
mov ecx, ebp
push edx
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
push ecx
push esi
push edi
call fcn.00486310
mov dword [esp + 0x34], ebx
jmp case.0x48643f.6
fild dword [0x4d72c0]
mov edx, dword [esp + 0x34]
mov eax, dword [0x4d72b4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 0
fmul qword [0x4bdb50]
fimul dword [0x4d72b4]
lea ecx, [eax + eax]
mov dword [esp + 0x74], ecx
fild qword [esp + 0x2c]
fmulp st(1)
fild dword [esp + 0x74]
fdivp st(1)
call fcn.00496fa4
mov cl, byte [esp + 0x84]
mov dword [esp + 0x44], eax
cmp cl, 2
push 1
jne 0x486e20
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x48]
push ecx
sub edx, ecx
mov ecx, dword [esp + 0x84]
add edx, ecx
add edx, ebx
add eax, ebp
push edx
push eax
jmp 0x486e45
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x5c]
sub ecx, edx
mov edx, dword [esp + 0x84]
add ecx, edx
lea edx, [eax + ebp]
push ecx
push edx
push esi
push edi
call fcn.00486310
mov ecx, dword [esp + 0x44]
add ecx, eax
mov al, byte [esp + 0x13]
test al, al
mov dword [esp + 0x44], ecx
jge 0x486e78
mov eax, dword [esp + 0x14]
cmp eax, ecx
jle 0x486e68
mov ecx, eax
add ebp, ecx
mov byte [esp + 0x13], 0
mov dword [esp + 0x34], ebx
jmp case.0x48643f.6
mov al, byte [esp + 0x84]
mov dword [esp + 0x14], ecx
neg al
mov byte [esp + 0x13], al
mov dword [esp + 0x34], ebx
jmp case.0x48643f.6
mov eax, dword [0x4d77d8]
push 0
mov dword [esp + 0x78], eax
call fcn.00485cc0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x88]
add edx, eax
add edx, ebx
push ecx
mov ecx, dword [0x4d77ec]
push edx
mov edx, dword [esp + 0x80]
push ebx
sub edx, eax
push ecx
push edx
push ebp
push esi
push edi
call fcn.00485f00
mov eax, dword [esp + 0x94]
add esp, 0x20
lea ecx, [esp + 0x34]
mov dword [0x4d77d8], eax
push 1
push ecx
push esi
push edi
call fcn.004853b0
jmp case.0x48643f.6
cmp ebx, 0x18
jge 0x486f08
mov eax, 0x2aaaaaab
imul ebx
mov ecx, edx
shr edx, 0x1f
add ecx, edx
jmp 0x486f15
mov eax, ebx
cdq
and edx, 7
add eax, edx
mov ecx, eax
sar ecx, 3
mov eax, ebx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
mov eax, dword [esp + 0x70]
sub eax, ecx
push eax
mov eax, ebx
cdq
and edx, 0x3f
add eax, edx
mov ebp, eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x84]
sar ebp, 6
sar eax, 1
sub eax, ebp
mov ebp, dword [esp + 0x88]
add eax, ebp
add ecx, edx
push eax
push ecx
push esi
push edi
call fcn.00486080
mov ebp, dword [0x4d77d8]
add esp, 0x18
lea eax, [esp + 0x34]
push 1
push eax
push esi
push edi
call fcn.004853b0
push 1
mov dword [0x4d77d8], ebp
mov ecx, dword [esp + 0x8c]
push ecx
push ebx
push 0x40
push ebx
push 0x26
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov ecx, dword [esp + 0x48]
mov ebp, dword [esp + 0x8c]
add eax, ecx
mov ecx, dword [esp + 0x50]
add eax, ebp
mov ebp, dword [esp + 0x88]
push eax
mov eax, dword [esp + 0x7c]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ebp
push eax
push esi
push edi
call fcn.00486310
jmp case.0x48643f.28
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x78]
push edx
push ebx
push ebx
push ecx
push eax
push ebp
push esi
push edi
call fcn.00485f00
add esp, 0x20
mov ecx, dword [0x4d77d8]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x74], ecx
inc eax
lea ecx, [esp + 0x34]
push eax
push ecx
push esi
push edi
mov dword [0x4d77d8], edx
mov dword [esp + 0x94], eax
call fcn.004853b0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x58]
sub eax, ecx
mov ecx, dword [esp + 0x44]
cdq
sub eax, edx
mov edx, dword [esp + 0x50]
mov ebp, eax
mov eax, dword [esp + 0x7c]
sar ebp, 1
add ebp, ecx
mov ecx, dword [esp + 0x80]
add ebp, eax
mov eax, dword [esp + 0x64]
sub eax, edx
mov edx, dword [esp + 0x74]
add eax, ecx
mov dword [0x4d77d8], edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jl 0x48641c
mov eax, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 0x1c