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

Disassembly:
sub esp, 0x58
push ebx
mov ebx, dword [esp + 0x60]
push ebp
mov ebp, dword [esp + 0x70]
push esi
mov eax, dword [ebx + 0xd8]
mov esi, dword [ebx + 0x80]
mov ecx, dword [ebx + 0xac]
mov edx, dword [ebx + 0xd4]
mov dword [esp + 0x20], eax
or eax, dword [esp + 0x84]
test al, 1
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x7c]
sete byte [esp + 0x68]
mov dword [esp + 0x24], eax
add eax, ebp
mov dword [esp + 0x30], edx
push edi
mov edi, dword [esp + 0x7c]
cmp eax, esi
jle 0x49410d
mov eax, esi
sub eax, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x84]
mov edx, dword [ebx + 0x84]
mov dword [esp + 0x2c], eax
add eax, edi
cmp eax, edx
jle 0x49412c
mov eax, edx
sub eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x49530d
add eax, ebp
js 0x49530d
mov eax, dword [esp + 0x2c]
add eax, edi
js 0x49530d
cmp ebp, esi
jge 0x49530d
cmp edi, edx
jge 0x49530d
test ebp, ebp
jns 0x494166
mov eax, ebp
neg eax
jmp 0x494168
xor eax, eax
mov dword [esp + 0x40], eax
test edi, edi
jns 0x494176
mov edx, edi
neg edx
jmp 0x494178
xor edx, edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x2c]
jge 0x49530d
fld qword [0x507008]
add ebp, eax
fst qword [esp + 0x58]
fld dword [0x4f37c8]
imul eax, eax, 3
fst dword [esp + 0x38]
fld1
fst qword [esp + 0x60]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], 0xff
cmp dword [ebx + 0xe8], 0
lea eax, [edi + edx]
mov dword [esp + 0x30], eax
je 0x4941d0
mov eax, dword [ebx + 0x84]
sub eax, edx
sub eax, edi
dec eax
mov edi, dword [ebx + 0xcc]
mov esi, dword [ebx + 0xd4]
imul ebp, esi
imul edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x20], eax
add edi, ebp
mov ebp, edx
imul ebp, dword [esp + 0x74]
add edi, dword [ebx + 0xc8]
add ebp, dword [esp + 0x44]
add ebp, dword [esp + 0x70]
cmp eax, dword [esp + 0x28]
jge 0x4952f0
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x20]
cmp dword [ebx + 0xe0], 0
je 0x494248
push dword [esp + 0x30]
fstp st(1)
push eax
fstp st(1)
push ebx
fstp st(0)
call fcn.0048e78c
fld qword [esp + 0x64]
mov ecx, eax
fld dword [esp + 0x44]
add esp, 0xc
mov esi, dword [ebx + 0xd4]
fld qword [esp + 0x60]
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0xe4], 0
je 0x494389
movzx ecx, byte [ebp + 1]
fstp st(1)
movzx edx, byte [ebp + 2]
fstp st(0)
movzx eax, byte [ebp]
add edx, ecx
add edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x88], edx
fild dword [esp + 0x88]
sar eax, 0x18
movzx eax, al
fstp dword [esp + 0x88]
fdivr dword [esp + 0x88]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp dword [esp + 0x88]
fmul dword [esp + 0x88]
call fcn.0043a1e0
mov ecx, dword [esp + 0x10]
mov edx, eax
movzx eax, byte [edi + 1]
and ecx, 0xffffff
shl edx, 0x18
mov dword [esp + 0x88], eax
or edx, ecx
movzx eax, byte [edi + 2]
movzx ecx, byte [edi]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x88]
cmp esi, 4
jne 0x494348
movzx eax, byte [edi + 3]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, dword [esp + 0x88]
shl eax, 8
or eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x24]
push edx
push dword [esp + 0x38]
push eax
call dword [ebx + 0xb8]
mov ecx, eax
mov edx, eax
sar ecx, 0x10
mov dword [esp + 0x88], ecx
mov ecx, eax
sar edx, 8
sar ecx, 0x18
mov byte [edi + 3], cl
mov ecx, dword [esp + 0x88]
jmp 0x49437c
or ecx, 0xffffff00
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x20]
shl ecx, 8
or ecx, dword [esp + 0x80]
push ecx
push edx
push dword [esp + 0x38]
push eax
call dword [ebx + 0xb8]
mov edx, eax
mov ecx, eax
sar edx, 8
sar ecx, 0x10
mov byte [edi + 2], al
mov byte [edi + 1], dl
mov byte [edi], cl
jmp 0x494eca
mov eax, dword [esp + 0x24]
test al, 2
je 0x49441c
movzx eax, byte [ebp + 1]
fstp st(0)
movzx ecx, byte [ebp + 2]
add ecx, eax
movzx eax, byte [ebp]
add ecx, eax
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov ecx, dword [esp + 0x10]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x88]
fcomp dword [esp + 0x88]
fnstsw ax
test ah, 5
jp 0x4943f2
xor byte [edi + 2], cl
mov eax, ecx
sar eax, 8
xor byte [edi + 1], al
mov eax, ecx
sar eax, 0x10
jmp 0x494415
cmp byte [esp + 0x6c], 0
je 0x4952b0
mov al, byte [ebx + 0x104]
xor byte [edi + 2], al
mov al, byte [ebx + 0x108]
xor byte [edi + 1], al
mov al, byte [ebx + 0x10c]
xor byte [edi], al
jmp 0x4952b0
test dword [ebx + 0xd8], 0x100
fstp st(1)
je 0x494786
mov eax, ecx
fstp st(0)
sar eax, 0x18
cmp byte [esp + 0x6c], 0
movzx edx, al
mov dword [esp + 0x84], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], edx
je 0x494765
mov esi, dword [ebx + 0x110]
movzx eax, byte [ebp + 2]
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], eax
cmp esi, 0xc0
jl 0x49460e
mov eax, edx
xor edx, edx
imul eax, dword [esp + 0x88]
div dword [esp + 0x18]
mov dword [esp + 0x88], eax
test eax, eax
jne 0x494499
mov eax, dword [ebx + 0x104]
jmp 0x4944d3
mov edx, 0xff
sub edx, eax
movzx eax, cl
imul eax, dword [esp + 0x88]
mov ecx, dword [ebx + 0x104]
imul edx, esi
imul eax, eax, 0xff
imul ecx, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x84]
xor edx, edx
mov byte [edi + 2], al
movzx eax, byte [ebp + 1]
imul eax, esi
div dword [esp + 0x18]
mov dword [esp + 0x88], eax
test eax, eax
jne 0x4944fd
mov ecx, dword [ebx + 0x108]
jmp 0x49454c
mov eax, ecx
sar eax, 8
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x49454c
imul ecx, dword [esp + 0x88]
mov edx, 0xff
sub edx, dword [esp + 0x88]
imul edx, dword [ebx + 0x110]
mov eax, dword [ebx + 0x108]
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, eax
mov byte [edi + 1], cl
xor edx, edx
movzx eax, byte [ebp]
mov ecx, 0xff
imul eax, esi
div ecx
mov esi, eax
test esi, esi
jne 0x49456d
mov ecx, dword [ebx + 0x10c]
jmp 0x4945af
mov eax, dword [esp + 0x10]
sar eax, 0x10
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x4945af
mov eax, dword [ebx + 0x10c]
mov edx, 0xff
sub edx, esi
imul ecx, esi
imul edx, dword [ebx + 0x110]
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, esi, 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, eax
mov byte [edi], cl
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
add ecx, eax
movzx eax, byte [ebp]
add ecx, eax
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
fstp dword [esp + 0x88]
fdivr dword [esp + 0x88]
fild dword [esp + 0x1c]
fstp qword [esp + 0x4c]
fmul qword [esp + 0x4c]
call fcn.0043a1e0
mov esi, 0xff
mov edx, esi
sub edx, eax
imul eax, eax, 0xff
imul edx, dword [ebx + 0x110]
add eax, edx
cdq
idiv esi
jmp 0x49475d
movzx eax, byte [ebp + 1]
add eax, dword [esp + 0x88]
movzx ecx, byte [ebp]
add ecx, eax
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
fstp dword [esp + 0x88]
fdivr dword [esp + 0x88]
fild dword [esp + 0x14]
fstp qword [esp + 0x4c]
fmul qword [esp + 0x4c]
call fcn.0043a1e0
mov esi, eax
mov eax, dword [esp + 0x10]
test esi, esi
jne 0x49465e
mov ecx, dword [ebx + 0x104]
jmp 0x49469f
cmp dword [esp + 0x80], 0
movzx ecx, al
je 0x49469f
mov eax, dword [ebx + 0x104]
mov edx, 0xff
sub edx, esi
imul ecx, esi
imul edx, dword [esp + 0x80]
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, esi, 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, eax
mov eax, dword [esp + 0x10]
mov byte [edi + 2], cl
test esi, esi
jne 0x4946ae
mov ecx, dword [ebx + 0x108]
jmp 0x4946ec
sar eax, 8
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x4946ec
mov eax, dword [ebx + 0x108]
mov edx, 0xff
sub edx, esi
imul ecx, esi
imul edx, dword [ebx + 0x110]
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, esi, 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, eax
mov byte [edi + 1], cl
test esi, esi
jne 0x4946fb
mov ecx, dword [ebx + 0x10c]
jmp 0x49473d
mov eax, dword [esp + 0x10]
sar eax, 0x10
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x49473d
mov eax, dword [ebx + 0x10c]
mov edx, 0xff
sub edx, esi
imul ecx, esi
imul edx, dword [ebx + 0x110]
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, esi, 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, eax
mov eax, 0xff
mov byte [edi], cl
sub eax, esi
imul ecx, esi, 0xff
imul eax, dword [ebx + 0x110]
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
jmp 0x494779
mov eax, ecx
mov byte [edi + 2], cl
sar eax, 8
fstp st(0)
mov byte [edi + 1], al
mov eax, ecx
sar eax, 0x10
mov byte [edi], al
push 3
pop esi
mov eax, edi
mov byte [eax + esi], dl
jmp 0x4952b0
test al, 8
je 0x49483e
cmp dword [esp + 0x34], 4
jne 0x4952ac
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
add ecx, eax
movzx eax, byte [ebp]
add ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
sar eax, 0x18
cmp byte [esp + 0x6c], 0
movzx eax, al
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fsub st(1), st(0)
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp dword [esp + 0x88]
fmul dword [esp + 0x88]
je 0x494816
fild dword [ebx + 0x110]
fstp qword [esp + 0x4c]
fld qword [esp + 0x4c]
jmp 0x494830
movzx eax, byte [edi + 3]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fstp qword [esp + 0x4c]
fld qword [esp + 0x4c]
fmulp st(2)
faddp st(1)
call fcn.0043a270
jmp 0x494e1f
fstp st(0)
test al, 0x30
jne 0x494920
mov eax, ecx
mov edx, 0xff
sar eax, 8
fstp st(0)
movzx eax, al
mov dword [esp + 0x88], eax
mov eax, ecx
sar eax, 0x10
movzx esi, al
movzx eax, byte [ebp + 2]
movzx ecx, cl
sub edx, eax
imul ecx, eax
cmp byte [esp + 0x6c], 0
je 0x4948d2
mov eax, dword [ebx + 0x104]
imul eax, edx
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x88]
mov byte [edi + 2], al
mov eax, 0xff
movzx ecx, byte [ebp + 1]
sub eax, ecx
imul edx, ecx
imul eax, dword [ebx + 0x108]
mov ecx, 0xff
add eax, edx
cdq
idiv ecx
mov byte [edi + 1], al
mov eax, 0xff
movzx ecx, byte [ebp]
sub eax, ecx
imul eax, dword [ebx + 0x10c]
imul esi, ecx
jmp 0x494ebe
movzx eax, byte [edi + 2]
imul eax, edx
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
mov byte [edi + 2], al
mov eax, ecx
movzx edx, byte [ebp + 1]
movzx ecx, byte [edi + 1]
sub eax, edx
imul edx, dword [esp + 0x88]
imul eax, ecx
mov ecx, 0xff
add eax, edx
cdq
idiv ecx
mov byte [edi + 1], al
mov eax, ecx
movzx edx, byte [ebp]
movzx ecx, byte [edi]
sub eax, edx
imul eax, ecx
imul esi, edx
jmp 0x494ebe
mov edx, ecx
sar edx, 0x18
cmp byte [esp + 0x6c], 0
je 0x494e27
movzx eax, byte [ebp + 2]
mov esi, dword [ebx + 0x110]
mov dword [esp + 0x80], eax
movzx eax, dl
mov dword [esp + 0x88], eax
cmp esi, 0xc0
jl 0x494af7
mov dword [esp + 0x1c], eax
xor edx, edx
imul eax, dword [esp + 0x80]
div dword [esp + 0x18]
mov dword [esp + 0x80], eax
test eax, eax
jne 0x49497c
mov eax, dword [ebx + 0x104]
jmp 0x4949b6
mov edx, 0xff
sub edx, eax
movzx eax, cl
imul eax, dword [esp + 0x80]
mov ecx, dword [ebx + 0x104]
imul edx, esi
imul eax, eax, 0xff
imul ecx, edx
add eax, ecx
imul ecx, dword [esp + 0x80], 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], eax
xor edx, edx
movzx eax, byte [ebp + 1]
mov dword [esp + 0x4c], eax
imul eax, dword [esp + 0x88]
div dword [esp + 0x18]
mov dword [esp + 0x84], eax
test eax, eax
jne 0x4949ed
mov ecx, dword [ebx + 0x108]
mov dword [esp + 0x84], ecx
jmp 0x494a2f
mov edx, 0xff
sub edx, eax
mov eax, ecx
mov ecx, dword [ebx + 0x108]
sar eax, 8
movzx eax, al
imul eax, dword [esp + 0x84]
imul edx, esi
imul eax, eax, 0xff
imul ecx, edx
add eax, ecx
imul ecx, dword [esp + 0x84], 0xff
add ecx, edx
cdq
idiv ecx
mov dword [esp + 0x84], eax
movzx eax, byte [ebp]
xor edx, edx
mov dword [esp + 0x48], eax
mov ecx, 0xff
imul eax, dword [esp + 0x88]
div ecx
mov ecx, eax
mov dword [esp + 0x88], ecx
test ecx, ecx
jne 0x494a5d
mov eax, dword [ebx + 0x10c]
jmp 0x494a95
mov eax, dword [esp + 0x10]
mov edx, 0xff
sar eax, 0x10
sub edx, ecx
movzx eax, al
imul eax, ecx
mov ecx, dword [ebx + 0x10c]
imul edx, esi
imul eax, eax, 0xff
imul ecx, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
movzx ecx, byte [ebp + 2]
add ecx, dword [esp + 0x48]
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov dword [esp + 0x14], eax
fstp dword [esp + 0x88]
fdivr dword [esp + 0x88]
fild dword [esp + 0x1c]
fstp qword [esp + 0x4c]
fmul qword [esp + 0x4c]
call fcn.0043a1e0
mov edx, 0xff
sub edx, eax
imul eax, eax, 0xff
imul edx, esi
mov esi, 0xff
add eax, edx
cdq
idiv esi
mov edx, eax
mov dword [esp + 0x1c], edx
jmp 0x494c92
movzx eax, byte [ebp + 1]
add eax, dword [esp + 0x80]
movzx ecx, byte [ebp]
add ecx, eax
mov dword [esp + 0x80], ecx
fild dword [esp + 0x80]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fild dword [esp + 0x88]
fstp dword [esp + 0x88]
fmul dword [esp + 0x88]
fdivrp st(1)
call fcn.0043a1e0
mov ecx, eax
mov dword [esp + 0x88], ecx
test ecx, ecx
jne 0x494b72
mov eax, dword [ebx + 0x104]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x108]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x10c]
jmp 0x494c6e
mov eax, dword [esp + 0x10]
movzx edx, al
mov dword [esp + 0x80], edx
test esi, esi
je 0x494bc9
mov eax, dword [ebx + 0x104]
mov edx, 0xff
sub edx, ecx
imul ecx, dword [esp + 0x80]
imul edx, esi
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
sar eax, 8
movzx edx, al
mov dword [esp + 0x84], edx
test esi, esi
je 0x494c14
mov eax, dword [ebx + 0x108]
mov edx, 0xff
sub edx, ecx
imul ecx, dword [esp + 0x84]
imul edx, esi
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x10]
sar eax, 0x10
movzx ecx, al
mov dword [esp + 0x14], ecx
test esi, esi
jne 0x494c2f
mov ecx, dword [esp + 0x88]
jmp 0x494c72
imul ecx, dword [esp + 0x88]
mov edx, 0xff
sub edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x10c]
imul edx, esi
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x88], 0xff
add ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x14], eax
mov eax, 0xff
sub eax, ecx
imul ecx, ecx, 0xff
imul eax, esi
mov esi, 0xff
add eax, ecx
cdq
idiv esi
mov edx, eax
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x34], 3
jne 0x494cee
movzx eax, byte [edi + 2]
mov ecx, esi
mov esi, dword [esp + 0x80]
sub ecx, edx
imul eax, ecx
imul esi, edx
add eax, esi
mov esi, 0xff
cdq
idiv esi
mov edx, dword [esp + 0x84]
imul edx, dword [esp + 0x1c]
mov byte [edi + 2], al
movzx eax, byte [edi + 1]
imul eax, ecx
add eax, edx
cdq
idiv esi
mov byte [edi + 1], al
movzx eax, byte [edi]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x1c]
add eax, ecx
mov ecx, esi
jmp 0x494ec5
movzx ecx, byte [edi + 3]
mov dword [esp + 0x88], ecx
test edx, edx
jne 0x494d03
movzx eax, byte [edi + 2]
jmp 0x494d4c
test ecx, ecx
jne 0x494d10
mov eax, dword [esp + 0x80]
jmp 0x494d4c
movzx eax, byte [edi + 2]
sub esi, edx
imul eax, esi
imul esi, dword [esp + 0x88]
imul eax, ecx
mov ecx, dword [esp + 0x80]
imul ecx, edx
imul ecx, ecx, 0xff
add eax, ecx
imul ecx, edx, 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x88]
idiv esi
mov edx, dword [esp + 0x1c]
mov byte [edi + 2], al
test edx, edx
jne 0x494d59
movzx eax, byte [edi + 1]
jmp 0x494da0
test ecx, ecx
jne 0x494d66
mov eax, dword [esp + 0x84]
jmp 0x494da0
movzx eax, byte [edi + 1]
mov esi, 0xff
sub esi, edx
imul eax, esi
imul esi, dword [esp + 0x88]
imul eax, ecx
mov ecx, dword [esp + 0x84]
imul ecx, edx
imul ecx, ecx, 0xff
add eax, ecx
imul ecx, edx, 0xff
cdq
add esi, ecx
idiv esi
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x88]
mov byte [edi + 1], al
test edx, edx
jne 0x494db3
movzx eax, byte [edi]
jmp 0x494dfa
test ecx, ecx
jne 0x494dbd
mov eax, dword [esp + 0x14]
jmp 0x494dfa
movzx eax, byte [edi]
mov esi, 0xff
sub esi, edx
imul eax, esi
imul esi, dword [esp + 0x88]
imul eax, ecx
mov ecx, dword [esp + 0x14]
imul ecx, edx
imul ecx, ecx, 0xff
add eax, ecx
imul ecx, edx, 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x88]
idiv esi
mov edx, dword [esp + 0x1c]
mov byte [edi], al
mov eax, dword [esp + 0x24]
test al, 0x10
je 0x494eca
mov esi, 0xff
mov eax, esi
sub eax, edx
imul eax, ecx
imul ecx, edx, 0xff
add eax, ecx
cdq
idiv esi
mov byte [edi + 3], al
jmp 0x494eca
cmp dword [esp + 0x34], 3
jne 0x494ed3
movzx eax, byte [ebp + 2]
mov ecx, 0xff
movzx esi, dl
fstp st(0)
imul eax, esi
xor edx, edx
div ecx
mov edx, ecx
movzx ecx, byte [edi + 2]
sub edx, eax
imul edx, ecx
mov ecx, dword [esp + 0x10]
movzx ecx, cl
imul eax, ecx
mov ecx, 0xff
add eax, edx
cdq
idiv ecx
xor edx, edx
mov byte [edi + 2], al
movzx eax, byte [ebp + 1]
imul eax, esi
div ecx
mov edx, ecx
movzx ecx, byte [edi + 1]
sub edx, eax
imul edx, ecx
mov ecx, dword [esp + 0x10]
sar ecx, 8
movzx ecx, cl
imul eax, ecx
mov ecx, 0xff
add eax, edx
cdq
idiv ecx
xor edx, edx
mov byte [edi + 1], al
movzx eax, byte [ebp]
imul eax, esi
div ecx
mov ecx, dword [esp + 0x10]
sar ecx, 0x10
movzx esi, cl
mov ecx, 0xff
imul esi, eax
sub ecx, eax
movzx eax, byte [edi]
imul eax, ecx
add eax, esi
mov ecx, 0xff
cdq
idiv ecx
mov byte [edi], al
mov ecx, dword [esp + 0x10]
jmp 0x4952b0
cmp byte [edi + 3], 0xc0
movzx esi, byte [edi + 3]
movzx eax, dl
movzx edx, byte [ebp + 2]
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], esi
jb 0x4950d6
mov dword [esp + 0x1c], eax
mov ecx, 0xff
imul eax, edx
xor edx, edx
div ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x84], edx
test edx, edx
jne 0x494f1d
movzx eax, byte [edi + 2]
jmp 0x494f75
movzx eax, cl
mov dword [esp + 0x4c], eax
test esi, esi
je 0x494f75
movzx eax, byte [edi + 2]
mov esi, 0xff
mov ecx, dword [esp + 0x4c]
sub esi, edx
imul ecx, dword [esp + 0x84]
imul eax, esi
imul esi, dword [esp + 0x88]
imul ecx, ecx, 0xff
imul eax, dword [esp + 0x88]
add eax, ecx
imul ecx, dword [esp + 0x84], 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x10]
idiv esi
mov esi, dword [esp + 0x88]
mov byte [edi + 2], al
xor edx, edx
movzx eax, byte [ebp + 1]
imul eax, dword [esp + 0x80]
div dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x84], edx
test edx, edx
jne 0x494f9d
movzx ecx, byte [edi + 1]
jmp 0x494fe9
mov eax, ecx
sar eax, 8
movzx ecx, al
test esi, esi
je 0x494fe9
imul ecx, dword [esp + 0x84]
mov esi, 0xff
movzx eax, byte [edi + 1]
sub esi, edx
imul eax, esi
imul esi, dword [esp + 0x88]
imul ecx, ecx, 0xff
imul eax, dword [esp + 0x88]
add eax, ecx
imul ecx, dword [esp + 0x84], 0xff
cdq
add esi, ecx
idiv esi
mov ecx, eax
mov byte [edi + 1], cl
xor edx, edx
movzx eax, byte [ebp]
mov esi, 0xff
imul eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x10]
div esi
mov dword [esp + 0x80], eax
test eax, eax
jne 0x495015
movzx eax, byte [edi]
jmp 0x495072
mov edx, dword [esp + 0x88]
mov eax, ecx
sar eax, 0x10
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x495072
sub esi, dword [esp + 0x80]
movzx eax, byte [edi]
mov ecx, dword [esp + 0x84]
imul ecx, dword [esp + 0x80]
imul eax, esi
imul esi, edx
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x80], 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x10]
idiv esi
mov esi, 0xff
mov byte [edi], al
mov eax, dword [esp + 0x24]
test al, 0x10
je 0x4952ae
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp + 2]
add ecx, eax
movzx eax, byte [ebp]
add ecx, eax
mov dword [esp + 0x80], ecx
fild dword [esp + 0x80]
fstp dword [esp + 0x80]
fdivr dword [esp + 0x80]
fild dword [esp + 0x1c]
fstp qword [esp + 0x4c]
fmul qword [esp + 0x4c]
call fcn.0043a1e0
mov edx, esi
sub edx, eax
imul eax, eax, 0xff
imul edx, dword [esp + 0x88]
add eax, edx
jmp 0x494e1c
movzx eax, byte [ebp + 1]
movzx ecx, byte [ebp]
add eax, edx
add ecx, eax
mov dword [esp + 0x84], ecx
fild dword [esp + 0x84]
fstp dword [esp + 0x84]
fld dword [esp + 0x84]
fild dword [esp + 0x80]
fstp dword [esp + 0x80]
fmul dword [esp + 0x80]
fdivrp st(1)
call fcn.0043a1e0
mov ecx, eax
mov dword [esp + 0x80], ecx
test ecx, ecx
jne 0x49512d
movzx eax, byte [edi + 2]
jmp 0x495181
mov eax, dword [esp + 0x10]
movzx edx, al
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x88]
test edx, edx
je 0x49518f
movzx eax, byte [edi + 2]
mov esi, 0xff
sub esi, ecx
imul ecx, dword [esp + 0x84]
imul eax, esi
imul esi, edx
imul ecx, ecx, 0xff
imul eax, edx
add eax, ecx
imul ecx, dword [esp + 0x80], 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x80]
idiv esi
mov edx, dword [esp + 0x88]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x84]
mov byte [edi + 2], al
mov eax, dword [esp + 0x10]
test ecx, ecx
jne 0x4951a7
movzx eax, byte [edi + 1]
jmp 0x495201
sar eax, 8
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x495201
movzx eax, byte [edi + 1]
mov esi, 0xff
sub esi, ecx
imul eax, esi
imul esi, dword [esp + 0x88]
imul eax, edx
mov edx, dword [esp + 0x84]
imul edx, ecx
imul ecx, edx, 0xff
mov dword [esp + 0x84], edx
add eax, ecx
imul ecx, dword [esp + 0x80], 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x80]
idiv esi
mov edx, dword [esp + 0x88]
test ecx, ecx
mov ecx, dword [esp + 0x10]
mov byte [edi + 1], al
jne 0x495218
movzx eax, byte [edi]
jmp 0x495281
mov eax, ecx
sar eax, 0x10
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x495281
movzx eax, byte [edi]
mov esi, 0xff
sub esi, dword [esp + 0x80]
imul eax, esi
imul esi, dword [esp + 0x88]
imul eax, edx
mov edx, dword [esp + 0x84]
imul edx, dword [esp + 0x80]
imul ecx, edx, 0xff
mov dword [esp + 0x84], edx
add eax, ecx
imul ecx, dword [esp + 0x80], 0xff
cdq
add esi, ecx
mov ecx, dword [esp + 0x10]
idiv esi
mov edx, dword [esp + 0x88]
mov byte [edi], al
mov eax, dword [esp + 0x24]
test al, 0x10
je 0x4952b0
mov esi, 0xff
mov eax, esi
sub eax, dword [esp + 0x80]
imul eax, edx
imul ecx, dword [esp + 0x80], 0xff
jmp 0x494e1a
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x20]
add ebp, 3
mov esi, dword [ebx + 0xd4]
add edi, esi
fld qword [esp + 0x58]
inc eax
fld dword [esp + 0x38]
fld qword [esp + 0x60]
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x28]
jl 0x49420b
mov edx, dword [esp + 0x3c]
fstp st(1)
fstp st(1)
fstp st(0)
fld qword [esp + 0x58]
fld dword [esp + 0x38]
fld qword [esp + 0x60]
mov edi, dword [esp + 0x7c]
inc edx
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x2c]
jl 0x4941b5
fstp st(1)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x20