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

Disassembly:
sub esp, 0x4c
push ebx
push esi
mov eax, dword [esp + 0x5c]
dec eax
shl eax, 0x10
mov ebx, dword [esp + 0x68]
dec ebx
shl ebx, 0x10
xor edx, edx
ror eax, 0x10
xchg dx, ax
div ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
dec eax
shl eax, 0x10
mov ebx, dword [esp + 0x6c]
dec ebx
shl ebx, 0x10
xor edx, edx
ror eax, 0x10
xchg dx, ax
div ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x58]
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
xor ebx, ebx
test esi, esi
mov dword [esp + 0x10], ebx
jle 0x41be9d
push ebp
push edi
mov edi, edi
mov ecx, dword [esp + 0x74]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x3c], eax
jle 0x41be8e
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov edx, esi
imul edx, ebp
lea ecx, [ebx + edi]
mov dword [esp + 0x2c], ecx
add ecx, esi
lea ebx, [ebx + esi*2]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x74]
add ebx, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ecx
xor ecx, ecx
xor edi, edi
cmp ebp, 4
mov dword [esp + 0x28], ecx
jl 0x41bcab
mov ecx, dword [esp + 0x38]
mov ebp, eax
sar ebp, 0x10
mov edx, ebp
imul edx, dword [esp + 0x64]
and eax, 0xffff
mov dword [esp + 0x60], eax
lea eax, [ebx + esi]
mov dword [esp + 0x40], eax
fild dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], edx
fmul qword [0x438f90]
mov dword [esp + 0x44], 3
fld dword [0x4369fc]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ecx
fsub st(1)
mov dword [esp + 0x60], eax
jmp 0x41b802
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, edi
sar ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
imul eax, esi
add eax, ebx
mov ebx, dword [esp + 0x64]
add eax, edx
mov dl, byte [eax]
dec ebx
cmp ecx, ebx
mov ebx, dword [esp + 0x68]
jge 0x41b84f
mov cl, byte [eax + esi]
dec ebx
cmp ebp, ebx
jge 0x41b849
mov ebp, dword [esp + 0x64]
mov ebx, esi
imul ebx, ebp
mov bl, byte [ebx + eax]
inc ebp
imul ebp, esi
mov al, byte [eax + ebp]
mov byte [esp + 0x13], al
jmp 0x41b86c
mov byte [esp + 0x13], cl
jmp 0x41b86a
dec ebx
cmp ebp, ebx
mov cl, dl
jge 0x41b866
mov ebx, esi
imul ebx, dword [esp + 0x64]
mov bl, byte [ebx + eax]
mov byte [esp + 0x13], bl
jmp 0x41b86c
mov byte [esp + 0x13], dl
mov bl, dl
mov eax, edi
and eax, 0xffff
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
movzx edx, dl
mov dword [esp + 0x54], edx
movzx eax, cl
fmul qword [0x438f90]
fld dword [0x4369fc]
fsub st(1)
fild dword [esp + 0x54]
mov dword [esp + 0x54], eax
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
movzx edx, byte [esp + 0x13]
movzx ecx, bl
mov dword [esp + 0x54], ecx
mov byte [esp + 0x10], al
fild dword [esp + 0x54]
mov dword [esp + 0x54], edx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
fstp st(0)
movzx ecx, byte [esp + 0x10]
fstp st(0)
mov dword [esp + 0x54], ecx
movzx edx, al
fild dword [esp + 0x54]
mov dword [esp + 0x54], edx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov byte [ecx], al
add edi, ebp
mov ecx, edi
sar ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
imul eax, esi
add eax, ebx
mov ebx, dword [esp + 0x64]
add eax, edx
mov dl, byte [eax]
dec ebx
cmp ecx, ebx
mov ebx, dword [esp + 0x14]
jge 0x41b961
mov cl, byte [eax + esi]
mov byte [esp + 0x11], cl
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
jge 0x41b957
mov ecx, dword [esp + 0x64]
mov ebx, esi
imul ebx, ecx
mov bl, byte [ebx + eax]
inc ecx
imul ecx, esi
mov al, byte [ecx + eax]
mov byte [esp + 0x13], al
jmp 0x41b984
mov cl, byte [esp + 0x11]
mov byte [esp + 0x13], cl
jmp 0x41b982
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
mov byte [esp + 0x11], dl
jge 0x41b97e
mov ecx, esi
imul ecx, dword [esp + 0x64]
mov bl, byte [ecx + eax]
mov byte [esp + 0x13], bl
jmp 0x41b984
mov byte [esp + 0x13], dl
mov bl, dl
mov eax, edi
and eax, 0xffff
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
movzx ecx, dl
movzx edx, byte [esp + 0x11]
fmul qword [0x438f90]
fld dword [0x4369fc]
mov dword [esp + 0x54], ecx
fsub st(1)
fild dword [esp + 0x54]
mov dword [esp + 0x54], edx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
movzx ecx, byte [esp + 0x13]
mov byte [esp + 0x10], al
movzx eax, bl
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
mov dword [esp + 0x54], ecx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
fstp st(0)
movzx edx, byte [esp + 0x10]
fstp st(0)
mov dword [esp + 0x54], edx
movzx eax, al
fild dword [esp + 0x54]
mov dword [esp + 0x54], eax
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov byte [ecx], al
add edi, ebp
mov ecx, edi
sar ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
imul eax, esi
add eax, ebx
mov ebx, dword [esp + 0x64]
add eax, edx
mov dl, byte [eax]
dec ebx
cmp ecx, ebx
mov ebx, dword [esp + 0x14]
jge 0x41ba77
mov cl, byte [eax + esi]
mov byte [esp + 0x11], cl
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
jge 0x41ba6d
mov ecx, dword [esp + 0x64]
mov ebx, esi
imul ebx, ecx
mov bl, byte [ebx + eax]
inc ecx
imul ecx, esi
mov al, byte [ecx + eax]
mov byte [esp + 0x13], al
jmp 0x41ba9a
mov cl, byte [esp + 0x11]
mov byte [esp + 0x13], cl
jmp 0x41ba98
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
mov byte [esp + 0x11], dl
jge 0x41ba94
mov ecx, esi
imul ecx, dword [esp + 0x64]
mov bl, byte [ecx + eax]
mov byte [esp + 0x13], bl
jmp 0x41ba9a
mov byte [esp + 0x13], dl
mov bl, dl
mov eax, edi
and eax, 0xffff
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
movzx ecx, dl
movzx edx, byte [esp + 0x11]
fmul qword [0x438f90]
fld dword [0x4369fc]
mov dword [esp + 0x54], ecx
fsub st(1)
fild dword [esp + 0x54]
mov dword [esp + 0x54], edx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
movzx ecx, byte [esp + 0x13]
mov byte [esp + 0x10], al
movzx eax, bl
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
mov dword [esp + 0x54], ecx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
fstp st(0)
movzx edx, byte [esp + 0x10]
fstp st(0)
mov dword [esp + 0x54], edx
movzx eax, al
fild dword [esp + 0x54]
mov dword [esp + 0x54], eax
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov byte [ecx], al
add edi, ebp
mov ecx, edi
sar ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
imul eax, esi
add eax, ebx
mov ebx, dword [esp + 0x64]
add eax, edx
mov dl, byte [eax]
dec ebx
cmp ecx, ebx
mov ebx, dword [esp + 0x14]
jge 0x41bb8d
mov cl, byte [eax + esi]
mov byte [esp + 0x11], cl
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
jge 0x41bb83
mov ecx, dword [esp + 0x64]
mov ebx, esi
imul ebx, ecx
mov bl, byte [ebx + eax]
inc ecx
imul ecx, esi
mov al, byte [ecx + eax]
mov byte [esp + 0x13], al
jmp 0x41bbb0
mov cl, byte [esp + 0x11]
mov byte [esp + 0x13], cl
jmp 0x41bbae
mov ecx, dword [esp + 0x68]
dec ecx
cmp ebx, ecx
mov byte [esp + 0x11], dl
jge 0x41bbaa
mov ecx, esi
imul ecx, dword [esp + 0x64]
mov bl, byte [ecx + eax]
mov byte [esp + 0x13], bl
jmp 0x41bbb0
mov byte [esp + 0x13], dl
mov bl, dl
mov eax, edi
and eax, 0xffff
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
movzx ecx, dl
movzx edx, byte [esp + 0x11]
fmul qword [0x438f90]
fld dword [0x4369fc]
mov dword [esp + 0x54], ecx
fsub st(1)
fild dword [esp + 0x54]
mov dword [esp + 0x54], edx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
movzx ecx, byte [esp + 0x13]
mov byte [esp + 0x10], al
movzx eax, bl
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
mov dword [esp + 0x54], ecx
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
fstp st(0)
movzx edx, byte [esp + 0x10]
fstp st(0)
mov dword [esp + 0x54], edx
movzx eax, al
fild dword [esp + 0x54]
mov dword [esp + 0x54], eax
fmul st(1)
fild dword [esp + 0x54]
fmul st(3)
faddp st(1)
call fcn.0042af90
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
add edi, ebp
mov ebp, dword [esp + 0x28]
add ebp, 4
mov byte [ecx], al
lea eax, [esi*4]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x24]
add ecx, eax
add ebx, eax
add edx, eax
add ebp, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x70]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x44], eax
jl 0x41b7fa
mov ecx, dword [esp + 0x28]
fstp st(0)
mov eax, dword [esp + 0x3c]
fstp st(0)
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x70]
cmp ecx, ebp
jge 0x41be4d
mov ebp, dword [esp + 0x64]
mov ebx, eax
sar ebx, 0x10
mov edx, ebx
imul edx, ebp
dec ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x68]
and eax, 0xffff
dec ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
fild dword [esp + 0x60]
lea ebp, [eax + ecx]
mov eax, dword [esp + 0x18]
imul ebp, esi
fmul qword [0x438f90]
fld dword [0x4369fc]
fsub st(1)
add ebp, eax
add ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x70]
sub eax, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], eax
jmp 0x41bd20
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
lea ebx, [ebx]
mov ecx, edi
sar ecx, 0x10
lea eax, [ecx + edx]
mov edx, dword [esp + 0x18]
imul eax, esi
add eax, edx
add eax, dword [esp + 0x6c]
mov dl, byte [eax]
mov byte [esp + 0x60], dl
cmp ecx, dword [esp + 0x54]
jge 0x41bd71
cmp ebx, dword [esp + 0x44]
mov cl, byte [eax + esi]
jge 0x41bd67
mov edx, dword [esp + 0x64]
mov ebx, esi
imul ebx, edx
mov bl, byte [ebx + eax]
inc edx
imul edx, esi
mov al, byte [edx + eax]
mov dl, byte [esp + 0x60]
mov byte [esp + 0x13], al
jmp 0x41bd93
mov dl, byte [esp + 0x60]
mov byte [esp + 0x13], cl
jmp 0x41bd91
cmp ebx, dword [esp + 0x44]
mov dl, byte [esp + 0x60]
mov cl, dl
jge 0x41bd8d
mov ebx, esi
imul ebx, dword [esp + 0x64]
mov bl, byte [ebx + eax]
mov byte [esp + 0x13], bl
jmp 0x41bd93
mov byte [esp + 0x13], dl
mov bl, dl
mov eax, edi
and eax, 0xffff
mov dword [esp + 0x60], eax
fild dword [esp + 0x60]
movzx edx, dl
mov dword [esp + 0x60], edx
movzx eax, cl
fmul qword [0x438f90]
fld dword [0x4369fc]
fsub st(1)
fild dword [esp + 0x60]
mov dword [esp + 0x60], eax
fmul st(1)
fild dword [esp + 0x60]
fmul st(3)
faddp st(1)
call fcn.0042af90
movzx edx, byte [esp + 0x13]
movzx ecx, bl
mov dword [esp + 0x60], ecx
mov byte [esp + 0x10], al
fild dword [esp + 0x60]
mov dword [esp + 0x60], edx
fmul st(1)
fild dword [esp + 0x60]
fmul st(3)
faddp st(1)
call fcn.0042af90
fstp st(0)
movzx ecx, byte [esp + 0x10]
fstp st(0)
mov dword [esp + 0x60], ecx
movzx edx, al
fild dword [esp + 0x60]
mov dword [esp + 0x60], edx
fmul st(1)
fild dword [esp + 0x60]
fmul st(3)
faddp st(1)
call fcn.0042af90
mov ecx, dword [esp + 0x48]
mov byte [ebp], al
mov eax, dword [esp + 0x40]
add ebp, esi
add edi, ecx
dec eax
mov dword [esp + 0x40], eax
jne 0x41bd12
mov eax, dword [esp + 0x3c]
fstp st(0)
mov ebx, dword [esp + 0x34]
fstp st(0)
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
add ecx, ebp
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
add edi, edx
add ecx, edx
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x50]
add ebx, edx
add eax, edi
dec ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], ecx
jne 0x41b795
mov ebx, dword [esp + 0x18]
inc ebx
cmp ebx, esi
mov dword [esp + 0x18], ebx
jl 0x41b750
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x4c
ret