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

Disassembly:
sub esp, 0xa4
push ebp
mov ebp, dword [esp + 0xb0]
mov eax, dword [ebp]
cmp eax, 0x100
jb 0x7155c
cmp eax, 0x1000
ja 0x7155c
mov eax, dword [ebp + 4]
cmp eax, 9
push esi
push edi
jae 0x6f7e2
lea eax, [eax + eax*2]
mov esi, dword [eax*8 + 0x4e75c0]
xor edi, edi
cmp esi, edi
mov dword [esp + 0x20], esi
je 0x6f7e2
mov ecx, dword [esi + 0x2520]
cmp ecx, edi
je 0x6f7e2
mov edx, dword [ecx]
call dword [edx + 0x124]
mov ecx, eax
mov eax, dword [ecx + 0x4c90]
test al, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x24], edi
je 0x6f7c1
mov edx, dword [ecx + 0x4d50]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], edx
test al, 2
je 0x6f7cf
mov eax, dword [ecx + 0x4c88]
mov dword [esp + 0x10], eax
test byte [esi + 0xb88], 1
lea edi, [esi + 0xb88]
mov dword [esp + 0xc], edi
jne 0x6f7f3
pop edi
pop esi
mov eax, 0x80000006
pop ebp
add esp, 0xa4
ret 8
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
cmp eax, 0x16
lea edx, [ecx + 0x25f8]
push ebx
lea ebx, [ecx + 0x50]
mov dword [esp + 0x1c], edx
ja case.0x6f811.9
jmp dword [eax*4 + 0x7156c]
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0x174], ecx
mov edx, dword [ebp + 0x14]
mov dword [edi + 0x178], edx
mov eax, dword [ebp + 0x18]
xor eax, dword [edi + 0x17c]
and eax, 0x7fffffff
xor dword [edi + 0x17c], eax
test byte [edi + 0x17c], 4
je 0x6f850
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 0x180], ecx
test byte [edi + 0x17c], 8
je 0x6f863
mov dword [edi + 0x180], 0
mov eax, dword [edi + 0x17c]
test al, 2
je 0x6f8b0
test eax, eax
js 0x6f877
test byte [edi + 2], 0x20
je 0x6f8b0
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], eax
push 0x205
mov ecx, 0x10
lea edx, [esp + 0x34]
mov eax, esi
call fcn.00063830
and byte [edi + 0x17f], 0x7f
and byte [edi + 2], 0xdf
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test al, 1
je case.0x6f811.0
test eax, eax
js case.0x6f811.0
push 0x126
mov ecx, 0x18
lea edx, [esp + 0x4c]
mov eax, esi
call fcn.00069a80
test eax, eax
jne 0x6f8e1
xor ebx, ebx
cmp dword [esp + 0x4c], ebx
jne 0x6f8f3
pop ebx
pop edi
pop esi
mov eax, 5
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [esi + 0x5cc]
cmp eax, 3
je 0x6f998
cmp eax, 2
mov edx, dword [0x5271fc]
jne 0x6f91b
mov eax, dword [edx + 0xb70]
or eax, dword [edx + 0xb6c]
jmp 0x6f926
mov eax, dword [edx + 0xb50]
call fcn.00095c40
mov dword [esp + 0x30], eax
cmp dword [edx + 0x168], 0x2d0
jne 0x6f942
cmp dword [edx + 0x16c], 0x240
je 0x6f94b
test byte [edi + 0x17d], 2
je 0x6f955
mov dword [esp + 0x34], 1
jmp 0x6f959
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 0x174]
cmp eax, 0x20495649
mov dword [esp + 0x3c], ebx
jne 0x6f970
mov dword [esp + 0x38], ebx
jmp 0x6f983
sub eax, 0x52564457
neg eax
sbb eax, eax
and eax, 3
add eax, 1
mov dword [esp + 0x38], eax
push 0x205
mov ecx, 0x10
lea edx, [esp + 0x34]
mov eax, esi
call fcn.00063830
mov eax, dword [esi + 0x5cc]
or byte [esi + 0xd07], 0x80
cmp eax, 2
je 0x6f9b3
cmp eax, 3
jne case.0x6f811.0
push edi
call fcn.000981c0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
xor eax, eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x10], 0xf
test byte [esi + 0x23b8], 0x80
je 0x6f9f6
test byte [esi + 0x1407], 0x10
jne 0x6f9f6
mov dword [ebp + 0x10], 0x2f
or byte [ebp + 0x12], 0x60
mov ecx, 0x500000
test dword [esi + 0x23bc], ecx
mov ebx, 0xf000000
jne 0x6fa14
test dword [esi + 0x23bc], ebx
je 0x6fa27
mov ecx, dword [esi + 0x2520]
mov edx, dword [ecx]
call dword [edx + 0x124]
mov ecx, 0x500000
test dword [esi + 0x23bc], ecx
jne 0x6fa37
test dword [esi + 0x23bc], ebx
je 0x6fa3e
or dword [ebp + 0x10], 0xaf000400
or dword [ebp + 0x14], 0x10
mov eax, dword [ebp + 0x14]
mov edx, 1
cmp dword [esi + 0x2348], edx
jbe 0x6fa57
or al, 8
mov dword [ebp + 0x14], eax
or dword [ebp + 0x18], 2
test byte [esi + 0x23be], 0x5f
mov eax, dword [ebp + 0x18]
je 0x6fa6b
or al, 0x10
jmp 0x6fa76
test byte [esi + 0x23b9], 0x80
je 0x6fa79
or al, 8
mov dword [ebp + 0x18], eax
test dword [esi + 0x23bc], ecx
je 0x6fa85
or dword [ebp + 0x18], 0x60
or dword [ebp + 0x1c], edx
mov eax, dword [esp + 0x18]
or byte [ebp + 0x1b], 0x80
test byte [eax + 0x4c90], 1
mov ebx, dword [ebp + 0x1c]
je 0x6fab0
cmp dword [esp + 0x14], 0
je 0x6fabc
mov edx, dword [esp + 0x14]
call fcn.000fae10
test eax, eax
jmp 0x6fab4
cmp dword [edi + 0x7c], 0
je 0x6fabc
or ebx, 4
mov dword [ebp + 0x1c], ebx
cmp dword [edi + 0x784], 0
je 0x6fad5
test byte [edi + 1], 0x10
je 0x6fad1
or dword [ebp + 0x1c], 0x10
jmp 0x6fad5
or dword [ebp + 0x1c], 8
mov ecx, dword [esi + 0x2348]
and ecx, 0xf
shl ecx, 0x10
or dword [ebp + 0x1c], ecx
mov ecx, dword [esi + 0x5cc]
mov eax, dword [ebp + 0x1c]
and ecx, 0xf
cmp ecx, 3
ja case.default.0x6faf5
jmp dword [ecx*4 + 0x715c8]
or eax, 0x100000
jmp case.0x6faf5.0
or eax, 0x200000
jmp case.0x6faf5.0
mov edx, dword [esp + 0xb8]
or eax, 0x300000
mov dword [ebp + 0x1c], eax
test byte [edx + 0xae0], 4
je case.default.0x6faf5
or al, 0x20
mov dword [ebp + 0x1c], eax
xor ebx, ebx
cmp dword [esi + 0x2348], ebx
jle 0x6fba3
mov esi, 0x18
lea edi, [esp + 0x94]
lea ecx, [ecx]
mov eax, dword [esp + 0x24]
push 0x8e
mov ecx, 0x20
mov edx, edi
mov dword [edi], ebx
call fcn.00069a80
mov eax, dword [edi + 4]
cmp eax, 3
ja 0x6fb79
je 0x6fb72
sub eax, 0
je 0x6fb7e
sub eax, 1
jne 0x6fb7e
mov eax, 1
jmp 0x6fb87
mov eax, 3
jmp 0x6fb87
cmp eax, 0xffffffff
je 0x6fb82
xor eax, eax
jmp 0x6fb87
mov eax, 0xf
mov ecx, esi
shl eax, cl
add ebx, 1
add esi, 4
add edi, 0x10
or dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp ebx, dword [eax + 0x2348]
jl 0x6fb40
or dword [ebp + 0x20], 0x83353c0f
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov esi, dword [esp + 0x24]
mov edi, ebp
call fcn.0006f0b0
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xa4
ret 8
mov ebx, dword [ebp + 4]
test ebx, ebx
je 0x6fbdb
sub ebx, 1
push 0x113
mov ecx, 8
lea edx, [esp + 0x44]
mov eax, esi
mov dword [ebp + 0x10], 0
mov dword [esp + 0x44], ebx
call fcn.00069a80
cmp dword [esp + 0x44], 0
je 0x6fc06
or dword [ebp + 0x10], 2
mov edi, dword [esp + 0x24]
lea esi, [esp + 0x20]
mov ecx, 0xdf
mov eax, edi
call fcn.00069a60
mov eax, ebx
call fcn.00095c40
cmp dword [esp + 0x20], eax
jne 0x6fc2b
or dword [ebp + 0x10], 1
push 0x8e
mov ecx, 0x20
lea edx, [esp + 0x98]
mov eax, edi
mov dword [esp + 0x98], ebx
call fcn.00069a80
mov eax, dword [esp + 0x98]
mov esi, 3
cmp eax, esi
ja 0x6fcaf
je 0x6fc78
sub eax, 0
je 0x6fc6f
sub eax, 1
jne 0x6fcaf
mov dword [ebp + 0x14], 1
jmp 0x6fcb6
mov dword [ebp + 0x14], 0
jmp 0x6fcb6
push 0x10f
mov ecx, 0x20
lea edx, [esp + 0x4c]
mov eax, edi
mov dword [ebp + 0x14], esi
mov dword [esp + 0x4c], ebx
call fcn.00069a80
test byte [esp + 0x64], 4
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x54], edx
je 0x6fcb6
or dword [ebp + 0x10], 8
jmp 0x6fcb6
mov dword [ebp + 0x14], 0xf
mov eax, ebx
call fcn.00095c40
mov dword [esp + 0x80], eax
push 0x1cf
mov ecx, 0x14
lea edx, [esp + 0x84]
mov eax, edi
call fcn.00069a80
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], edx
push 0x6f
mov ecx, 0xc
lea edx, [esp + 0x78]
mov eax, edi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], esi
call fcn.00069a80
mov eax, dword [esp + 0x78]
mov dword [ebp + 0x24], eax
mov edx, dword [edi + 0x5c8]
mov eax, dword [edi + 0x680c]
mov ecx, dword [edi + 0x681c]
add eax, edx
add ecx, edx
mov edx, dword [edi + 0x6810]
shl ebx, 0xd
and edx, dword [eax + ebx]
add eax, ebx
add ecx, ebx
mov dword [ebp + 0x28], edx
mov ecx, dword [ecx]
test dword [edi + 0x6820], ecx
jne 0x6fd5a
cmp edx, dword [ebp + 0x1c]
jbe case.0x6f811.0
or dword [ebp + 0x10], 4
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [ebp + 0x10]
test al, al
jns 0x6fd86
pop ebx
pop edi
pop esi
mov eax, 0x80000003
pop ebp
add esp, 0xa4
ret 8
test al, 2
je 0x6fdc9
mov ecx, dword [ebp + 0x1c]
imul ecx, ecx, 0x4e20
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x6fdaf
cmp eax, 0x4e20
jge 0x6fdbd
xor edx, edx
test eax, eax
setle dl
sub edx, 1
and eax, edx
jmp 0x6fdc2
mov eax, 0x4e20
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x10], eax
test byte [ebp + 0x10], 1
je 0x6fe13
mov ecx, dword [ebp + 0x18]
imul ecx, ecx, 0x2710
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0xffffd8f0
jle 0x6fe00
cmp eax, 0x2710
jge 0x6fe07
cmp eax, 0xffffd8f0
jg 0x6fe0c
mov eax, 0xffffd8f0
jmp 0x6fe0c
mov eax, 0x2710
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], eax
test byte [ebp + 0x10], 4
je 0x6fe59
mov eax, dword [ebp + 0x20]
mov edx, 0xffffff4c
cmp eax, edx
mov dword [ebx + 0x14], eax
jge 0x6fe39
mov esi, dword [ebx + 0x14]
mov eax, 0x168
add esi, eax
cmp esi, edx
jl 0x6fe30
mov dword [ebx + 0x14], esi
mov eax, 0xb4
cmp dword [ebx + 0x14], eax
jle 0x6fe59
mov esi, dword [ebx + 0x14]
mov edx, 0xfffffe98
jmp 0x6fe50
add esi, edx
cmp esi, eax
jg 0x6fe50
mov dword [ebx + 0x14], esi
test byte [ebp + 0x10], 8
je 0x6fe9e
mov ecx, dword [ebp + 0x24]
imul ecx, ecx, 0x4e20
mov eax, 0x51eb851f
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x6fe84
cmp eax, 0x4e20
jge 0x6fe92
xor ecx, ecx
test eax, eax
setle cl
sub ecx, 1
and eax, ecx
jmp 0x6fe97
mov eax, 0x4e20
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x10]
test al, 0x20
je 0x700a9
mov ebp, dword [ebp + 0x2c]
lea edx, [ebp + ebp*2]
lea eax, [ebp + edx*8]
add eax, eax
add eax, eax
test byte [ecx + 0x4c90], 1
je 0x6feff
test eax, eax
jle 0x6fecc
cmp eax, 0x7530
jge 0x6fee9
xor ecx, ecx
test eax, eax
setle cl
sub ecx, 1
and eax, ecx
push eax
push eax
push eax
push 0x10
mov ecx, ebx
call fcn.0010a180
jmp 0x700cf
mov eax, 0x7530
push eax
push eax
push eax
push 0x10
mov ecx, ebx
call fcn.0010a180
jmp 0x700cf
test eax, eax
jle 0x6ff0a
cmp eax, 0xffff
jge 0x6ff18
xor ecx, ecx
test eax, eax
setle cl
sub ecx, 1
and eax, ecx
jmp 0x6ff1d
mov eax, 0xffff
cmp eax, 0x2710
mov dword [esp + 0x10], eax
lea esi, [ebx + 0x38]
lea ebp, [ebx + 0x238]
lea edx, [ebx + 0x438]
jne 0x6ff71
xor eax, eax
sub edx, ebp
mov ecx, ebp
sub esi, ebp
nop
mov word [edx + ecx], ax
mov word [ecx], ax
mov word [esi + ecx], ax
add eax, 1
add ecx, 2
cmp ax, 0x100
jl 0x6ff40
mov eax, 0x2710
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x24], 0
jmp 0x700cf
fild dword [esp + 0x10]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
fmul dword [0x41c04c]
xor eax, eax
mov dword [ebx + 0x24], eax
mov dword [esp + 0x18], eax
fld st(0)
lea eax, [ebx + 0x38]
fld st(1)
sub eax, ebp
fstp dword [esp + 0x20]
sub edx, ebp
fxch st(1)
mov esi, ebp
fstp dword [esp + 0x10]
mov dword [esp + 0x24], eax
fld dword [0x41bc3c]
mov dword [esp + 0x28], edx
fdiv st(1)
fstp dword [esp + 0x14]
fstp st(0)
fld dword [0x41bc3c]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [0x41bc3c]
fdiv dword [esp + 0x10]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
fild dword [esp + 0x18]
test edx, edx
jge 0x6ffe8
fadd dword [0x41bc68]
fmul dword [0x41bca4]
fst dword [esp + 0x10]
fld dword [esp + 0x14]
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
fld dword [esp + 0x20]
mov word [esi + ecx], ax
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
fld dword [esp + 0x10]
fld dword [esp + 0x2c]
mov word [esi], ax
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
mov edx, dword [esp + 0x28]
mov word [esi + edx], ax
mov eax, dword [esp + 0x18]
add eax, 1
add esi, 2
cmp eax, 0xff
mov dword [esp + 0x18], eax
jbe 0x6ffd6
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add ebp, 0x1fe
mov edx, 0xff
cmp word [eax + ebp], 0xff
jbe 0x70083
mov word [eax + ebp], 0xff
cmp word [ebp], 0xff
jbe 0x70091
mov word [ebp], 0xff
cmp word [ecx + ebp], 0xff
jbe 0x7009f
mov word [ecx + ebp], 0xff
sub ebp, 2
sub edx, 1
jne 0x70075
jmp 0x700cf
test ah, 1
je 0x700cf
xor eax, eax
lea ecx, [ebx + 0x38]
mov edx, dword [ebp + 0x2c]
mov dx, word [eax + edx]
mov word [ecx], dx
add eax, 2
add ecx, 2
cmp eax, 0x20
jl 0x700b3
mov dword [ebx + 0x24], 1
mov edx, dword [esp + 0x1c]
mov eax, 0x4e7d84
call fcn.000c3ab0
push ebx
push edi
call fcn.000a1ec0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov dword [ebp + 0x10], 0xf
mov ecx, dword [ebx + 0x10]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov ecx, eax
shl ecx, 8
sub ecx, eax
test eax, eax
jle 0x70127
add ecx, 0x1388
jmp 0x7012d
sub ecx, 0x1388
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp + 0x18], ecx
mov edx, dword [ebx + 0x14]
mov dword [ebp + 0x20], edx
mov ecx, dword [ebx + 0x18]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x14], 3
test byte [esi + 0x23b8], 0x80
jne 0x70189
mov ecx, dword [esi + 0x2520]
mov edx, dword [ecx]
call dword [edx + 0x124]
test byte [eax + 0x4c90], 1
je case.0x6f811.0
mov eax, dword [ebx + 0x24]
cmp eax, 1
jne 0x701c7
or byte [ebp + 0x11], al
cmp dword [ebp + 0x2c], 0
je 0x6fd74
xor eax, eax
add ebx, 0x38
mov dx, word [ebx]
mov ecx, dword [ebp + 0x2c]
mov word [eax + ecx], dx
add eax, 2
add ebx, 2
cmp eax, 0x20
jl 0x701a3
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test eax, eax
je 0x701e5
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x4c90], 1
je case.0x6f811.0
cmp eax, 0x10
jne case.0x6f811.0
mov ebx, dword [ebx + 0x28]
or dword [ebp + 0x10], 0x20
mov eax, 0x51eb851f
imul ebx
sar edx, 5
pop ebx
mov eax, edx
shr eax, 0x1f
pop edi
add eax, edx
mov dword [ebp + 0x2c], eax
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [ebp + 0x10]
test ah, 1
jne 0x6fd74
test al, 0x20
je 0x70488
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + eax*2]
lea eax, [eax + ecx*8]
add eax, eax
add eax, eax
test eax, eax
jle 0x7023b
cmp eax, 0xffff
jge 0x70249
xor ecx, ecx
test eax, eax
setle cl
sub ecx, 1
and ecx, eax
jmp 0x7024e
mov ecx, 0xffff
mov esi, dword [esp + 0x1c]
lea edx, [esi + 0x38]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add esi, 0x238
add edx, 0x438
cmp ecx, 0x2710
mov dword [esp + 0x10], ecx
jne 0x702c5
sub edx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
add edx, 0x38
xor eax, eax
mov ecx, esi
sub edx, esi
mov esi, dword [esp + 0x18]
lea esp, [esp]
mov word [esi + ecx], ax
mov word [ecx], ax
mov word [edx + ecx], ax
add eax, 1
add ecx, 2
cmp ax, 0x100
jl 0x70290
mov eax, dword [esp + 0x1c]
mov ecx, 0x2710
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x24], 0
jmp 0x70401
fild dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], ecx
fmul dword [0x41c04c]
mov dword [eax + 0x30], ecx
xor ecx, ecx
lea esi, [eax + 0x238]
fld st(0)
mov dword [eax + 0x24], ecx
fld st(1)
mov eax, dword [esp + 0x18]
fstp dword [esp + 0x2c]
sub eax, esi
fxch st(1)
sub edx, esi
fstp dword [esp + 0x20]
mov dword [esp + 0x24], ecx
fld dword [0x41bc3c]
mov dword [esp + 0x14], eax
fdiv st(1)
mov dword [esp + 0x18], edx
fstp dword [esp + 0x30]
fstp st(0)
fld dword [0x41bc3c]
fdiv dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [0x41bc3c]
fdiv dword [esp + 0x20]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x24]
fild dword [esp + 0x24]
test eax, eax
jge 0x70345
fadd dword [0x41bc68]
fmul dword [0x41bca4]
fst dword [esp + 0x10]
fld dword [esp + 0x30]
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fld dword [esp + 0x2c]
mov word [esi + ecx], ax
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
fld dword [esp + 0x10]
fld dword [esp + 0x20]
mov word [esi], ax
call fcn.003f48a4
fmul dword [0x41bf54]
call fcn.003f4770
mov edx, dword [esp + 0x18]
mov word [esi + edx], ax
mov eax, dword [esp + 0x24]
add eax, 1
add esi, 2
cmp eax, 0xff
mov dword [esp + 0x24], eax
jbe 0x70333
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add eax, 0x436
mov esi, 0xff
cmp word [eax + ecx], 0xff
jbe 0x703df
mov word [eax + ecx], 0xff
cmp word [eax], 0xff
jbe 0x703eb
mov word [eax], 0xff
cmp word [eax + edx], 0xff
jbe 0x703f9
mov word [eax + edx], 0xff
sub eax, 2
sub esi, 1
jne 0x703d1
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x28], 0x2710
jne 0x70414
and dword [eax + 4], 0xffffffdf
jmp 0x70418
or dword [eax + 4], 0x20
cmp dword [esp + 0x28], 0
je 0x704b3
cmp dword [ebp + 0x2c], 0x64
jne 0x70436
mov eax, dword [esp + 0x28]
and dword [eax + 0x74], 0xfffffffd
jmp 0x704b3
mov ecx, dword [esp + 0x28]
or dword [ecx + 0x74], 6
mov eax, dword [ebp + 0x2c]
cmp eax, 0x1e
jle 0x70458
cmp eax, 0x12c
jge 0x70462
cmp eax, 0x1e
jle 0x70458
mov dword [esp + 0x10], eax
jmp 0x7046a
mov dword [esp + 0x10], 0x1e
jmp 0x7046a
mov dword [esp + 0x10], 0x12c
fild dword [esp + 0x10]
fmul dword [0x41be48]
fst dword [ecx + 0x8c]
fst dword [ecx + 0x90]
fstp dword [ecx + 0x94]
jmp 0x704b3
test al, al
jns 0x704b3
xor eax, eax
lea ecx, [edx + 0x38]
mov esi, dword [ebp + 0x2c]
mov si, word [eax + esi]
mov word [ecx], si
add eax, 2
add ecx, 2
cmp eax, 0x600
jl 0x70491
or dword [edx + 4], 0x20
mov dword [edx + 0x24], 2
test byte [ebp + 0x10], 0x40
je 0x704f0
mov ebp, dword [ebp + 0x14]
test ebp, ebp
jle 0x704c5
cmp ebp, 0x3f
jge 0x704de
mov edx, dword [esp + 0x1c]
xor eax, eax
test ebp, ebp
setle al
sub eax, 1
and eax, ebp
or dword [edx + 4], 0x10
mov dword [edx + 0x1c], eax
jmp 0x704f4
mov edx, dword [esp + 0x1c]
or dword [edx + 4], 0x10
mov eax, 0x3f
mov dword [edx + 0x1c], eax
jmp 0x704f4
mov edx, dword [esp + 0x1c]
mov eax, 0x4e7d84
call fcn.000c3ab0
push edx
push edi
call fcn.000a2530
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov dword [ebp + 0x10], 0x40
mov eax, dword [edx + 0x24]
test eax, eax
jne 0x7055d
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x10], 0x60
mov ecx, dword [eax + 0x28]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x1c]
pop ebx
mov dword [ebp + 0x2c], ecx
mov edx, dword [edx + 0x1c]
pop edi
pop esi
mov dword [ebp + 0x14], edx
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
cmp eax, 2
jne 0x70597
cmp dword [ebp + 0x2c], 0
mov dword [ebp + 0x10], 0xc0
je 0x6fd74
xor eax, eax
lea ecx, [edx + 0x38]
jmp 0x70580
mov di, word [ecx]
mov esi, dword [ebp + 0x2c]
mov word [eax + esi], di
add eax, 2
add ecx, 2
cmp eax, 0x600
jl 0x70580
mov edx, dword [edx + 0x1c]
pop ebx
pop edi
pop esi
mov dword [ebp + 0x14], edx
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
push ebp
push esi
call fcn.0006f4b0
pop ebx
pop edi
pop esi
pop ebp
add esp, 0xa4
ret 8
push esi
mov edi, ebx
mov eax, ebp
call fcn.0006f2f0
mov edx, dword [esp + 0x1c]
mov edi, eax
mov eax, 0x4e7d84
call fcn.000c3ab0
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [ebp + 0x10]
test al, 1
jne 0x6f8e1
test al, 2
je 0x70642
mov eax, dword [ebp + 0x20]
test eax, eax
jl 0x6fd74
cmp eax, 0xff
jg 0x6fd74
or dword [edi + 0x874], 2
mov byte [edi + 0x875], 0
mov eax, dword [ebp + 0x20]
shl eax, 8
or eax, dword [edi + 0x874]
and al, 0xfb
mov dword [edi + 0x874], eax
test byte [ebp + 0xc], 1
je 0x7063a
or al, 8
jmp 0x7063c
and al, 0xf7
mov dword [edi + 0x874], eax
test byte [ebp + 0x10], 8
je 0x70690
mov eax, dword [ebp + 0x24]
test eax, eax
jl 0x6fd74
cmp eax, 0xff
jg 0x6fd74
or dword [edi + 0x874], 0x20
mov byte [edi + 0x876], 0
mov eax, dword [ebp + 0x24]
shl eax, 0x10
or dword [edi + 0x874], eax
test byte [ebp + 0xc], 2
mov eax, dword [edi + 0x874]
je 0x70688
or al, 0x40
jmp 0x7068a
and al, 0xbf
mov dword [edi + 0x874], eax
test byte [ebp + 0x10], 0x10
je 0x70a86
mov bl, byte [ebp + 0x30]
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x7b8]
mov edx, dword [edi + 0x7bc]
and bl, 0xf
test eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
je 0x706e3
cmp bl, 1
je 0x706cf
cmp bl, 2
je 0x706cf
cmp bl, 0xf
je 0x706cf
xor ecx, ecx
jmp 0x706d4
mov ecx, 1
mov dword [eax + 0x4d70], ecx
movzx ecx, bl
mov dword [eax + 0x4d78], ecx
cmp dword [esp + 0x28], 0
je 0x70734
mov eax, dword [ebp + 0x30]
mov edx, eax
shr edx, 6
and edx, 1
push edx
mov ecx, eax
mov edx, eax
shr ecx, 7
and ecx, 1
shr edx, 5
push ecx
and edx, 1
shr eax, 4
push edx
mov edx, dword [esp + 0x34]
and eax, 1
call fcn.0012dbd0
mov ecx, dword [ebp + 0x30]
mov esi, ecx
sar esi, 0xc
sar ecx, 8
and esi, 0xff
and ecx, 0xf
call fcn.0012db80
mov esi, dword [esp + 0x24]
cmp bl, 2
jbe 0x70742
cmp bl, 0xf
jne 0x6fd74
cmp dword [esi + 0x5cc], 0
jne 0x70750
or bl, 0xff
jmp 0x70781
movzx eax, bl
cmp eax, 0xf
ja case.0x7075f.3
movzx ecx, byte [eax + 0x715e8]
jmp dword [ecx*4 + 0x715d8]
mov bl, 1
sub bl, byte [edi + 0x74]
jmp 0x70781
mov edx, dword [esp + 0xb8]
mov bl, byte [edx + eax*4 + 0xb4c]
jmp 0x70781
mov bl, byte [esp + 0x14]
mov ecx, dword [edi + 0x878]
mov edx, dword [ebp + 0x30]
mov eax, ecx
xor eax, edx
test al, 0xf0
je 0x707a5
mov eax, ecx
xor eax, edx
test eax, 0xffffff0f
mov dword [esp + 0x20], 1
je 0x707ad
mov dword [esp + 0x20], 0
mov eax, ecx
xor eax, edx
and eax, 0x7fffff
xor eax, ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
mov dword [edi + 0x878], eax
mov dword [edi + 0x868], eax
je 0x707ea
cmp dword [ecx + 0x18], 0
jne 0x70800
cmp dword [edi + 0x7c], 0
je case.0x6f811.0
movsx edx, bl
cmp edx, dword [edi + 0x74]
jne case.0x6f811.0
jmp 0x70800
cmp dword [esp + 0x1c], 0
je case.0x6f811.0
cmp dword [esp + 0x18], 0
je case.0x6f811.0
mov eax, dword [esi + 0x5cc]
cmp eax, 2
je 0x70810
cmp eax, 3
jne 0x70832
test byte [edi + 0x878], 0xf
jne 0x70832
test byte [edi + 0x87c], 1
jne 0x70832
cmp dword [edi + 0x784], 0
je 0x70832
mov dword [edi + 0x10], 1
movsx eax, bl
cmp eax, dword [edi + 0x74]
jne 0x70916
cmp bl, 0xff
je 0x70916
mov edx, dword [edi + 0x884]
mov ecx, dword [edi + 0x780]
mov bl, 1
sub bl, byte [edi + 0x74]
push edi
mov dword [esp + 0x30], ecx
mov byte [esp + 0x34], bl
mov dword [esp + 0x24], edx
mov dword [edi + 0x884], 0xffffffff
call fcn.000981c0
push 0
mov eax, esi
call fcn.000a3800
cmp dword [edi + 0x7c], 0
je 0x708c7
mov eax, dword [esp + 0x14]
test eax, eax
je 0x708a5
mov ecx, dword [0x5271fc]
mov edx, dword [ecx + 0xb50]
push edx
mov edi, eax
call fcn.000fcd00
mov edi, dword [esp + 0x10]
jmp 0x708e1
mov esi, dword [edi + 0x6c]
push edi
call fcn.00099710
mov eax, dword [edi]
mov ecx, dword [esp + 0x30]
and eax, 0x80000
push eax
push ecx
mov eax, edi
call fcn.00099490
mov dword [edi + 0x6c], esi
jmp 0x708e1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
movsx edx, bl
mov dword [edi + 0x74], edx
mov dword [edi + 0x7b8], eax
mov dword [edi + 0x7bc], ecx
cmp dword [edi + 0x7c], 0
je 0x70907
test byte [edi + 1], 0x10
jne 0x70907
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push edx
push eax
push edi
call fcn.00097880
mov ecx, dword [esp + 0x2c]
mov dword [edi + 0x780], ecx
mov edx, dword [esp + 0x20]
mov dword [edi + 0x884], edx
jmp 0x70a7a
mov eax, dword [edi + 0x784]
test eax, eax
jne 0x70964
cmp bl, 0xff
je 0x7094f
cmp dword [edi + 0x7c], eax
je 0x70a7a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov esi, dword [edi + 0x780]
push eax
push ecx
push edi
call fcn.00097880
mov dword [edi + 0x780], esi
jmp 0x70a7a
test eax, eax
jne 0x70964
test ecx, ecx
je 0x709fc
cmp dword [ecx + 0x18], eax
je 0x709fc
cmp bl, 0xff
jne 0x709fc
push edi
call fcn.000981c0
cmp dword [esi + 0x5cc], 2
jne 0x70a7a
cmp dword [edi + 0x7c], 0
je 0x70a7a
cmp dword [esp + 0x14], 0
je 0x709cd
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xbfc]
mov ecx, dword [esp + 0xb8]
cmp eax, dword [ecx + 0xb50]
je 0x70a7a
mov edx, dword [0x5271fc]
mov eax, dword [edx + 0xb50]
mov edi, dword [esp + 0x14]
push eax
call fcn.000fcd00
mov edi, dword [esp + 0x10]
jmp 0x70a7a
mov esi, dword [edi + 0x6c]
push edi
call fcn.00099710
mov edx, dword [esp + 0xb8]
mov al, byte [edx + 0xb50]
mov ecx, dword [edi]
and ecx, 0x80000
push ecx
push eax
mov eax, edi
call fcn.00099490
mov dword [edi + 0x6c], esi
jmp 0x70a7a
cmp dword [esp + 0x20], 0
je 0x70a7a
test eax, eax
mov dword [esp + 0x20], 0
jbe 0x70a7a
lea ebx, [edi + 0x798]
lea ecx, [ecx]
mov eax, dword [ebx]
push 0
push 1
push 0
call fcn.000b7a30
mov eax, dword [ebx]
call fcn.00074320
mov edx, eax
test edx, edx
je 0x70a5d
mov ecx, dword [edi + 0x790]
imul ecx, dword [edi + 0x78c]
mov edi, edx
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x10]
mov esi, dword [ebx]
call fcn.000b7aa0
mov eax, dword [esp + 0x20]
add eax, 1
add ebx, 4
cmp eax, dword [edi + 0x784]
mov dword [esp + 0x20], eax
jb 0x70a20
mov eax, dword [edi + 0x878]
mov dword [edi + 0x868], eax
test byte [ebp + 0x10], 0x80
je 0x70b19
cmp dword [esp + 0x14], 0
je 0x70ad1
mov edi, dword [ebp + 0x34]
mov ecx, edi
shr ecx, 0x1a
and ecx, 1
push ecx
mov edx, edi
mov eax, edi
shr edx, 0x19
shr eax, 4
mov ecx, edi
and edx, 1
push edx
and eax, 1
shr ecx, 3
push eax
mov eax, dword [esp + 0x20]
and ecx, 1
shr edi, 2
push ecx
and edi, 1
call fcn.000fb110
mov edi, dword [esp + 0x10]
cmp dword [esp + 0x28], 0
je 0x70b05
mov eax, dword [ebp + 0x34]
mov edx, eax
shr edx, 0x18
and edx, 1
push edx
mov ecx, eax
mov edx, eax
shr ecx, 7
and ecx, 1
shr edx, 6
push ecx
mov ecx, dword [esp + 0x30]
and edx, 1
shr eax, 5
push edx
and eax, 1
call fcn.0012dc20
mov eax, dword [ebp + 0x34]
xor eax, dword [edi + 0x87c]
and eax, 0x30000fd
xor dword [edi + 0x87c], eax
test byte [ebp + 0x10], 0x20
je 0x70b58
cmp dword [esp + 0x14], 0
je 0x70b43
mov ecx, dword [ebp + 0x34]
mov edx, dword [esp + 0x14]
mov esi, ecx
sar esi, 0xc
sar ecx, 8
and esi, 0xff
and ecx, 0xf
call fcn.000fb0b0
mov ecx, dword [ebp + 0x34]
xor ecx, dword [edi + 0x87c]
and ecx, 0xfff00
xor dword [edi + 0x87c], ecx
test byte [ebp + 0x11], 1
je 0x70b86
mov eax, dword [esp + 0x28]
test eax, eax
je 0x70b72
mov edx, dword [ebp + 0x34]
shr edx, 0x16
and edx, 1
mov dword [eax + 0x70], edx
mov eax, dword [ebp + 0x34]
xor eax, dword [edi + 0x87c]
and eax, str.Xqv
xor dword [edi + 0x87c], eax
test byte [ebp + 0x11], 4
je 0x70ba3
mov ecx, dword [ebp + 0x34]
not ecx
xor ecx, dword [edi + 0x87c]
and ecx, 0x10000000
xor dword [edi + 0x87c], ecx
test byte [ebp + 0x10], 0x40
je 0x70d4b
mov eax, dword [edi + 0x4a8]
mov edx, dword [edi + 0x468]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x30], edx
cdq
mov esi, eax
mov eax, dword [ebp + 0x38]
cdq
or esi, edx
mov dword [edi + 0x214], esi
mov esi, dword [esp + 0x24]
xor ecx, ecx
or ecx, eax
add esi, 8
mov ebx, 0xbb00b030
mov eax, 7
mov dword [edi + 0x210], ecx
call fcn.000b6530
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x94]
mov dword [edx], 0x4e108
mov eax, dword [eax + 0x94]
mov dword [eax + 4], 0
mov ecx, 2
mov eax, esi
call fcn.0006a150
test byte [esi + 0xb8], 8
jne 0x70c49
mov ecx, dword [esi + 0x90]
mov eax, dword [esi + 0x8c]
cmp ecx, eax
je 0x70c49
sub eax, ecx
cmp eax, 0x400
sbb ecx, ecx
add ecx, 1
push ecx
mov eax, esi
call fcn.000b5bd0
mov ebx, dword [esp + 0x10]
lea ecx, [ecx]
mov eax, esi
call fcn.0006a1a0
test eax, eax
jne 0x70c63
cmp word [ebx + 0xe], 0x8000
je 0x70c50
mov edx, dword [esp + 0x10]
mov ebx, 0xbb00b030
mov eax, 7
mov word [edx + 0xe], 0x8000
call fcn.000b6530
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x94]
mov dword [ecx], 0x8e308
mov edx, dword [eax + 0x94]
mov dword [edx + 4], 1
mov edx, dword [eax + 0x94]
xor ecx, ecx
mov dword [edx + 8], ecx
mov edx, dword [eax + 0x94]
mov dword [edx + 0xc], 0x4e320
mov eax, dword [eax + 0x94]
mov dword [eax + 0x10], ecx
mov ecx, 5
mov eax, esi
call fcn.0006a150
test byte [esi + 0xb8], 8
jne 0x70cf3
mov ecx, dword [esi + 0x90]
mov eax, dword [esi + 0x8c]
cmp ecx, eax
je 0x70cf3
sub eax, ecx
cmp eax, 0x400
sbb ecx, ecx
add ecx, 1
push ecx
mov eax, esi
call fcn.000b5bd0
mov ebx, dword [esp + 0x10]
mov eax, esi
call fcn.0006a1a0
test eax, eax
jne 0x70d0a
cmp word [ebx + 0xe], 0x8000
je 0x70cf7
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
xor edx, edx
or edx, ecx
xor esi, esi
or eax, esi
mov dword [edi + 0x220], edx
add edx, dword [edi + 0x210]
mov dword [edi + 0x224], eax
adc eax, dword [edi + 0x214]
mov dword [edi + 0x218], edx
mov dword [edi + 0x21c], eax
mov eax, dword [esp + 0x30]
lea ecx, [eax + 0x10]
add eax, 0x20
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x3c], eax
test byte [ebp + 0x10], 4
je 0x70d58
or dword [edi + 0x874], 0x10
test byte [ebp + 0x11], 2
je 0x70d70
mov edx, dword [ebp + 0x50]
xor edx, dword [edi + 0x880]
and edx, 0xf
xor dword [edi + 0x880], edx
test byte [ebp + 0x14], 1
je case.0x6f811.0
mov eax, dword [ebp + 0x28]
pop ebx
mov dword [edi + 0x888], eax
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test byte [ebp + 0x10], 1
je 0x70d9f
and dword [edi + 0x874], 0xfffffffe
test byte [ebp + 0x10], 2
je 0x70db7
mov ecx, dword [edi + 0x874]
and ecx, 0xfffffffd
or ch, 0xff
mov dword [edi + 0x874], ecx
test byte [ebp + 0x10], 8
je 0x70dd2
mov edx, dword [edi + 0x874]
and edx, 0xffffffdf
or edx, 0xff0000
mov dword [edi + 0x874], edx
test byte [ebp + 0x10], 0x10
je 0x70e64
mov ebx, dword [edi + 0x884]
or edx, 0xffffffff
xor eax, eax
mov dword [edi + 0x884], edx
mov ecx, dword [esi + 0x85c]
test ecx, ecx
sete al
lea eax, [eax + eax*2]
test eax, eax
je 0x70e0b
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
jmp 0x70e26
lea eax, [ecx + ecx*2]
test eax, eax
je 0x70e1e
imul ecx, ecx, 0xffff8ad0
mov dword [esp + 0x30], ecx
jmp 0x70e22
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
mov edx, dword [0x4e7dbc]
lea ecx, [esp + 0x30]
push ecx
push edx
call sub.WIN32K.SYS_EngWaitForSingleObject
and dword [edi + 0x878], 0xff800000
push edi
call fcn.000981c0
mov dword [edi + 0x884], ebx
mov eax, dword [esi + 0x5cc]
cmp eax, 2
je 0x70e5d
cmp eax, 3
jne 0x70e64
mov dword [edi + 0x10], 1
test byte [ebp + 0x10], 0x20
je 0x70e74
and dword [edi + 0x87c], 0xff8000ff
test byte [ebp + 0x10], 0x40
je 0x70e88
xor eax, eax
mov dword [edi + 0x210], eax
mov dword [edi + 0x214], eax
test byte [ebp + 0x10], 4
je 0x70e95
and dword [edi + 0x874], 0x10
test byte [ebp + 0x10], 0x80
je 0x70ea5
and dword [edi + 0x874], 0xfcffff02
test byte [ebp + 0x11], 1
je 0x70eb2
and byte [edi + 0x876], 0xbf
test byte [ebp + 0x11], 4
je 0x70ebf
and byte [edi + 0x877], 0xef
test byte [ebp + 0x11], 2
je case.0x6f811.0
and dword [edi + 0x880], 0xfffffff0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
xor eax, eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
test byte [edi + 0x874], 1
je 0x70efd
mov dword [ebp + 0x10], 1
test byte [edi + 0x874], 2
je 0x70f14
or dword [ebp + 0x10], 2
movzx eax, byte [edi + 0x875]
mov dword [ebp + 0x20], eax
test byte [edi + 0x874], 0x20
je 0x70f2b
or dword [ebp + 0x10], 8
movzx ecx, byte [edi + 0x876]
mov dword [ebp + 0x24], ecx
test byte [edi + 0x878], 0xf
je 0x70f38
or dword [ebp + 0x10], 0x10
mov eax, dword [edi + 0x868]
mov edx, dword [esi + 0x5cc]
mov ecx, eax
and ecx, 0xf
cmp edx, 1
jne 0x70f5b
cmp ecx, edx
je 0x70f57
cmp ecx, 2
jne 0x70f5b
or al, 0xf
jmp 0x70f69
cmp edx, 2
jne 0x70f6f
cmp ecx, 0xf
jne 0x70f6f
and al, 0xf2
or al, dl
mov dword [edi + 0x868], eax
mov edx, dword [edi + 0x868]
or dword [ebp + 0x10], 0x4a0
mov eax, dword [ebp + 0x10]
and edx, 0x7fffff
mov dword [ebp + 0x30], edx
mov ecx, dword [edi + 0x87c]
xor ecx, 0x10000000
mov dword [ebp + 0x34], ecx
mov edx, dword [edi + 0x210]
or edx, dword [edi + 0x214]
je 0x70fe7
mov ebx, dword [edi + 0x468]
or al, 0x40
mov cl, 0x20
mov dword [ebp + 0x10], eax
mov eax, dword [edi + 0x210]
mov dword [ebp + 0x38], eax
mov eax, dword [edi + 0x210]
mov edx, dword [edi + 0x214]
call fcn.003f4680
mov dword [ebp + 0x3c], eax
mov ecx, dword [ebx + 0x10]
mov dword [ebp + 0x40], ecx
mov edx, dword [ebx + 0x14]
mov dword [ebp + 0x44], edx
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0x48], eax
mov ecx, dword [ebx + 0x24]
mov dword [ebp + 0x4c], ecx
test byte [edi + 0x874], 0x10
je 0x70ff4
or dword [ebp + 0x10], 4
test byte [edi + 0x880], 0xf
je 0x71001
or byte [ebp + 0x11], 2
mov edx, dword [edi + 0x880]
and edx, 0xf
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x14], 1
mov eax, dword [edi + 0x888]
mov dword [ebp + 0x28], eax
mov ecx, dword [edi + 0x3c]
pop ebx
pop edi
pop esi
mov dword [ebp + 0x2c], ecx
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov edx, dword [esi + 0x26c18]
pop ebx
xor eax, eax
pop edi
pop esi
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [ebp + 0x10]
test al, 1
je 0x71077
and dword [ebx + 4], 0xffffff90
mov dword [ebx + 0x24], 0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test ah, 0x10
mov edi, 0x2710
je 0x7108a
and dword [ebx + 4], 0xfffffff0
jmp 0x7120d
test al, 2
je 0x710ec
fld dword [ebp + 0x18]
fcomp qword [0x41be40]
fnstsw ax
test ah, 5
jp 0x710a5
mov dword [ebp + 0x18], 0xc2c80000
fld dword [ebp + 0x18]
fcomp qword [0x41be38]
fnstsw ax
test ah, 0x41
jne 0x710bc
mov dword [ebp + 0x18], 0x42c80000
fld dword [ebp + 0x18]
fmul qword [0x41be38]
call fcn.003f4770
cmp eax, 0xffffd8f0
jle 0x710dc
cmp eax, edi
jge 0x710e3
cmp eax, 0xffffd8f0
jg 0x710e5
mov eax, 0xffffd8f0
jmp 0x710e5
mov eax, edi
or dword [ebx + 4], 1
mov dword [ebx + 0xc], eax
test byte [ebp + 0x10], 4
mov esi, 0x40000000
je 0x71154
fld dword [ebp + 0x1c]
fcomp qword [0x41bc60]
fnstsw ax
test ah, 5
jp 0x7110e
mov dword [ebp + 0x1c], 0
fld dword [ebp + 0x1c]
fcomp qword [0x41be30]
fnstsw ax
test ah, 0x41
jne 0x71121
mov dword [ebp + 0x1c], esi
fld dword [ebp + 0x1c]
fmul qword [0x41c360]
call fcn.003f4770
test eax, eax
jle 0x7113a
cmp eax, 0x4e20
jge 0x71148
xor ecx, ecx
test eax, eax
setle cl
sub ecx, 1
and eax, ecx
jmp 0x7114d
mov eax, 0x4e20
or dword [ebx + 4], 2
mov dword [ebx + 0x10], eax
test byte [ebp + 0x10], 8
je 0x711aa
fld dword [ebp + 0x20]
fcomp qword [0x41c358]
fnstsw ax
test ah, 5
jp 0x71171
mov dword [ebp + 0x20], 0xc3340000
fld dword [ebp + 0x20]
fcomp qword [0x41c350]
fnstsw ax
test ah, 0x41
jne 0x71188
mov dword [ebp + 0x20], 0x43340000
fld dword [ebp + 0x20]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or ah, 0xc
or dword [ebx + 4], 4
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp dword [ebx + 0x14]
fldcw word [esp + 0x14]
test byte [ebp + 0x10], 0x10
je 0x7120d
fld dword [ebp + 0x24]
fcomp qword [0x41bc60]
fnstsw ax
test ah, 5
jp 0x711c7
mov dword [ebp + 0x24], 0
fld dword [ebp + 0x24]
fcomp qword [0x41be30]
fnstsw ax
test ah, 0x41
jne 0x711da
mov dword [ebp + 0x24], esi
fld dword [ebp + 0x24]
fmul qword [0x41c360]
call fcn.003f4770
test eax, eax
jle 0x711f3
cmp eax, 0x4e20
jge 0x71201
xor edx, edx
test eax, eax
setle dl
sub edx, 1
and eax, edx
jmp 0x71206
mov eax, 0x4e20
or dword [ebx + 4], 8
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x10]
test ah, 0x20
je 0x71225
and dword [ebx + 4], 0xffffffdf
mov dword [ebx + 0x24], 0
jmp 0x71354
test al, 0x20
je 0x71354
fld dword [ebp + 0x28]
mov edx, 0x3e99999a
fcomp qword [0x41c140]
fnstsw ax
test ah, 5
jp 0x71245
mov dword [ebp + 0x28], edx
fld dword [ebp + 0x28]
mov ecx, 0x40400000
fcomp qword [0x41c138]
fnstsw ax
test ah, 0x41
jne 0x7125d
mov dword [ebp + 0x28], ecx
fld dword [ebp + 0x2c]
fcomp qword [0x41c140]
fnstsw ax
test ah, 5
jp 0x71270
mov dword [ebp + 0x2c], edx
fld dword [ebp + 0x2c]
fcomp qword [0x41c138]
fnstsw ax
test ah, 0x41
jne 0x71283
mov dword [ebp + 0x2c], ecx
fld dword [ebp + 0x30]
fcomp qword [0x41c140]
fnstsw ax
test ah, 5
jp 0x71296
mov dword [ebp + 0x30], edx
fld dword [ebp + 0x30]
fcomp qword [0x41c138]
fnstsw ax
test ah, 0x41
jne 0x712a9
mov dword [ebp + 0x30], ecx
fld dword [ebp + 0x30]
fmul qword [0x41c360]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or ah, 0xc
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
push eax
fldcw word [esp + 0x18]
fld dword [ebp + 0x2c]
fmul qword [0x41c360]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or ah, 0xc
mov dword [esp + 0x34], eax
fldcw word [esp + 0x34]
fistp qword [esp + 0x44]
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, ebx
fldcw word [esp + 0x1c]
fld dword [ebp + 0x28]
fmul qword [0x41c360]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or ah, 0xc
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x48]
mov edx, dword [esp + 0x48]
push edx
push 0x10
fldcw word [esp + 0x24]
call fcn.0010a180
mov eax, dword [ebx + 0x30]
cmp dword [ebx + 0x28], eax
jne 0x71344
cmp eax, dword [ebx + 0x2c]
jne 0x71344
mov eax, 1
jmp 0x71346
xor eax, eax
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x4bf0], eax
or dword [ebx + 4], 0x20
mov eax, dword [ebp + 0x10]
test ah, 0x40
je 0x7137d
and dword [ebx + 4], 0xffffffbf
mov edx, dword [esp + 0x1c]
mov eax, 0x4e7d84
call fcn.000c3ab0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test al, 0x40
je 0x71360
mov eax, 0x3e8
cmp dword [ebp + 0x34], eax
jae 0x7138e
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x34], edi
jbe 0x71396
mov dword [ebp + 0x34], edi
or dword [ebx + 4], 0x40
mov edx, dword [ebp + 0x34]
mov dword [ebx + 0x20], edx
jmp 0x71360
mov eax, dword [esp + 0x18]
lea esi, [esp + 0x48]
call fcn.0010c270
mov eax, dword [ebp + 0x10]
test al, 2
je 0x713bd
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0x18], ecx
test al, 4
je 0x713c8
mov edx, dword [esp + 0x4c]
mov dword [ebp + 0x1c], edx
test al, 8
je 0x713d3
mov ecx, dword [esp + 0x50]
mov dword [ebp + 0x20], ecx
test al, 0x10
je 0x713de
mov edx, dword [esp + 0x60]
mov dword [ebp + 0x24], edx
test al, 0x20
je 0x713f7
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [ebp + 0x28], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x30], ecx
test al, 0x40
je 0x71402
mov edx, dword [esp + 0x70]
mov dword [ebp + 0x34], edx
cmp eax, 0x8000
jne case.0x6f811.0
test byte [ebx + 4], 0xf
jne 0x7141a
mov dword [ebp + 0x10], 0x9000
test byte [ebx + 4], 0x20
jne 0x71424
or byte [ebp + 0x11], 0x20
test byte [ebx + 4], 0x40
jne case.0x6f811.0
or byte [ebp + 0x11], 0x40
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test byte [ebp + 0x10], 1
je 0x7145a
mov dword [ecx + 0x4bf4], 1
or dword [ebx + 4], 0x6f
jmp 0x71360
mov dword [ecx + 0x4bf4], 0
and dword [ebx + 4], 0xffffff90
jmp 0x71360
mov ecx, dword [esi + 0x2520]
mov eax, dword [ecx]
call dword [eax + 0x124]
mov ecx, dword [eax + 0x4bf4]
pop ebx
pop edi
pop esi
mov dword [ebp + 0x10], ecx
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
mov eax, dword [ebp + 0x10]
test al, 1
je 0x714ba
test al, 2
je 0x714ac
mov edx, dword [ebx + 4]
and dh, 0xfb
or dh, 2
mov dword [ebx + 4], edx
jmp 0x714be
mov eax, dword [ebx + 4]
and ah, 0xfd
or ah, 4
mov dword [ebx + 4], eax
jmp 0x714be
and byte [ebx + 5], 0xf9
mov eax, dword [ebp + 0x10]
test al, 0x10
je 0x714eb
test al, 0x20
je 0x714da
mov ecx, dword [ebx + 4]
and cl, 0x7f
or ch, 1
mov dword [ebx + 4], ecx
jmp 0x71360
mov edx, dword [ebx + 4]
and dh, 0xfe
or dl, 0x80
mov dword [ebx + 4], edx
jmp 0x71360
and dword [ebx + 4], 0xfffffe7f
jmp 0x71360
and dword [ebp + 0x10], 0xfffffff0
mov ecx, dword [ebx + 4]
test ch, 2
mov eax, dword [ebp + 0x10]
je 0x7150a
or al, 3
jmp 0x71511
test ch, 4
je 0x71514
or al, 1
mov dword [ebp + 0x10], eax
mov ebx, dword [ebx + 4]
test bh, 1
je 0x7152f
or dword [ebp + 0x10], 0x30
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
test bl, bl
jns case.0x6f811.0
or dword [ebp + 0x10], 0x10
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xa4
ret 8
pop ebx
pop edi
pop esi
mov eax, 0x80000002
pop ebp
add esp, 0xa4
ret 8
mov eax, 0x80000003
pop ebp
add esp, 0xa4
ret 8