Function at 0x42d0d6
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 0x42d131
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 0x42d150
mov eax, edx
sub eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x42e331
add eax, ebp
js 0x42e331
mov eax, dword [esp + 0x2c]
add eax, edi
js 0x42e331
cmp ebp, esi
jge 0x42e331
cmp edi, edx
jge 0x42e331
test ebp, ebp
jns 0x42d18a
mov eax, ebp
neg eax
jmp 0x42d18c
xor eax, eax
mov dword [esp + 0x40], eax
test edi, edi
jns 0x42d19a
mov edx, edi
neg edx
jmp 0x42d19c
xor edx, edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x2c]
jge 0x42e331
fld qword [0x45fd88]
add ebp, eax
fst qword [esp + 0x58]
fld dword [0x45fd80]
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 0x42d1f4
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 0x42e314
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x20]
cmp dword [ebx + 0xe0], 0
je 0x42d26c
push dword [esp + 0x30]
fstp st(1)
push eax
fstp st(1)
push ebx
fstp st(0)
call fcn.00427ed1
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 0x42d3ad
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.00447c20
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 0x42d36c
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 0x42d3a0
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 0x42deee
mov eax, dword [esp + 0x24]
test al, 2
je 0x42d440
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 0x42d416
xor byte [edi + 2], cl
mov eax, ecx
sar eax, 8
xor byte [edi + 1], al
mov eax, ecx
sar eax, 0x10
jmp 0x42d439
cmp byte [esp + 0x6c], 0
je 0x42e2d4
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 0x42e2d4
test dword [ebx + 0xd8], 0x100
fstp st(1)
je 0x42d7aa
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 0x42d789
mov esi, dword [ebx + 0x110]
movzx eax, byte [ebp + 2]
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], eax
cmp esi, 0xc0
jl 0x42d632
mov eax, edx
xor edx, edx
imul eax, dword [esp + 0x88]
div dword [esp + 0x18]
mov dword [esp + 0x88], eax
test eax, eax
jne 0x42d4bd
mov eax, dword [ebx + 0x104]
jmp 0x42d4f7
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 0x42d521
mov ecx, dword [ebx + 0x108]
jmp 0x42d570
mov eax, ecx
sar eax, 8
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x42d570
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 0x42d591
mov ecx, dword [ebx + 0x10c]
jmp 0x42d5d3
mov eax, dword [esp + 0x10]
sar eax, 0x10
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x42d5d3
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.00447c20
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 0x42d781
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.00447c20
mov esi, eax
mov eax, dword [esp + 0x10]
test esi, esi
jne 0x42d682
mov ecx, dword [ebx + 0x104]
jmp 0x42d6c3
cmp dword [esp + 0x80], 0
movzx ecx, al
je 0x42d6c3
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 0x42d6d2
mov ecx, dword [ebx + 0x108]
jmp 0x42d710
sar eax, 8
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x42d710
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 0x42d71f
mov ecx, dword [ebx + 0x10c]
jmp 0x42d761
mov eax, dword [esp + 0x10]
sar eax, 0x10
cmp dword [ebx + 0x110], 0
movzx ecx, al
je 0x42d761
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 0x42d79d
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 0x42e2d4
test al, 8
je 0x42d862
cmp dword [esp + 0x34], 4
jne 0x42e2d0
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 0x42d83a
fild dword [ebx + 0x110]
fstp qword [esp + 0x4c]
fld qword [esp + 0x4c]
jmp 0x42d854
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.00447cb0
jmp 0x42de43
fstp st(0)
test al, 0x30
jne 0x42d944
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 0x42d8f6
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 0x42dee2
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 0x42dee2
mov edx, ecx
sar edx, 0x18
cmp byte [esp + 0x6c], 0
je 0x42de4b
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 0x42db1b
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 0x42d9a0
mov eax, dword [ebx + 0x104]
jmp 0x42d9da
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 0x42da11
mov ecx, dword [ebx + 0x108]
mov dword [esp + 0x84], ecx
jmp 0x42da53
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 0x42da81
mov eax, dword [ebx + 0x10c]
jmp 0x42dab9
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.00447c20
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 0x42dcb6
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.00447c20
mov ecx, eax
mov dword [esp + 0x88], ecx
test ecx, ecx
jne 0x42db96
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 0x42dc92
mov eax, dword [esp + 0x10]
movzx edx, al
mov dword [esp + 0x80], edx
test esi, esi
je 0x42dbed
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 0x42dc38
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 0x42dc53
mov ecx, dword [esp + 0x88]
jmp 0x42dc96
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 0x42dd12
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 0x42dee9
movzx ecx, byte [edi + 3]
mov dword [esp + 0x88], ecx
test edx, edx
jne 0x42dd27
movzx eax, byte [edi + 2]
jmp 0x42dd70
test ecx, ecx
jne 0x42dd34
mov eax, dword [esp + 0x80]
jmp 0x42dd70
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 0x42dd7d
movzx eax, byte [edi + 1]
jmp 0x42ddc4
test ecx, ecx
jne 0x42dd8a
mov eax, dword [esp + 0x84]
jmp 0x42ddc4
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 0x42ddd7
movzx eax, byte [edi]
jmp 0x42de1e
test ecx, ecx
jne 0x42dde1
mov eax, dword [esp + 0x14]
jmp 0x42de1e
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 0x42deee
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 0x42deee
cmp dword [esp + 0x34], 3
jne 0x42def7
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 0x42e2d4
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 0x42e0fa
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 0x42df41
movzx eax, byte [edi + 2]
jmp 0x42df99
movzx eax, cl
mov dword [esp + 0x4c], eax
test esi, esi
je 0x42df99
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 0x42dfc1
movzx ecx, byte [edi + 1]
jmp 0x42e00d
mov eax, ecx
sar eax, 8
movzx ecx, al
test esi, esi
je 0x42e00d
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 0x42e039
movzx eax, byte [edi]
jmp 0x42e096
mov edx, dword [esp + 0x88]
mov eax, ecx
sar eax, 0x10
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x42e096
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 0x42e2d2
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.00447c20
mov edx, esi
sub edx, eax
imul eax, eax, 0xff
imul edx, dword [esp + 0x88]
add eax, edx
jmp 0x42de40
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.00447c20
mov ecx, eax
mov dword [esp + 0x80], ecx
test ecx, ecx
jne 0x42e151
movzx eax, byte [edi + 2]
jmp 0x42e1a5
mov eax, dword [esp + 0x10]
movzx edx, al
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x88]
test edx, edx
je 0x42e1b3
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 0x42e1cb
movzx eax, byte [edi + 1]
jmp 0x42e225
sar eax, 8
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x42e225
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 0x42e23c
movzx eax, byte [edi]
jmp 0x42e2a5
mov eax, ecx
sar eax, 0x10
movzx eax, al
mov dword [esp + 0x84], eax
test edx, edx
je 0x42e2a5
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 0x42e2d4
mov esi, 0xff
mov eax, esi
sub eax, dword [esp + 0x80]
imul eax, edx
imul ecx, dword [esp + 0x80], 0xff
jmp 0x42de3e
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 0x42d22f
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 0x42d1d9
fstp st(1)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x20