Function at 0x100763b0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [ecx + 4]
push ebx
push esi
push edi
mov dword [ebp - 0x44], ecx
xor ebx, ebx
mov dword [ebp - 0x30], eax
xor esi, esi
call fcn.10076210
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
test edi, edi
js 0x10076cbe
mov edx, dword [ebp - 0x30]
mov eax, 0x100
cwde
movzx ecx, byte [edi + edx]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edi + edx + 1]
add cx, ax
movzx eax, cx
mov dword [ebp - 0x24], eax
test ax, ax
jle 0x10076816
mov esi, dword [ebp - 0x30]
cwde
add esi, 0xc
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], ebx
lea ebx, [edx + 0xa]
add edx, 0xa
add ebx, edi
lea ecx, [edi + eax*2]
mov dword [ebp - 0x34], ebx
add ecx, edx
lea edx, [eax + eax]
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl eax, 8
add eax, edx
add ecx, eax
mov eax, dword [0x101e0c0c]
add ecx, edi
movzx edi, byte [edx + ebx - 1]
add esi, ecx
movzx ecx, byte [edx + ebx - 2]
shl ecx, 8
inc ecx
add edi, ecx
mov dword [ebp - 0x28], edi
lea ecx, [edx + edi]
test eax, eax
je 0x1007645b
inc dword [eax + 0x36c]
push dword [0x101e0c08]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
call fcn.10062c40
mov ebx, eax
add esp, 8
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x10076cbe
xor dl, dl
mov dword [ebp - 0x3c], 0
test edi, edi
je 0x100767d6
mov ecx, dword [ebp - 0x24]
movsx eax, cx
lea edi, [eax*8]
sub edi, eax
mov eax, dword [ebp - 0x28]
add edi, 3
mov dword [ebp - 0x30], eax
lea edi, [ebx + edi*4]
mov bl, dl
test dl, dl
jne 0x100764cf
mov bl, byte [esi]
mov cl, bl
and cl, 8
je 0x100764c0
mov dl, byte [esi + 1]
xor eax, eax
test cl, cl
setne al
inc eax
add esi, eax
mov eax, dword [ebp - 0x30]
jmp 0x100764d1
dec dl
mov byte [edi], bl
add edi, 0xe
sub eax, 1
mov dword [ebp - 0x30], eax
jne 0x100764b0
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 8]
movsx ecx, ax
lea eax, [ecx*8]
sub eax, ecx
xor edi, edi
lea eax, [ebx + eax*4]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dl, byte [ebx + 0xc]
and dl, 0x10
test byte [ebx + 0xc], 2
je 0x10076520
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add edi, ecx
jmp 0x10076542
test dl, dl
jne 0x10076542
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add edi, eax
add esi, 2
mov word [ebx], di
add ebx, 0xe
sub dword [ebp - 0x30], 1
jne 0x10076501
mov eax, dword [ebp - 0x24]
movsx ecx, ax
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax*4 + 2]
add eax, dword [ebp - 8]
xor edi, edi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dl, byte [ebx + 0xa]
and dl, 0x20
test byte [ebx + 0xa], 4
je 0x10076594
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add edi, ecx
jmp 0x100765b6
test dl, dl
jne 0x100765b6
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add edi, eax
add esi, 2
mov word [ebx], di
add ebx, 0xe
sub dword [ebp - 0x30], 1
jne 0x10076575
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ebx, dword [ebp - 8]
xor edi, edi
movsx ecx, ax
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], edx
lea eax, [ecx*8]
mov dword [ebp - 0x14], edx
sub eax, ecx
lea esi, [ebx + eax*4]
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc], ecx
mov cl, byte [esi + 0xc]
mov byte [ebp - 1], cl
movzx ecx, word [esi]
mov dword [ebp - 0x24], ecx
movzx ecx, word [esi + 2]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0xc]
cmp dword [ebp - 0x3c], ecx
jne 0x100766ce
test ecx, ecx
je 0x10076634
push dword [ebp - 0x10]
mov ecx, ebx
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push edi
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x18]
call fcn.100762e0
add esp, 0x20
mov edx, eax
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp - 0x24]
not eax
mov edi, dword [ebp - 0x1c]
and eax, 1
mov dword [ebp - 0x38], eax
je 0x10076688
test byte [esi + 0x1a], 1
movsx eax, cx
movsx ecx, di
movsx edi, word [esi + 0x10]
mov dword [ebp - 0x2c], ecx
lea ecx, [esi + 0xe]
mov dword [ebp - 0x40], ecx
movsx ecx, word [ecx]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], ecx
jne 0x10076680
add ecx, eax
sar ecx, 1
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x1c]
movsx eax, cx
mov ecx, dword [ebp - 0x20]
add edi, eax
sar edi, 1
jmp 0x10076691
inc dword [ebp - 0xc]
mov esi, dword [ebp - 0x40]
jmp 0x10076691
movsx ecx, cx
mov dword [ebp - 0x20], ecx
movsx edi, di
lea eax, [edx*8]
sub eax, edx
inc edx
mov word [ebx + eax*2], cx
xor ecx, ecx
mov dword [ebx + eax*2 + 4], ecx
mov byte [ebx + eax*2 + 0xc], 1
mov word [ebx + eax*2 + 2], di
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x18], ecx
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
inc ecx
shl eax, 8
add eax, ecx
add dword [ebp - 0x34], 2
mov dword [ebp - 0x3c], eax
jmp 0x100767be
test byte [ebp - 1], 1
jne 0x1007673f
cmp dword [ebp - 0x18], 0
je 0x10076724
lea ecx, [edx*8]
sub ecx, edx
inc edx
mov dword [ebp - 0x18], ecx
mov byte [ebx + ecx*2 + 0xc], 3
mov ecx, dword [ebp - 0x24]
mov ebx, dword [ebp - 8]
movsx eax, cx
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
sar eax, 1
mov word [ebx + ecx*2], ax
mov ecx, dword [ebp - 0x1c]
movsx eax, cx
mov ecx, dword [ebp - 0x18]
add eax, dword [ebp - 0x10]
sar eax, 1
mov word [ebx + ecx*2 + 2], ax
mov eax, dword [ebp - 0x14]
mov word [ebx + ecx*2 + 4], ax
mov eax, dword [ebp - 0x10]
mov word [ebx + ecx*2 + 6], ax
mov ecx, dword [ebp - 0x24]
movsx eax, cx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
movsx eax, cx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 1
jmp 0x100767be
lea eax, [edx*8]
sub eax, edx
inc edx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
movzx eax, ax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x1c]
movzx ecx, ax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x48], ecx
test eax, eax
je 0x10076779
mov ecx, dword [ebp - 0x10]
movzx ecx, cx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x14]
movzx ecx, cx
mov dword [ebp - 0x24], ecx
jmp 0x10076787
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0x40]
test eax, eax
mov dword [ebp - 0x18], 0
setne al
add al, 2
mov byte [ebx + ecx*2 + 0xc], al
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x44]
mov word [ebx + eax*2], cx
mov ecx, dword [ebp - 0x48]
mov word [ebx + eax*2 + 2], cx
mov ecx, dword [ebp - 0x24]
mov word [ebx + eax*2 + 4], cx
mov ecx, dword [ebp - 0x1c]
mov word [ebx + eax*2 + 6], cx
mov ecx, dword [ebp - 0xc]
add esi, 0xe
mov eax, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebp - 0x28]
jl 0x100765f1
jmp 0x100767e8
xor edx, edx
xor edi, edi
mov dword [ebp - 0x2c], edx
xor eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
push dword [ebp - 0x10]
mov ecx, ebx
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push edi
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x18]
call fcn.100762e0
add esp, 0x20
mov esi, eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ax, 0xffff
jne 0x10076cc7
add edi, 0xa
xor esi, esi
add edi, edx
mov dword [ebp - 0x34], esi
xor ebx, ebx
mov dword [ebp - 8], ebx
mov al, byte [edi + 2]
movzx edx, byte [edi + 1]
movaps xmm0, xmmword [0x101630d0]
movss xmm5, dword [0x10162600]
mov byte [ebp - 1], al
mov al, byte [edi + 3]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], edx
mov byte [ebp - 2], al
movups xmmword [ebp - 0x60], xmm0
test dl, 2
je 0x10076cd0
mov al, byte [edi + 4]
lea ecx, [edi + 5]
mov dword [ebp - 0x48], ecx
test dl, 1
je 0x100768ba
mov dl, byte [edi + 6]
lea esi, [edi + 7]
movzx ecx, al
add edi, 8
movsx ecx, cx
mov eax, 0x100
cwde
imul ecx, eax
mov eax, dword [ebp - 0x48]
movzx eax, byte [eax]
add cx, ax
movsx eax, cx
mov dword [ebp - 0x38], eax
mov eax, 0x100
movzx ecx, dl
mov edx, dword [ebp - 0x10]
movsx ecx, cx
cwde
imul ecx, eax
movzx eax, byte [esi]
mov esi, dword [ebp - 0x34]
add cx, ax
movsx ecx, cx
jmp 0x100768c8
mov edi, ecx
movsx eax, al
mov dword [ebp - 0x38], eax
mov cl, byte [edi]
inc edi
movsx ecx, cl
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x24], edi
test dl, 8
je 0x1007690b
movzx ecx, byte [edi]
mov eax, 0x100
cwde
xorps xmm4, xmm4
movsx ecx, cx
xorps xmm1, xmm1
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
add edi, 2
movsx eax, cx
mov dword [ebp - 0x24], edi
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm5
movaps xmm3, xmm2
jmp 0x10076a1e
test dl, 0x40
je 0x10076969
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
xorps xmm4, xmm4
movsx eax, dx
xorps xmm1, xmm1
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm3, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm3, xmm3
add cx, ax
add edi, 4
movsx eax, cx
mov dword [ebp - 0x24], edi
mulss xmm3, xmm5
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm5
jmp 0x10076a1e
test dl, dl
jns 0x10076a0a
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm3, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm3, xmm3
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 4]
movsx ecx, cx
mulss xmm3, xmm5
movd xmm1, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm1, xmm1
add cx, ax
movsx eax, cx
movss dword [ebp - 0x2c], xmm3
movzx ecx, byte [edi + 6]
movsx ecx, cx
movd xmm4, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 7]
cvtdq2ps xmm4, xmm4
add cx, ax
add edi, 8
movsx eax, cx
mulss xmm1, xmm5
mov dword [ebp - 0x24], edi
mulss xmm4, xmm5
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm2, xmm5
jmp 0x10076a23
movss xmm2, dword [ebp - 0x54]
movss xmm4, dword [ebp - 0x58]
movss xmm1, dword [ebp - 0x5c]
movss xmm3, dword [ebp - 0x60]
movss dword [ebp - 0x2c], xmm3
movaps xmm0, xmm1
movss dword [ebp - 0x1c], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
movss dword [ebp - 0x28], xmm4
movss dword [ebp - 0x30], xmm2
addss xmm0, xmm1
call fcn.10004d50
movss dword [ebp - 0x3c], xmm0
movaps xmm1, xmm4
movaps xmm0, xmm2
mulss xmm1, xmm4
mulss xmm0, xmm2
addss xmm0, xmm1
call fcn.10004d50
movzx edx, byte [ebp - 1]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x44]
push eax
movzx eax, byte [ebp - 2]
shl edx, 8
add edx, eax
movss dword [ebp - 0x18], xmm0
call fcn.10078460
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
jle 0x10076c68
movss xmm4, dword [ebp - 0x30]
xor edx, edx
movss xmm5, dword [ebp - 0x2c]
mov edi, eax
movss xmm6, dword [ebp - 0x28]
movss xmm7, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x40]
nop
mov ecx, dword [ebp - 0x20]
xorps xmm3, xmm3
xorps xmm2, xmm2
movsx eax, word [ecx + edx + 2]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx]
cvtsi2ss xmm2, eax
movaps xmm0, xmm3
mulss xmm3, xmm4
movaps xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
addss xmm2, xmm3
xorps xmm3, xmm3
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
mulss xmm1, dword [ebp - 0x3c]
addss xmm2, xmm0
cvttss2si eax, xmm1
mulss xmm2, dword [ebp - 0x18]
mov word [ecx + edx], ax
cvttss2si eax, xmm2
xorps xmm2, xmm2
mov word [ecx + edx + 2], ax
movsx eax, word [ecx + edx + 6]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx + 4]
cvtsi2ss xmm2, eax
movaps xmm0, xmm3
mulss xmm3, xmm4
movaps xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
addss xmm2, xmm3
addss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ebx
mulss xmm1, dword [ebp - 0x3c]
addss xmm2, xmm0
cvttss2si eax, xmm1
mulss xmm2, dword [ebp - 0x18]
mov word [ecx + edx + 4], ax
cvttss2si eax, xmm2
mov word [ecx + edx + 6], ax
add edx, 0xe
sub edi, 1
jne 0x10076ab0
mov eax, dword [0x101e0c0c]
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0x34]
test eax, eax
je 0x10076ba5
inc dword [eax + 0x36c]
mov ecx, dword [ebp - 0x14]
push dword [0x101e0c08]
add ecx, esi
mov dword [ebp - 0x40], ecx
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
call fcn.10062c40
add esp, 8
mov dword [ebp - 0x48], eax
test eax, eax
je 0x10076c77
test esi, esi
jle 0x10076bec
lea ecx, [esi*8]
sub ecx, esi
add ecx, ecx
push ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp - 0x14]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
push dword [ebp - 0x20]
lea eax, [esi*8]
sub eax, esi
mov esi, dword [ebp - 0x48]
lea eax, [esi + eax*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
test ebx, ebx
je 0x10076c38
mov eax, dword [0x101e0c0c]
test eax, eax
je 0x10076c29
dec dword [eax + 0x36c]
push dword [0x101e0c08]
push ebx
call fcn.10062c60
add esp, 8
mov ecx, dword [ebp - 0x20]
mov ebx, esi
mov dword [ebp - 8], ebx
test ecx, ecx
je 0x10076c53
mov eax, dword [0x101e0c0c]
test eax, eax
je 0x10076c53
dec dword [eax + 0x36c]
push dword [0x101e0c08]
push ecx
call fcn.10062c60
mov esi, dword [ebp - 0x40]
add esp, 8
mov dword [ebp - 0x34], esi
test byte [ebp - 0x10], 0x20
je 0x10076808
jmp 0x1007682f
test ebx, ebx
je 0x10076c99
mov eax, dword [0x101e0c0c]
test eax, eax
je 0x10076c8a
dec dword [eax + 0x36c]
push dword [0x101e0c08]
push ebx
call fcn.10062c60
add esp, 8
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x10076cbe
mov eax, dword [0x101e0c0c]
test eax, eax
je 0x10076caf
dec dword [eax + 0x36c]
push dword [0x101e0c08]
push ecx
call fcn.10062c60
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
test ax, ax
jns 0x10076808
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3