Function at 0x7b4780
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
push esi
mov esi, dword [ebp + 8]
push 0x400
push 0x20
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b47bb
push esi
call fcn.00707340
add esp, 4
test al, al
jne 0x7b76b5
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.0063dd40
add esp, 4
cmp al, 0xff
je 0x7b47e6
xor eax, eax
mov al, byte [esi]
push eax
call fcn.0063dd40
movzx eax, al
cdq
mov ecx, 0x17
add esp, 4
idiv ecx
jmp 0x7b47eb
mov edx, 1
imul edx, edx, 0x4c0
push ebx
add edx, 0xd92230
push edi
mov edi, edx
mov dword [ebp - 0x10], edi
fld dword [edi + 0x2cc]
call fcn.0043bd30
fld dword [edi + 0x2c4]
push eax
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ebx, eax
mov al, byte [esi + 0xd9]
xor edx, edx
test al, al
sete dl
mov dword [ebp - 8], ebx
push 0
lea edx, [edx + edx - 1]
mov dword [ebp - 0x18], edx
fild dword [ebp - 0x18]
fmul dword [0x8cb938]
call fcn.0043bd30
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov ecx, dword [edi + 0x2c4]
mov edx, dword [esi + 0x2cc]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x2cc]
push eax
mov eax, dword [esi + 0x2c4]
push ecx
push edx
push eax
call fcn.006442f0
add esp, 0x30
mov ecx, eax
mov eax, dword [esi + 0x298]
cmp eax, 6
mov dword [ebp - 0x14], ecx
ja case.0x7b48b5.1
jmp dword [eax*4 + 0x7b76bc]
xor ecx, ecx
mov cx, word [esi + 0x1d4]
push 0x400000
push 0x20
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b49aa
push 0x600
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b490c
xor edx, edx
mov dx, word [esi + 0x1d4]
push 0
push edx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0xe0], 0x1400
jl 0x7b493a
xor eax, eax
mov ax, word [esi + 0x1d4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jbe 0x7b49aa
xor edx, edx
mov dx, word [esi + 0x1d4]
push 0x240000
push 0x30
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b49aa
xor eax, eax
mov ax, word [esi + 0x1d4]
push 0x90000
push 0x50
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b49aa
xor ecx, ecx
mov cx, word [esi + 0xea]
xor edx, edx
mov dx, word [esi + 0x1d4]
push 0
push 0x2000
push ecx
push edx
call fcn.00643cb0
add esp, 0xc
push eax
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91cfa4]
mov cl, byte [eax + 0x19]
test cl, cl
jne 0x7b49df
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x60]
xor eax, eax
mov ax, word [esi + 0x1d4]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jbe 0x7b4a7d
xor ecx, ecx
mov cx, word [esi + 0x1d4]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb case.default.0x7b764e
xor eax, eax
mov ax, word [esi + 0x1d4]
push 0x100000
push 0x20
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b4a7d
xor ecx, ecx
mov cx, word [esi + 0x1d4]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
push 0
jb 0x7b4b32
xor eax, eax
mov ax, word [esi + 0xea]
xor ecx, ecx
mov cx, word [esi + 0x1d4]
push 0x4000
push eax
push ecx
call fcn.00643cb0
add esp, 0xc
push eax
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dx, word [esi + 0x1d4]
push 0x240000
push 0x30
push edx
push esi
call fcn.006a2b10
xor ecx, ecx
mov cx, word [esi + 0x1d4]
add esp, 0x10
test al, al
jne 0x7b4ba8
xor eax, eax
mov ax, word [esi + 0xea]
push 0x2800
push eax
push ecx
call fcn.00643cb0
mov edx, dword [0x91cfa4]
add esp, 0xc
mov edi, eax
mov al, byte [edx + 0x19]
test al, al
jne 0x7b4b42
xor eax, eax
mov ax, word [esi + 0x1d4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae 0x7b6dfe
push 0x190000
push 0x18
push edi
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b6dfe
xor edi, edi
mov di, word [esi + 0xea]
push 0x190000
push 0x20
push edi
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b6dfe
push 0
push esi
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dx, word [esi + 0x1d4]
xor eax, eax
mov ax, word [esi + 0xea]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae 0x7b6dfe
push 0x190000
push 0x18
push edi
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b4b96
push 0x100000
push 0x30
push edi
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b6dfe
push 0
push esi
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push 0
push ecx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1b0]
test eax, eax
mov dword [esi + 0x2a8], 0
jne 0x7b4bec
push esi
call fcn.00706ab0
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91db50]
add esp, 4
mov byte [edx + eax + 0xe8], 1
push 2
push esi
mov dword [esi + 0x298], 1
call fcn.006a3580
mov ecx, dword [0x91db50]
add esp, 8
mov byte [ecx + 0x10e], 0
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b4c1f
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8cb958]
fnstsw ax
test ah, 0x41
je 0x7b5186
mov eax, dword [esi + 0x2a8]
test eax, eax
jne 0x7b4c96
push 0x600
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b4c96
cmp ebx, 0x640000
jbe 0x7b4c96
mov eax, dword [esi + 0x1b0]
test eax, eax
jne 0x7b4c82
push esi
call fcn.00706ab0
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91db50]
add esp, 4
mov byte [eax + ecx + 0xe8], 1
mov dword [esi + 0x298], 6
mov dword [esi + 0x2a8], 0x20
push esi
call fcn.00704df0
add esp, 4
xor edi, edi
test al, al
je 0x7b4d32
mov di, word [esi + 0xf0]
jmp 0x7b4d39
mov eax, dword [esi + 0x2a8]
test eax, eax
jne 0x7b4c96
push 0x600
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b4c96
cmp ebx, 0x640000
jbe 0x7b4c96
mov eax, dword [esi + 0x1b0]
test eax, eax
jne 0x7b4d00
push esi
call fcn.00706ab0
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91db50]
add esp, 4
mov byte [edx + eax + 0xe8], 1
mov dword [esi + 0x298], 1
jmp 0x7b4c8c
mov edx, dword [ebp - 0xc]
push edx
push ebx
mov eax, ecx
call fcn.007b3fd0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push ebx
call fcn.007b44d0
add esp, 4
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov di, word [esi + 0xea]
cmp byte [esi + 0xda], 2
mov dword [ebp - 4], edi
je 0x7b4dfd
mov ecx, dword [0xeebb14]
mov dl, byte [esi + 0xd9]
movzx ebx, byte [ecx + 0x87158c]
mov ecx, dword [0x91db50]
movzx eax, dl
cmp dword [ecx + eax*4 + 0xac], ebx
jae 0x7b4e03
mov bl, byte [eax + ecx + 0xe8]
test bl, bl
je 0x7b4e03
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2ddc]
fnstsw ax
test ah, 5
jp 0x7b4e03
xor eax, eax
test dl, dl
sete al
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cdf9c]
fnstsw ax
test ah, 0x41
jne 0x7b4e03
movzx edx, byte [esi + 0xd8]
movzx eax, byte [edx + ecx + 0xcf]
add eax, 4
shl eax, 7
push eax
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b4dfd
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe case.default.0x7b764e
mov ecx, dword [0x91db50]
movzx eax, byte [esi + 0xd9]
mov dl, byte [eax + ecx + 0xbe]
test dl, dl
je 0x7b4e26
push esi
call fcn.007acdc0
add esp, 4
test al, al
jne 0x7b76b3
mov dl, byte [esi + 0xd9]
mov eax, dword [esi + 0x2c4]
xor ecx, ecx
test dl, dl
mov edx, dword [esi + 0x2cc]
sete cl
push 0
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
push ecx
fmul dword [0x8cb938]
fstp dword [esp]
push edx
push eax
call fcn.006442f0
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
mov dword [ebp - 0x18], eax
push edx
push edi
call fcn.006442a0
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
movzx eax, ax
mov ebx, 0x80
sub ebx, eax
push edx
push edi
call fcn.006442a0
movzx eax, ax
mov ecx, 0x80
sub ecx, eax
mov eax, dword [ebp - 0xc]
imul ebx, ecx
shl ebx, 0xa
add esp, 0x20
cmp eax, ebx
jae 0x7b4ffc
xor edx, edx
mov dl, byte [esi]
xor ebx, ebx
push edx
call fcn.006ace10
movzx eax, al
add esp, 4
sub eax, 2
je 0x7b4eda
dec eax
je 0x7b4ed3
sub eax, 2
jne 0x7b4edf
mov ebx, 8
jmp 0x7b4edf
mov ebx, 4
jmp 0x7b4edf
mov ebx, 2
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
push eax
mov edi, 0x18
sub edi, ebx
push edi
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.default.0x7b764e
fld dword [esi + 0x2cc]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 5
jp 0x7b4f18
or ebx, 0xffffffff
jmp 0x7b4f1d
mov ebx, 1
push esi
call fcn.006f93b0
movzx edx, ax
imul edx, ebx
mov dword [ebp - 0x18], edx
mov dl, byte [esi + 0xd9]
xor eax, eax
fild dword [ebp - 0x18]
test dl, dl
mov edx, dword [esi + 0x2c4]
sete al
fstp dword [esp]
push ecx
mov ecx, dword [esi + 0x2cc]
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fmul dword [0x8cb938]
fstp dword [esp]
push ecx
push edx
call fcn.006442f0
mov ecx, dword [ebp - 0xc]
push ecx
push edi
push eax
push esi
call fcn.006a2b10
add esp, 0x20
test al, al
jne case.default.0x7b764e
fld dword [esi + 0x2cc]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 5
jp 0x7b4f95
or ebx, 0xffffffff
jmp 0x7b4f9a
mov ebx, 1
push esi
call fcn.006f93b0
mov cl, byte [esi + 0xd9]
movzx edx, ax
imul edx, ebx
neg edx
xor eax, eax
test cl, cl
sete al
mov dword [ebp - 0x18], edx
mov edx, dword [esi + 0x2c4]
fild dword [ebp - 0x18]
fstp dword [esp]
push ecx
mov ecx, dword [esi + 0x2cc]
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fmul dword [0x8cb938]
fstp dword [esp]
push ecx
push edx
call fcn.006442f0
mov ecx, dword [ebp - 0xc]
push ecx
push edi
push eax
push esi
call fcn.006a2b10
add esp, 0x20
test al, al
jne case.default.0x7b764e
xor edx, edx
mov dl, byte [esi]
push edx
call fcn.006ace10
movzx eax, al
add esp, 4
sub eax, 4
je 0x7b5125
dec eax
jne 0x7b5198
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b502d
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d3eb8]
fnstsw ax
test ah, 0x41
jne 0x7b5082
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
push 0x240000
push 0x20
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b5082
push esi
call fcn.00708940
add esp, 4
test al, al
jne 0x7b76b3
push esi
call fcn.00706fb0
add esp, 4
test al, al
jne 0x7b76b3
mov eax, dword [0x91d3f0]
xor edx, edx
mov dx, word [esi + 0xee]
xor ecx, ecx
mov cx, word [eax + 0x64]
push edx
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x28
jbe 0x7b5198
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push 0x3800
push 2
push eax
push esi
call fcn.0076cd30
add esp, 0x10
cmp al, 0xff
mov byte [ebp - 0x18], al
je 0x7b5198
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
imul edx, edx, 0x4c0
fld dword [edx + 0xd924fc]
call fcn.0043bd30
test eax, eax
jg 0x7b50f4
neg eax
fld dword [esi + 0x2cc]
mov edi, eax
call fcn.0043bd30
test eax, eax
jg 0x7b5107
neg eax
cmp edi, eax
jge 0x7b5198
mov edx, dword [ebp - 0x18]
push 1
push edx
push esi
call fcn.0079c4d0
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push esi
call fcn.00708940
add esp, 4
test al, al
jne 0x7b76b3
push esi
call fcn.00706fb0
add esp, 4
test al, al
jne 0x7b76b3
mov eax, dword [0x91d3f0]
mov edi, dword [ebp - 4]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ecx
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jbe 0x7b519b
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push 0x100000
push 0x30
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b519b
push 0
push esi
call fcn.0079bea0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov al, byte [esi + 0xda]
mov bl, 0xb
cmp al, bl
jne 0x7b5284
mov ecx, dword [0x91d3f0]
mov ax, word [ecx + 0x76]
cmp ax, 0x10
jbe 0x7b528a
cmp ax, 0x20
jae 0x7b528a
cmp dword [esi + 0x1d8], 0x2400000
jae 0x7b528a
xor ecx, ecx
mov cx, word [esi + 0xee]
xor edx, edx
mov dx, word [esi + 0x1d4]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jae 0x7b5284
mov cl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
mov ecx, dword [0x91d3f0]
sete al
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fld st(0)
fmul dword [esi + 0x2c4]
fxch st(1)
fmul dword [ecx + 0x10]
fcompp
fnstsw ax
test ah, 0x41
jne 0x7b528a
xor ecx, ecx
mov cx, word [esi + 0x1d4]
push 0x240000
push 8
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b5284
xor edx, edx
mov dx, word [esi + 0x1d4]
push 0x100000
push 0x20
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b5284
push 0x200
push esi
call fcn.006acfb0
add esp, 8
test al, al
je case.default.0x7b764e
mov ecx, dword [0x91d3f0]
cmp dword [esi + 0x298], 6
je 0x7b64a0
mov eax, dword [0x925118]
movzx eax, byte [eax]
sub eax, 0
je 0x7b618c
dec eax
jne 0x7b64a0
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
jne 0x7b52eb
cmp dword [esi + 0x1d8], 0x1440000
jae 0x7b52eb
xor eax, eax
mov ax, word [esi + 0x1d4]
push eax
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jb case.default.0x7b764e
mov ecx, dword [0x91d3f0]
mov edi, dword [ebp - 8]
cmp edi, 0x400000
jbe 0x7b53e2
movzx ecx, word [ecx + 0x64]
push 0x240000
push 0x30
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b53e2
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91cfa4]
xor edx, 1
mov al, byte [eax + edx*2 + 0x1c]
cmp al, 0xff
je 0x7b533b
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x7b5340
mov edx, 1
cmp edi, 0xc40000
jbe 0x7b5365
imul edx, edx, 0x4c0
add edx, 0xd92230
push edx
call fcn.00645250
add esp, 4
test al, al
jne 0x7b64a0
push 0x300
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b53e2
cmp byte [esi + 0xda], bl
je 0x7b64a0
movzx eax, byte [esi + 0xd8]
mov edx, dword [0xeebb14]
movzx ecx, byte [esi + 0xd7]
mov bl, byte [edx + 0x87158c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb6630]
shr eax, 0x12
and eax, 0x7f
push 0x1e
push eax
call fcn.00614f40
movzx ecx, bl
lea edx, [ecx + eax*2]
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91db50]
mov ebx, dword [ecx + eax*4 + 0xac]
add esp, 8
cmp ebx, edx
jb 0x7b64a0
mov edx, dword [0xeebb14]
movzx ecx, byte [edx + 0x87158c]
mov edx, dword [0x91cfa8]
mov eax, dword [edx + 0x68]
xor edx, edx
div ecx
shl edx, 2
test edx, edx
jne 0x7b5430
mov eax, dword [0x91db50]
movzx ecx, byte [eax + 0xce]
add ecx, 4
shl ecx, 8
push ecx
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b5430
mov edx, dword [0x91db50]
mov byte [edx + 0x10e], 0
cmp edi, 0x1000000
jbe 0x7b5444
mov eax, dword [0x91db50]
mov byte [eax + 0x10e], 0
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6628]
shr ecx, 0x19
push 0x28
push ecx
call fcn.00614f40
add esp, 8
cmp eax, 0x3c
jl 0x7b5531
mov edx, dword [0x91db50]
movzx eax, byte [edx + 0xce]
lea eax, [eax + eax*2]
push eax
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b5531
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
movzx edi, byte [esi + 0xd8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov edx, dword [0x91db50]
movzx ecx, byte [edi + edx + 0xcf]
shl ecx, 7
sub ecx, eax
lea edx, [ecx + ecx + 0x180]
movzx ecx, byte [esi + 0xd7]
mov ebx, edx
lea eax, [edi + edi*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb6628]
shr eax, 0x19
push 0x28
push eax
call fcn.00614f40
sub ebx, eax
shl ebx, 2
push ebx
push esi
call fcn.006acfb0
add esp, 0x18
test al, al
jne 0x7b5531
mov ecx, dword [0x91db50]
mov byte [ecx + 0x10e], 1
mov ecx, dword [0x91db50]
cmp byte [ecx + 0xce], 4
jb 0x7b5582
movzx eax, byte [esi + 0xd8]
mov edx, eax
xor edx, 1
mov edi, eax
imul edx, edx, 0x2970
mov ebx, dword [edx + 0xed5a7c]
imul edi, edi, 0x2970
mov edi, dword [edi + 0xed5a7c]
cmp edi, ebx
jl 0x7b5575
mov dl, byte [eax + ecx + 0xcf]
test dl, dl
je 0x7b5582
mov byte [ecx + 0x10e], 0
mov ecx, dword [0x91db50]
mov al, byte [ecx + 0x10e]
test al, al
jne 0x7b5c08
mov ebx, dword [ebp - 4]
xor eax, eax
mov ax, word [esi + 0xee]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
ja 0x7b5625
cmp byte [esi + 0xda], 2
je 0x7b5625
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d3d3c]
fnstsw ax
test ah, 5
jp 0x7b5625
mov al, byte [esi + 0xd9]
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cdfd8]
fnstsw ax
test ah, 0x41
jne 0x7b5625
xor edx, edx
mov dx, word [esi + 0xee]
push 0x190000
push 0x20
push 0x800
push edx
push ebx
call fcn.00643cb0
add esp, 0xc
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je case.default.0x7b764e
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d3ec8]
fnstsw ax
test ah, 5
jp 0x7b58d3
mov cl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
mov ecx, dword [0x91db50]
movzx edx, byte [ecx + 0xce]
sete al
shl edx, 8
lea eax, [eax + eax - 1]
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
mov dword [ebp - 0x18], edx
fmul dword [esi + 0x2c4]
fild dword [ebp - 0x18]
fsubr dword [0x8d35bc]
fcompp
fnstsw ax
test ah, 5
jp 0x7b58d3
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ebx
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x7b58d3
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b56b4
neg eax
mov dword [ebp - 0x18], eax
movzx eax, byte [esi + 0xd8]
fild dword [ebp - 0x18]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
fstp dword [ebp - 0x1c]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
shl eax, 2
mov dword [ebp - 0x18], eax
add esp, 8
fild dword [ebp - 0x18]
fsubr dword [0x8d377c]
fcomp dword [ebp - 0x1c]
fnstsw ax
test ah, 5
jp 0x7b58d3
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b571c
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8cb640]
fnstsw ax
test ah, 5
jp 0x7b58d3
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 5
sub eax, edx
push eax
call fcn.0063c860
add esp, 0xc
test eax, eax
je 0x7b57a9
mov ecx, dword [0x91db50]
cmp byte [ecx + 0xce], 4
jb 0x7b580e
push 0x400
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b580e
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
push 0x100000
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
cdq
and edx, 7
add eax, edx
mov edx, dword [0x91d3f0]
sar eax, 3
mov ecx, 0x20
sub ecx, eax
xor eax, eax
mov ax, word [edx + 0x64]
add esp, 8
push ecx
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.default.0x7b764e
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
push 0x100000
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
cdq
and edx, 7
add eax, edx
sar eax, 3
mov edx, 0x20
sub edx, eax
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
add esp, 8
push edx
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b58d3
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
push 0x100000
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
cdq
and edx, 7
add eax, edx
mov edx, dword [0x91d3f0]
sar eax, 3
mov ecx, 0x1f
sub ecx, eax
xor eax, eax
mov ax, word [edx + 0x64]
add esp, 8
push ecx
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.default.0x7b764e
mov ecx, dword [0x91db50]
cmp byte [ecx + 0xce], 3
jae 0x7b58f4
push 0x100
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b5905
mov edi, dword [ebp - 8]
cmp edi, 0x640000
jae 0x7b5996
jmp 0x7b5908
mov edi, dword [ebp - 8]
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0xc
sub ecx, edx
shl ecx, 1
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
je case.default.0x7b764e
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
jne 0x7b5996
xor eax, eax
mov ax, word [esi + 0x1d4]
xor ecx, ecx
mov cx, word [esi + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x50
jb case.default.0x7b764e
push 0x400
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b59b4
cmp edi, 0x190000
jae 0x7b5b80
mov edx, dword [0x91cfa4]
mov al, byte [edx + 0x19]
test al, al
je 0x7b5ad2
xor eax, eax
mov al, byte [esi]
push eax
call fcn.006ace10
add esp, 4
cmp al, 5
jne 0x7b5ad2
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b59eb
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2d40]
fnstsw ax
test ah, 5
jp 0x7b5ad2
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x28
ja 0x7b5ad2
movzx eax, byte [esi + 0xd8]
mov ecx, dword [0x91db50]
movzx eax, byte [eax + ecx + 0xcf]
lea edx, [eax + eax*2]
shl edx, 7
add edx, 0x280
push edx
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b5a5a
cmp dword [ebp - 0xc], 0x1000000
jae 0x7b5ad2
cmp byte [esi + 0xd6], 0x1a
ja 0x7b5ad2
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
push 0x100000
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [0x91d3f0]
mov eax, 0x20
sub eax, edx
xor edx, edx
mov dx, word [ecx + 0x64]
add esp, 8
push eax
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.default.0x7b764e
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
call fcn.0063c940
add esp, 0xc
test al, al
jne 0x7b5b3e
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push 0x100000
push 0x18
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b5b80
cmp dword [ebp - 0xc], 0x1000000
jae 0x7b5b80
xor ecx, ecx
mov cx, word [esi + 0xee]
push ebx
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x7b5b80
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jb case.default.0x7b764e
xor ecx, ecx
mov cx, word [esi + 0x1d4]
xor edx, edx
mov dx, word [esi + 0xea]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jae case.default.0x7b5f93
lea ecx, [edi + edi]
mov eax, 0xaaaaaaab
mul ecx
mov edi, edx
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
shr edi, 1
push edi
push 0x10
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je case.default.0x7b5f93
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push edi
push 0x1c
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.default.0x7b5f93
push 0
push esi
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x2cc]
mov ecx, dword [ebx + 0x2c4]
mov edx, dword [esi + 0x2cc]
push eax
mov eax, dword [esi + 0x2c4]
push ecx
push edx
push eax
call fcn.006442f0
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push eax
push edx
call fcn.006442a0
add esp, 0x18
cmp ax, 0x20
jbe 0x7b5c6a
mov eax, dword [0x91d3f0]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jb case.default.0x7b764e
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2ddc]
fnstsw ax
test ah, 5
jp 0x7b6049
mov cl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
sete al
lea eax, [eax + eax - 1]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cdf9c]
fnstsw ax
test ah, 0x41
jne 0x7b6049
mov ecx, dword [0x91d3f0]
mov eax, dword [ebp - 4]
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae case.default.0x7b5f93
mov edi, dword [ebp - 8]
cmp edi, 0x310000
jbe 0x7b5ddd
cmp edi, 0x790000
jae 0x7b5d4d
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0xc
sub ecx, edx
shl ecx, 3
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b5d4d
push eax
push esi
call fcn.0079c6c0
add esp, 8
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb663c]
push 0x100000
shr edx, 0xe
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x40]
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
add esp, 8
push ecx
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b5dbe
push 0
push esi
call fcn.0079c6c0
add esp, 8
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push 0
push edx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 0xc
sub eax, edx
shl eax, 2
push eax
call fcn.0063c860
add esp, 0xc
test eax, eax
je case.default.0x7b764e
cmp edi, 0x100000
jb case.default.0x7b764e
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ecx, 0xc
sub ecx, edx
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b5ee6
fld dword [ebx + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b5eab
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2dbc]
fnstsw ax
test ah, 0x41
jne 0x7b5ee6
fld dword [ebx + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b5ecf
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2fbc]
fnstsw ax
test ah, 5
jnp case.default.0x7b764e
mov edx, dword [ebx + 0xe0]
xor eax, eax
cmp edx, 0x400
mov edx, dword [0x91db50]
mov dl, byte [edx + 0xce]
setge al
dec eax
and eax, 0xfffffe80
add eax, 0x580
cmp dl, 4
jne 0x7b5f18
mov eax, 0x640
lea ecx, [eax + 0x200]
mov ebx, ecx
imul ebx, ecx
cmp edi, ebx
jae case.default.0x7b5f93
mov ecx, eax
imul ecx, eax
cmp edi, ecx
jbe case.default.0x7b5f93
cmp dl, 2
jb case.default.0x7b5f93
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6638]
shr edx, 0x12
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add esp, 8
cmp edx, 5
ja case.default.0x7b5f93
jmp dword [edx*4 + 0x7b76d8]
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne case.default.0x7b5f93
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne case.default.0x7b5f93
cmp edi, 0x190000
jb 0x7b6002
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cx, word [esi + 0xee]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
jae 0x7b5ff0
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b6002
push 3
push esi
call fcn.007046b0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push 2
call fcn.0063c860
add esp, 4
test eax, eax
je 0x7b6034
push 0x400
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne 0x7b6034
push 6
push esi
call fcn.007046b0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push 5
push esi
call fcn.007046b0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2ddc]
fnstsw ax
test ah, 5
jp 0x7b60b3
mov cl, byte [esi + 0xd9]
xor eax, eax
test cl, cl
sete al
lea eax, [eax + eax - 1]
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fld st(0)
fmul dword [esi + 0x2c4]
fcom dword [0x8cb954]
fnstsw ax
test ah, 0x41
jne 0x7b60af
fxch st(1)
fmul dword [ebx + 0x2c4]
fcomp st(1)
fnstsw ax
fstp st(0)
test ah, 5
jp 0x7b60b3
push 0
push esi
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
fstp st(0)
fstp st(0)
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b60c4
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d3dc4]
fnstsw ax
test ah, 5
jp 0x7b64a0
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cx, word [esi + 0xee]
push ecx
push edx
call fcn.006442a0
add esp, 8
neg ax
sbb eax, eax
inc eax
cmp eax, 0x1e
jge 0x7b64a0
cmp dword [ebp - 8], 0x900000
jbe 0x7b64a0
xor eax, eax
mov ax, word [esi + 0xee]
push 0x900000
push 0x20
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b64a0
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
add esp, 8
cmp eax, 0x46
jl 0x7b64a0
cmp byte [esi + 0xda], 3
jne 0x7b64a0
mov edx, dword [ebp - 4]
push 1
push edx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0xeebb14]
movzx eax, byte [eax + 0x87158c]
movzx edx, byte [esi + 0xd9]
mov ebx, dword [0x91db50]
lea eax, [eax + eax*4]
cmp dword [ebx + edx*4 + 0xac], eax
jbe 0x7b61db
movzx ecx, word [ecx + 0x64]
push ecx
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x30
push 0
push esi
jae 0x7b5189
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jae 0x7b62a5
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 0xf
sub eax, edx
push eax
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b62a5
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp - 8]
lea ecx, [edx + edx*8]
shl ecx, 0xc
add ecx, 0x310000
add esp, 8
cmp eax, ecx
jb case.default.0x7b764e
mov edx, dword [0x91db50]
cmp byte [edx + 0xce], 2
jb 0x7b648e
xor eax, eax
mov ax, word [esi + 0xee]
push eax
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae 0x7b648e
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2d4c]
fnstsw ax
test ah, 5
jp 0x7b648e
mov dl, byte [esi + 0xd9]
movzx eax, byte [esi + 0xd8]
xor ecx, ecx
test dl, dl
sete cl
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
push 0x28
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
fmul dword [esi + 0x2c4]
fstp dword [ebp - 0x18]
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push edx
call fcn.00614f40
mov ecx, eax
shl ecx, 6
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x1c], edx
add esp, 8
fild dword [ebp - 0x1c]
fsubr dword [0x8d3abc]
fcomp dword [ebp - 0x18]
fnstsw ax
test ah, 5
jp 0x7b648e
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6638]
shr ecx, 0x12
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov edx, 0x63
sub edx, eax
add esp, 8
cmp edx, 0x3c
jg 0x7b648e
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb6638]
shr eax, 0x12
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
mov eax, 0x99999999
imul ecx
movzx eax, byte [esi + 0xd8]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
movzx ecx, byte [esi + 0xd7]
imul edx, edx, 0xfffffffd
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6640]
shr ecx, 8
and ecx, 1
imul ecx, ecx, 7
sub edx, ecx
add edx, 5
push edx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b648e
xor edx, edx
mov dx, word [esi + 0xee]
push 0x190000
push 0x30
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b648e
push 3
call fcn.0063c860
add esp, 4
dec eax
je 0x7b647c
cmp dword [ebp - 8], 0x190000
jb 0x7b6002
xor eax, eax
mov ax, word [esi + 0xee]
push eax
push edi
jmp 0x7b5fd4
push 2
push esi
call fcn.007046b0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push edi
push esi
call fcn.007b3d40
add esp, 8
test al, al
jne 0x7b76b3
mov edi, dword [ebp - 0x10]
fld dword [edi + 0x2c4]
mov ebx, dword [ebp - 8]
call fcn.0043bd30
test eax, eax
jg 0x7b64b7
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d40cc]
fnstsw ax
test ah, 0x41
jne 0x7b64f2
fld dword [edi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b64db
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2d40]
fnstsw ax
test ah, 5
jnp 0x7b6763
mov ecx, dword [edi + 0x2cc]
mov edx, dword [edi + 0x2c4]
mov eax, dword [esi + 0x2cc]
push ecx
mov ecx, dword [esi + 0x2c4]
push edx
push eax
push ecx
call fcn.006442f0
mov edx, dword [0x91d3f0]
push eax
xor eax, eax
mov ax, word [edx + 0x64]
push eax
call fcn.006442a0
add esp, 0x18
cmp ax, 0x20
jae 0x7b6763
mov ecx, dword [0x91db50]
cmp byte [ecx + 0xce], 2
jb 0x7b6763
mov edx, dword [ebp - 4]
xor eax, eax
mov ax, word [esi + 0x1d4]
push edx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x2c
ja 0x7b6763
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov edx, dword [0x91db50]
imul eax, eax, 0x110
mov cl, byte [eax + 0xeb6642]
and cl, 1
neg cl
sbb ecx, ecx
and ecx, 0xffffffec
add ecx, 0x1e
mov edi, ecx
mov cl, byte [edx + 0x10e]
test cl, cl
jne 0x7b6656
mov eax, dword [eax + 0xeb6638]
shr eax, 0x12
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
add esp, 8
cmp ecx, 0x1e
jg 0x7b6609
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6630]
shr edx, 0x12
and edx, 0x7f
push 0x1e
push edx
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
add esp, 8
cmp ecx, 0x1e
jle 0x7b662c
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
test byte [ecx + 0xeb6642], 1
je 0x7b6656
cmp ebx, 0x240000
jbe 0x7b6656
movzx edx, di
push edx
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b6656
push 1
push esi
call fcn.0079c6c0
add esp, 8
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x91db50]
cmp byte [eax + 0xce], 4
movzx eax, byte [esi + 0xd8]
push 0x28
jne 0x7b66e3
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6638]
shr ecx, 0x12
and ecx, 0x7f
push ecx
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x91db50]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, byte [ecx + 0xce]
lea eax, [eax + eax*2]
lea ecx, [eax + edx*4 - 3]
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b6763
cmp ebx, 0x310000
jae 0x7b6763
cmp ebx, 0x240000
jmp 0x7b6742
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6638]
shr edx, 0x12
and edx, 0x7f
push edx
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [edx*4 - 3]
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b6763
cmp ebx, 0x310000
jae 0x7b6763
cmp ebx, 0x90000
jbe 0x7b6763
cmp ebx, 0x190000
jb 0x7b6002
mov eax, dword [ebp - 4]
xor edx, edx
mov dx, word [esi + 0xee]
push edx
push eax
jmp 0x7b5fd4
push 2
push esi
call fcn.006a1c40
xor ecx, ecx
mov cl, byte [esi]
push ecx
call fcn.006ace10
add esp, 0xc
cmp al, 4
jb 0x7b6837
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b6791
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2d40]
fnstsw ax
test ah, 0x41
jne 0x7b6837
mov bl, 1
mov byte [ebp - 0x18], bl
lea ecx, [ecx]
fld dword [esi + 0x2cc]
fcomp dword [0x879dc4]
fnstsw ax
mov al, byte [esi + 0xd9]
test ah, 0x41
jne 0x7b67ee
test al, al
jne 0x7b67d9
mov eax, dword [0x91db50]
add eax, 0x16f
jmp 0x7b6811
mov ecx, dword [ebp - 0x18]
mov edx, dword [0x91db50]
push ecx
push 3
add edx, 0x181
push edx
jmp 0x7b6818
test al, al
jne 0x7b6807
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x91db50]
push eax
push 3
add ecx, 0x166
push ecx
jmp 0x7b6818
mov eax, dword [0x91db50]
add eax, 0x178
mov edx, dword [ebp - 0x18]
push edx
push 3
push eax
call fcn.006a2a20
add esp, 0xc
mov edi, eax
cmp di, 0xffff
jne 0x7b686b
inc bl
cmp bl, 3
mov byte [ebp - 0x18], bl
jb 0x7b67b0
mov al, byte [esi + 0xd9]
test al, al
push 1
push 8
jne 0x7b6854
mov ecx, dword [0x91db50]
add ecx, 0x154
push ecx
jmp 0x7b6861
mov edx, dword [0x91db50]
add edx, 0x15d
push edx
call fcn.006a2a20
add esp, 0xc
mov edi, eax
cmp dword [ebp - 8], 0x190000
jae 0x7b6901
mov eax, dword [ebp - 0x10]
push eax
call fcn.00645250
add esp, 4
test al, al
jne 0x7b6901
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push 0x240000
push 0x20
push edx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b6901
cmp word [ebp - 0x14], 0x10
sbb eax, eax
neg eax
push eax
push edi
call fcn.006442a0
add esp, 8
test ax, ax
je 0x7b6901
mov ebx, dword [ebp - 0x14]
push 0x240000
push 0x20
add ebx, 0x4000
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b68e1
mov edi, ebx
mov ebx, dword [ebp - 0x14]
push 0x240000
push 0x20
add ebx, 0xffffc000
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b6901
mov edi, ebx
cmp di, 0xffff
je 0x7b6999
mov ecx, dword [0x925118]
cmp byte [ecx], 0
jne 0x7b698e
push 0x400
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b698e
mov edx, dword [ebp - 4]
push edi
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jbe 0x7b698e
mov eax, dword [ebp - 4]
push 0x2000
push eax
push edi
call fcn.00643cb0
push 0x100000
push 0x20
mov ebx, eax
push ebx
push esi
call fcn.006a2b10
add esp, 0x1c
test al, al
je 0x7b698e
push 0x90000
push 0x30
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b698e
push 0x40000
push 0x40
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b698e
mov edi, ebx
cmp di, 0xffff
jne 0x7b6c5e
movzx ecx, byte [esi + 0xd9]
mov edx, dword [0x91db50]
mov al, byte [ecx + edx + 0xbe]
test al, al
je case.default.0x7b764e
mov eax, dword [0x91d3f0]
mov di, word [eax + 0x64]
mov ebx, dword [ebp - 4]
mov edx, dword [0x91db50]
mov al, byte [edx + 0x10e]
test al, al
jne 0x7b6ad7
push 0x600
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b6ad7
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ecx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x1c
jae 0x7b6ad7
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push eax
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jbe 0x7b6ad7
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
shl edx, 4
push edx
call fcn.0063c860
add esp, 0xc
cmp eax, 0x35
jle 0x7b6ad7
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d3ec8]
fnstsw ax
test ah, 5
jp 0x7b6ad7
mov dl, byte [esi + 0xd9]
xor ecx, ecx
test dl, dl
mov edx, dword [0x91db50]
movzx eax, byte [edx + 0xce]
sete cl
shl eax, 8
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
fmul dword [esi + 0x2c4]
fild dword [ebp - 0x1c]
fsubr dword [0x8d35bc]
fcompp
fnstsw ax
test ah, 5
jnp case.default.0x7b764e
mov ecx, dword [ebp - 8]
fild dword [ebp - 8]
test ecx, ecx
jge 0x7b6ae7
fadd dword [0x87079c]
fcomp dword [0x8d40c8]
fnstsw ax
test ah, 5
jp 0x7b6c41
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b6b09
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d3dec]
fnstsw ax
test ah, 0x41
jne 0x7b6c41
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b6b31
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d2d40]
fnstsw ax
test ah, 0x41
jne 0x7b6c41
push 0x300
push esi
call fcn.006acfb0
add esp, 8
test al, al
je 0x7b6c41
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6634]
shr edx, 0xb
and edx, 0x7f
push 0x1e
push edx
call fcn.00614f40
cdq
sub eax, edx
sar eax, 1
mov ecx, 0x32
sub ecx, eax
push ecx
call fcn.0063c860
add esp, 0xc
test eax, eax
jne 0x7b6bc9
mov edx, dword [0x91d3f0]
push 0x3000
push eax
xor eax, eax
mov ax, word [edx + 0x64]
push eax
push esi
call fcn.0076d390
add esp, 0x10
test al, al
jne 0x7b76b3
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x7b6c41
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
imul ecx, ecx, 7
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, 0x3c
sub eax, edx
push eax
call fcn.0063c860
add esp, 0xc
test eax, eax
je case.default.0x7b764e
fld dword [esi + 0x2c4]
call fcn.0043bd30
mov ecx, eax
test ecx, ecx
jle 0x7b6e2d
mov dword [ebp - 0x18], ecx
jmp 0x7b6e34
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
add esp, 8
cmp eax, 0x3c
jle 0x7b69be
mov edx, dword [0x925118]
cmp byte [edx], 0
jne 0x7b69be
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91db50]
mov dl, byte [eax + ecx + 0xbe]
test dl, dl
jne 0x7b69be
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b6cd4
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8cb954]
fnstsw ax
test ah, 5
jp 0x7b69be
mov edx, dword [0x91d3f0]
mov ebx, dword [ebp - 4]
xor eax, eax
mov ax, word [edx + 0x64]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x7b69c1
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b6d1f
neg eax
movzx edx, byte [esi + 0xd7]
mov dword [ebp - 0x18], eax
movzx eax, byte [esi + 0xd8]
fild dword [ebp - 0x18]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
fstp dword [ebp - 0x18]
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
shl edx, 9
mov dword [ebp - 0x1c], edx
add esp, 8
fild dword [ebp - 0x1c]
fadd dword [0x8d2d40]
fcomp dword [ebp - 0x18]
fnstsw ax
test ah, 0x41
jne 0x7b6e11
xor eax, eax
mov ax, word [esi + 0xee]
cmp di, ax
je 0x7b6e11
push 0x2000
push ebx
push eax
call fcn.00643cb0
xor ecx, ecx
mov cx, word [esi + 0xee]
mov edi, eax
push ecx
push ebx
call fcn.006442a0
add esp, 0x14
cmp ax, 0x30
jae 0x7b6dfe
mov edx, dword [0x91db50]
cmp byte [edx + 0xce], 2
jb 0x7b6dfe
xor eax, eax
mov ax, word [esi + 0xee]
push 0x400000
push 0x10
push eax
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je 0x7b6dfe
push 1
push edi
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
push 0
push edi
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov cx, word [esi + 0xee]
push 0
push ecx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov edx, ecx
neg edx
mov dword [ebp - 0x18], edx
fild dword [ebp - 0x18]
fcomp dword [0x8d2dbc]
fnstsw ax
test ah, 0x41
jne 0x7b6ebe
fld dword [esi + 0x2cc]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 5
mov eax, 0xffffffff
jnp 0x7b6e61
mov eax, 1
mov edi, 2
sub edi, eax
shl edi, 0xe
test ecx, ecx
jg 0x7b6e71
neg ecx
mov dword [ebp - 0x18], ecx
fild dword [ebp - 0x18]
fcomp dword [0x8d2cd8]
fnstsw ax
test ah, 0x41
jne 0x7b6ebe
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ecx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jb 0x7b6ebe
xor edx, edx
mov dx, word [esi + 0xee]
add dx, 0x8000
push 0x2000
push edi
push edx
call fcn.00643cb0
add esp, 0xc
mov edi, eax
mov ecx, dword [0x91db50]
mov al, byte [ecx + 0x10f]
test al, al
je 0x7b6ed6
dec al
mov byte [ecx + 0x10f], al
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91db50]
push esi
mov word [ecx + eax*2 + 0xd2], di
call fcn.007bb8b0
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91db50]
mov bx, word [eax + edx*2 + 0xd2]
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb663c]
shr ecx, 0xe
and ecx, 0x7f
push 0x28
push ecx
call fcn.00614f40
lea edx, [eax + eax*4]
lea eax, [edx + edx + 0x600]
push eax
push esi
call fcn.006acfe0
add esp, 0x14
cmp al, 2
jae 0x7b6f8e
cmp al, 1
jne 0x7b6f8e
movzx ecx, byte [esi + 0xd9]
mov edx, dword [0x91cfa4]
xor ecx, 1
mov al, byte [edx + ecx*2 + 0x1c]
cmp al, 0xff
je 0x7b6f74
movzx eax, al
cdq
mov ecx, 0x17
idiv ecx
jmp 0x7b6f79
mov edx, 1
imul edx, edx, 0x4c0
add edx, 0xd92230
push edx
call fcn.00645250
add esp, 4
mov edx, dword [0x91db50]
mov al, byte [edx + 0x10e]
test al, al
jne 0x7b7316
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx + 0x600]
push edx
push esi
call fcn.006acfb0
add esp, 0x10
test al, al
je 0x7b7316
mov ecx, dword [0x91d3f0]
mov eax, dword [ebp - 4]
xor edx, edx
mov dx, word [ecx + 0x64]
push eax
push edx
call fcn.006442a0
movzx ecx, byte [esi + 0xd7]
push 0x28
mov edi, eax
movzx eax, byte [esi + 0xd8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
movzx eax, di
lea edx, [edx + ecx + 0x28]
add esp, 0x10
cmp eax, edx
jg 0x7b7247
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2ddc]
fnstsw ax
test ah, 5
jp 0x7b70ed
mov al, byte [esi + 0xd9]
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
fmul dword [esi + 0x2c4]
fcomp dword [0x8cdf9c]
fnstsw ax
test ah, 0x41
jne 0x7b70ed
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x64]
push ebx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x28
ja case.default.0x7b764e
cmp di, 0x10
jae 0x7b70ed
push 0x400
push esi
call fcn.006acfb0
add esp, 8
test al, al
jne case.default.0x7b764e
push 0x400000
push 0x28
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je case.default.0x7b764e
fld dword [esi + 0x2cc]
fabs
fcomp dword [0x8d2d4c]
fnstsw ax
test ah, 5
jp 0x7b71ca
mov dl, byte [esi + 0xd9]
movzx eax, byte [esi + 0xd8]
xor ecx, ecx
test dl, dl
sete cl
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
push 0x28
lea ecx, [ecx + ecx - 1]
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
fmul dword [esi + 0x2c4]
fstp dword [ebp - 0x18]
mov edx, dword [ecx + 0xeb663c]
shr edx, 0xe
and edx, 0x7f
push edx
call fcn.00614f40
mov ecx, eax
shl ecx, 6
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x1c], edx
add esp, 8
fild dword [ebp - 0x1c]
fsubr dword [0x8d3abc]
fcomp dword [ebp - 0x18]
fnstsw ax
test ah, 5
jp 0x7b71ca
fld dword [esi + 0x2cc]
call fcn.0043bd30
test eax, eax
jg 0x7b7194
neg eax
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push ebx
mov edi, eax
push edx
call fcn.006442a0
movzx ecx, ax
mov eax, 0x2aaaaaab
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 0x28]
add esp, 8
cmp ecx, edx
jg case.default.0x7b764e
cmp dword [ebp - 0xc], 0xe10000
jae 0x7b71ea
mov eax, dword [ebp - 4]
push ebx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jae case.default.0x7b764e
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b71fb
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d3a9c]
fnstsw ax
test ah, 0x41
jne 0x7b7247
xor ecx, ecx
mov cx, word [esi + 0xee]
push 0x100000
push 0x10
push ecx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne 0x7b7247
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91db50]
mov cl, byte [edx + eax + 0xbe]
test cl, cl
je case.default.0x7b764e
mov edx, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [esi + 0xee]
xor eax, eax
mov ax, word [edx + 0x64]
push ecx
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x24
ja 0x7b72e0
cmp dword [ebp - 0xc], 0xe10000
jae 0x7b72e0
mov ecx, dword [0x91d3f0]
xor edx, edx
mov dx, word [ecx + 0x64]
push edx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x7b72e0
mov eax, dword [0x91d3f0]
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cx, word [eax + 0x64]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
jae 0x7b72e0
movzx eax, byte [esi + 0xd9]
mov ecx, dword [0x91db50]
mov dl, byte [eax + ecx + 0xbe]
test dl, dl
jne 0x7b72e0
push 0x190000
push 0x28
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
je case.default.0x7b764e
cmp dword [ebp - 8], 0x240000
jae 0x7b7316
mov edx, dword [ebp - 0x14]
push edx
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jae 0x7b7316
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 4]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja case.default.0x7b764e
mov edx, dword [0x925118]
cmp byte [edx], 0
je 0x7b76a7
mov eax, dword [0x91db50]
mov cl, byte [eax + 0x10f]
test cl, cl
je 0x7b739f
movzx ecx, byte [esi + 0xd9]
xor edx, edx
mov dx, word [eax + ecx*2 + 0xd2]
mov eax, dword [ebp - 4]
push edx
push eax
call fcn.006442a0
mov edx, dword [0x91db50]
movzx ecx, byte [esi + 0xd9]
add esp, 8
cmp ax, 0x18
jae 0x7b7382
xor eax, eax
mov ax, word [edx + ecx*2 + 0xd2]
push 1
push eax
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov ax, word [edx + ecx*2 + 0xd2]
push 0
push eax
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 8]
xor eax, eax
mov ax, word [esi + 0xee]
cmp word [ebp - 4], ax
jne case.0x7b764e.0
cmp edi, 0x400000
jae 0x7b76a7
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x18
jb case.0x7b764e.0
cmp edi, 0x190000
jae 0x7b74da
cmp byte [esi + 0xda], 3
je 0x7b74da
fld dword [esi + 0x2c4]
call fcn.0043bd30
test eax, eax
jg 0x7b73ff
neg eax
mov dword [ebp - 0x18], eax
fild dword [ebp - 0x18]
fcomp dword [0x8d35bc]
fnstsw ax
test ah, 5
jp 0x7b74da
movzx eax, byte [esi + 0xd8]
movzx edx, byte [esi + 0xd7]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
imul eax, eax, 0x110
mov ecx, dword [eax + 0xeb6628]
shr ecx, 0x19
push 0x28
push ecx
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax - 4]
add esp, 8
cmp edx, 5
ja case.default.0x7b745e
jmp dword [edx*4 + 0x7b76f0]
push 3
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b74da
push 3
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b74da
push 3
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b74da
mov ecx, dword [0x91db50]
mov byte [ecx + 0x10f], 6
movzx edx, byte [esi + 0xd9]
mov eax, dword [0x91db50]
mov word [eax + edx*2 + 0xd2], bx
movzx ecx, byte [esi + 0xd9]
mov edx, dword [0x91db50]
xor eax, eax
mov ax, word [edx + ecx*2 + 0xd2]
push 0
push eax
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
cmp edi, 0x240000
jbe 0x7b75ec
movzx eax, byte [esi + 0x124]
lea ecx, [eax + eax*2]
mov eax, dword [ebp - 0x10]
shl ecx, 2
mov edx, 0x1900
sub edx, ecx
cmp dword [eax + 0xe0], edx
jle 0x7b75ec
mov ecx, dword [0x91db50]
cmp byte [ecx + 0xce], 2
jb 0x7b75ec
movzx eax, byte [esi + 0xd8]
lea edx, [eax + eax*4]
movzx eax, byte [esi + 0xd7]
lea ecx, [eax + edx*8]
imul ecx, ecx, 0x110
mov edx, dword [ecx + 0xeb6638]
shr edx, 0x12
and edx, 0x7f
push 0x28
push edx
call fcn.00614f40
mov ecx, 0x63
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
add esp, 8
cmp edx, 5
ja case.default.0x7b756a
jmp dword [edx*4 + 0x7b7708]
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b75ec
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b75ec
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b75ec
push 2
call fcn.0063c860
add esp, 4
test eax, eax
jne 0x7b75ec
cmp edi, 0x190000
jb 0x7b6002
mov edx, dword [ebp - 4]
xor ecx, ecx
mov cx, word [esi + 0xee]
push ecx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x10
jae 0x7b5ff0
push 2
call fcn.0063c860
add esp, 4
test eax, eax
je 0x7b5ff0
jmp 0x7b6002
push 0x100000
push 0x40
push ebx
push esi
call fcn.006a2b10
add esp, 0x10
test al, al
jne case.0x7b764e.0
movzx eax, byte [esi + 0xd8]
movzx ecx, byte [esi + 0xd7]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
imul edx, edx, 0x110
mov eax, dword [edx + 0xeb663c]
shr eax, 0xe
and eax, 0x7f
push 0x28
push eax
call fcn.00614f40
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
add esp, 8
cmp edx, 7
ja case.default.0x7b764e
jmp dword [edx*4 + 0x7b7720]
push 3
call fcn.0063c860
add esp, 4
test eax, eax
jne case.0x7b764e.0
push 3
call fcn.0063c860
add esp, 4
test eax, eax
je case.default.0x7b764e
cmp edi, 0x400000
jae 0x7b76a7
mov edx, dword [ebp - 4]
push ebx
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x1e
jb 0x7b76a7
mov eax, dword [ebp - 0x14]
push eax
push ebx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb case.default.0x7b764e
push 0
push ebx
push esi
call fcn.00682020
add esp, 0xc
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret