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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x10
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
cmp ecx, 0x13
jle 0x6d958c50
mov eax, 4
xor edi, edi
nop
add eax, eax
add edi, 1
lea edx, [eax + 0xf]
cmp ecx, edx
jg 0x6d958c00
mov dword [esp], edi
call fcn.6d95a960
lea edx, [esi + 1]
mov dword [eax], edi
movzx ecx, byte [esi]
lea edi, [eax + 4]
mov byte [eax + 4], cl
mov eax, edi
test cl, cl
je 0x6d958c3f
lea esi, [esi]
nop
movzx ecx, byte [edx]
add eax, 1
add edx, 1
mov byte [eax], cl
test cl, cl
jne 0x6d958c30
test ebx, ebx
je 0x6d958c45
mov dword [ebx], eax
add esp, 0x10
mov eax, edi
pop ebx
pop esi
pop edi
ret
xor edi, edi
jmp 0x6d958c0c
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0xcc]
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc8]
mov ecx, dword [edi]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x38], edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x1c], eax
mov eax, ecx
and eax, 0xffffffcf
mov dword [edi], eax
mov eax, ecx
and eax, 7
cmp eax, 3
je 0x6d9591c8
and ecx, 4
mov dword [esp + 0x3c], ecx
jne 0x6d959140
test eax, eax
je 0x6d959190
mov esi, dword [esi]
xor edx, edx
mov eax, 0x20
cmp esi, 0x20
jle 0x6d958f49
add eax, eax
add edx, 1
cmp esi, eax
jg 0x6d958f40
mov dword [esp], edx
lea ebx, [esi - 1]
sar ebx, 5
call fcn.6d95a960
mov ebp, eax
mov eax, dword [esp + 0x20]
lea edx, [ebp + 0x14]
lea ecx, [eax + ebx*4]
lea esi, [esi]
nop
mov edi, dword [eax]
add eax, 4
add edx, 4
mov dword [edx - 4], edi
cmp ecx, eax
jae 0x6d958f68
mov eax, dword [esp + 0x20]
add ecx, 1
lea ebx, [ebx*4 + 4]
add eax, 1
cmp ecx, eax
mov eax, 4
cmovb ebx, eax
sar ebx, 2
jmp 0x6d958fa8
test ebx, ebx
je 0x6d959208
mov eax, ebx
sub ebx, 1
mov edi, dword [ebp + ebx*4 + 0x14]
test edi, edi
je 0x6d958fa0
bsr edx, dword [ebp + ebx*4 + 0x14]
mov dword [ebp + 0x10], eax
shl eax, 5
xor edx, 0x1f
sub eax, edx
mov ebx, eax
mov dword [esp], ebp
call fcn.6d95a810
mov edx, dword [esp + 0x24]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x60], edx
test eax, eax
jne 0x6d959218
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x6d959188
lea eax, [esp + 0x9c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d95b340
mov ecx, dword [esp + 0x60]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
lea edi, [ecx + ebx]
and edx, 0xfffff
mov dword [esp + 0x48], eax
lea ecx, [edi - 1]
mov eax, 1
or edx, 0x3ff00000
sub eax, edi
mov dword [esp + 0x40], ecx
test ecx, ecx
mov dword [esp + 0x4c], edx
fld qword [esp + 0x48]
cmovns eax, ecx
fsub dword [0x6da0a280]
fmul qword [str.aCoc]
sub eax, 0x435
fadd qword [0x6da0a290]
fild dword [esp + 0x40]
fmul qword [0x6da0a298]
faddp st(1)
test eax, eax
jle 0x6d959079
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
fmul qword [0x6da0a2a0]
faddp st(1)
fnstcw word [esp + 0x8e]
movzx eax, word [esp + 0x8e]
or ah, 0xc
mov word [esp + 0x8c], ax
fldcw word [esp + 0x8c]
fist dword [esp + 0x50]
fldcw word [esp + 0x8e]
fldz
fcompi st(1)
ja 0x6d959670
fstp st(0)
mov eax, ecx
shl eax, 0x14
add eax, edx
mov dword [esp + 0x4c], eax
mov eax, ebx
sub eax, ecx
lea edx, [eax - 1]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x50]
cmp edx, 0x16
ja 0x6d959240
fld qword [edx*8 + 0x6da0a300]
fst qword [esp + 0x40]
fld qword [esp + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
ja 0x6d959710
mov dword [esp + 0x74], 0
mov dword [esp + 0x64], 0
test eax, eax
jg 0x6d959120
mov edx, 1
mov dword [esp + 0x54], 0
sub edx, eax
mov dword [esp + 0x64], edx
lea esi, [esi]
lea esi, [esi]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x6c], 0
add dword [esp + 0x54], edx
mov dword [esp + 0x68], edx
jmp 0x6d959293
xor esi, esi
cmp eax, 4
jne 0x6d9591b8
mov eax, dword [esp + 0x18]
mov dword [eax], 0xffff8000
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], 3
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0x6da0a279
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
jmp 0x6d958be0
mov dword [esp], ebp
call fcn.6d95aa40
mov eax, dword [esp + 0x18]
mov dword [eax], 1
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], 0x6da0a27d
call 0x6d958be0
mov esi, eax
add esp, 0xac
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x18]
mov dword [eax], 0xffff8000
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc8], 8
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0x6da0a270
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
jmp 0x6d958be0
mov dword [ebp + 0x10], 0
jmp 0x6d958fc7
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.6d95a6e0
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x24]
add edx, eax
sub ebx, eax
mov dword [esp + 0x60], edx
jmp 0x6d958fe6
mov dword [esp + 0x74], 1
mov edx, dword [esp + 0x54]
mov dword [esp + 0x64], 0
test edx, edx
jns 0x6d95926b
mov edx, 1
mov dword [esp + 0x54], 0
sub edx, eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x50]
test eax, eax
jns 0x6d959120
mov eax, dword [esp + 0x50]
sub dword [esp + 0x64], eax
mov dword [esp + 0x50], 0
mov edx, eax
mov dword [esp + 0x68], eax
neg edx
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x14]
cmp eax, 9
ja 0x6d959510
cmp eax, 5
jg 0x6d959690
add edi, 0x3fd
xor eax, eax
cmp edi, 0x7f7
setbe al
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
cmp eax, 4
je 0x6d959f87
cmp eax, 5
je 0x6d959f40
cmp eax, 2
jne 0x6d9599b0
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x28]
mov eax, 1
test ecx, ecx
cmovg eax, ecx
mov dword [esp + 0x28], eax
mov edx, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x40], eax
mov dword [esp], eax
mov dword [esp + 0x9c], edx
call fcn.6d958ba0
mov edi, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
sub eax, 1
mov dword [esp + 0x58], eax
je 0x6d959348
mov eax, 2
cmovns eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov edx, eax
test byte [esp + 0x30], 8
je 0x6d959980
mov eax, 3
sub eax, edx
mov dword [esp + 0x58], eax
cmp dword [esp + 0x40], 0xe
setbe cl
and cl, byte [esp + 0x7c]
test cl, cl
je 0x6d959980
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x68]
jne 0x6d959980
fld qword [esp + 0x48]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x9c], 0
fst qword [esp + 0x58]
test edx, edx
je 0x6d959393
fld1
fcompi st(1)
ja 0x6d95a326
fstp st(0)
jmp 0x6d959395
fstp st(0)
fld qword [esp + 0x58]
fadd st(0)
fadd dword [0x6da0a2bc]
fstp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, 0x3400000
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x6d959933
mov eax, dword [esp + 0x40]
fld qword [esp + 0x58]
mov dword [esp + 0x88], 0
mov dword [esp + 0x7c], eax
fstp qword [esp + 0x80]
mov eax, dword [esp + 0x7c]
fld qword [esp + 0x30]
fld qword [eax*8 + 0x6da0a2f8]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x6d95a215
fnstcw word [esp + 0x8e]
fdivr dword [0x6da0a2c4]
mov edx, dword [esp + 0x7c]
lea ecx, [edi + 1]
movzx eax, word [esp + 0x8e]
or ah, 0xc
mov word [esp + 0x8c], ax
fsubrp st(1)
fld qword [esp + 0x80]
fldcw word [esp + 0x8c]
fist dword [esp + 0x30]
fldcw word [esp + 0x8e]
fild dword [esp + 0x30]
movzx eax, byte [esp + 0x30]
add eax, 0x30
fsubp st(1)
fxch st(1)
mov byte [edi], al
fcomi st(1)
jbe 0x6d9594b5
fstp st(0)
jmp 0x6d95a45e
mov eax, dword [esp + 0x9c]
add eax, 1
mov dword [esp + 0x9c], eax
cmp eax, edx
jge 0x6d959957
fld dword [0x6da0a2b4]
add ecx, 1
fmul st(1), st(0)
fmulp st(2)
fxch st(1)
fldcw word [esp + 0x8c]
fist dword [esp + 0x30]
fldcw word [esp + 0x8e]
fild dword [esp + 0x30]
movzx eax, byte [esp + 0x30]
add eax, 0x30
fsubp st(1)
fxch st(1)
mov byte [ecx - 1], al
fcomi st(1)
ja 0x6d95a45c
fld st(1)
fsubr dword [0x6da0a2b0]
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x6d959460
fstp st(0)
fstp st(0)
mov esi, edi
movzx edx, byte [ecx - 1]
mov edi, ecx
jmp 0x6d9594e6
cmp esi, eax
je 0x6d95a48f
movzx edx, byte [eax - 1]
mov edi, eax
lea eax, [edi - 1]
cmp dl, 0x39
je 0x6d9594d8
add edx, 1
mov byte [eax], dl
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3c], 0x20
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x6d95961b
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], esi
fild dword [esp + 0x28]
fmul qword [0x6da0a2a8]
fldcw word [esp + 0x8c]
fistp dword [esp + 0x28]
fldcw word [esp + 0x8e]
mov eax, dword [esp + 0x28]
add eax, 3
mov dword [esp], eax
mov dword [esp + 0x9c], eax
call fcn.6d958ba0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], 0
mov edi, eax
test ecx, ecx
js 0x6d959722
mov dword [esp + 0x70], 1
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x68]
cmp dword [eax + 0x14], edx
jl 0x6d95998c
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x28]
fld qword [eax*8 + 0x6da0a300]
test edx, edx
jns 0x6d959e50
mov ebx, dword [esp + 0x40]
test ebx, ebx
jg 0x6d959e50
jne 0x6d9599c0
fmul dword [0x6da0a2c0]
fld qword [esp + 0x48]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x6d9599c2
add eax, 2
mov dword [esp + 0x30], 0
mov esi, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], 0
mov byte [esi], 0x31
add edi, 1
mov dword [esp + 0x3c], 0x20
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.6d95aa40
mov eax, dword [esp + 0x48]
test eax, eax
je 0x6d95961b
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.6d95aa40
cmp esi, edi
jb 0x6d95962f
jmp 0x6d959635
sub edi, 1
cmp edi, esi
je 0x6d959635
cmp byte [edi - 1], 0x30
je 0x6d959628
mov dword [esp], ebp
call fcn.6d95aa40
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
mov byte [edi], 0
mov dword [eax], ebx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x6d959654
mov dword [eax], edi
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
or dword [eax], ebx
add esp, 0xac
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
fild dword [esp + 0x50]
fucompi st(1)
fstp st(0)
jp 0x6d959680
je 0x6d9590b1
sub dword [esp + 0x50], 1
jmp 0x6d9590b1
sub eax, 4
mov dword [esp + 0x7c], 0
mov dword [esp + 0x14], eax
cmp eax, 4
je 0x6d959f87
cmp eax, 5
je 0x6d959f40
cmp eax, 2
je 0x6d9592dd
lea esi, [esi]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
add eax, ecx
mov dword [esp + 0x78], eax
add eax, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x9c], eax
test eax, eax
jle 0x6d959f94
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.6d958ba0
mov dword [esp + 0x70], 0
mov dword [esp + 0x14], 3
mov edi, eax
jmp 0x6d959312
sub dword [esp + 0x50], 1
mov dword [esp + 0x74], 0
jmp 0x6d959248
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x60]
sub esi, ebx
lea eax, [esi + 1]
mov edx, dword [edx + 4]
sub ecx, esi
mov dword [esp + 0x9c], eax
cmp ecx, edx
jge 0x6d959e08
mov esi, dword [esp + 0x14]
lea eax, [esi - 3]
and eax, 0xfffffffd
je 0x6d959e13
mov eax, dword [esp + 0x60]
sub eax, edx
add eax, 1
cmp esi, 1
mov esi, dword [esp + 0x40]
setg cl
mov dword [esp + 0x9c], eax
test esi, esi
setg dl
test cl, dl
je 0x6d95978e
cmp eax, esi
jg 0x6d95a620
mov ecx, dword [esp + 0x64]
add dword [esp + 0x54], eax
mov edx, dword [esp + 0x6c]
add eax, ecx
mov esi, ecx
mov dword [esp + 0x64], eax
mov dword [esp], 1
mov dword [esp + 0x30], edx
call fcn.6d95ab90
mov dword [esp + 0x70], 1
mov edx, dword [esp + 0x30]
mov dword [esp + 0x48], eax
test esi, esi
jle 0x6d9597e8
mov ecx, dword [esp + 0x54]
test ecx, ecx
jle 0x6d9597e8
cmp esi, ecx
mov eax, ecx
cmovle eax, esi
sub dword [esp + 0x64], eax
sub ecx, eax
mov dword [esp + 0x9c], eax
sub esi, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x6d959812
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x6d959800
test edx, edx
jne 0x6d95a045
mov eax, dword [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d95ade0
mov ebp, eax
mov dword [esp], 1
call fcn.6d95ab90
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x6d959d90
cmp dword [esp + 0x14], 1
jle 0x6d959dd0
mov ebx, 0x1f
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
sub ebx, eax
sub ebx, 4
and ebx, 0x1f
add edx, ebx
mov dword [esp + 0x9c], ebx
mov eax, ebx
test edx, edx
jle 0x6d959872
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.6d95af60
mov ebp, eax
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x54]
add edx, eax
test edx, edx
jle 0x6d959890
mov eax, dword [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6d95af60
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x14], 2
setg dl
test eax, eax
jne 0x6d959c40
mov eax, dword [esp + 0x40]
test eax, eax
jg 0x6d9599f0
test dl, dl
je 0x6d9599f0
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x6d9599d2
mov eax, dword [esp + 0x30]
mov dword [esp + 8], 0
mov dword [esp + 4], 5
mov dword [esp], eax
call fcn.6d95aab0
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 0x30], eax
call fcn.6d95b0a0
test eax, eax
jle 0x6d9599d2
mov eax, dword [esp + 0x68]
mov esi, edi
add eax, 2
mov dword [esp + 0x2c], eax
jmp 0x6d9595ed
fstp st(0)
fld qword [esp + 0x58]
fadd st(0)
fadd dword [0x6da0a2bc]
fstp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, 0x3400000
mov dword [esp + 0x34], eax
fld qword [esp + 0x58]
fsub dword [0x6da0a2c0]
fld qword [esp + 0x30]
fxch st(1)
fcomi st(1)
ja 0x6d95a3e7
fxch st(1)
fchs
fcompi st(1)
fstp st(0)
ja 0x6d9599c2
jmp 0x6d95995f
fstp st(0)
fstp st(0)
jmp 0x6d95995f
fstp st(0)
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
lea esi, [esi]
nop
mov ecx, dword [esp + 0x60]
test ecx, ecx
jns 0x6d959584
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x6d959732
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x48], 0
jmp 0x6d9597c2
cmp eax, 3
je 0x6d9596c0
jmp 0x6d959518
fstp st(0)
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], 0x10
mov esi, edi
neg eax
mov dword [esp + 0x2c], eax
jmp 0x6d9595fb
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
add eax, 1
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x6d959cc0
add ebx, esi
test ebx, ebx
jle 0x6d959a21
mov eax, dword [esp + 0x48]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.6d95af60
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x28], eax
test edx, edx
jne 0x6d95a39f
mov dword [esp + 0x24], edi
mov esi, dword [esp + 0x28]
mov eax, 1
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x48]
jmp 0x6d959b0d
mov dword [esp], edx
call fcn.6d95aa40
mov eax, 1
test ebx, ebx
js 0x6d95a0f0
or ebx, dword [esp + 0x14]
jne 0x6d959a78
mov ebx, dword [esp + 0x20]
test byte [ebx], 1
je 0x6d95a0f0
mov ebx, dword [esp + 0x24]
add ebx, 1
mov edx, ebx
test eax, eax
jle 0x6d959a90
cmp dword [esp + 0x58], 2
jne 0x6d95a40a
movzx eax, byte [esp + 0x28]
mov byte [ebx - 1], al
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x9c], eax
je 0x6d95a445
mov dword [esp], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.6d95aab0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov ebp, eax
mov dword [esp], edi
cmp edi, esi
je 0x6d959c30
call fcn.6d95aab0
mov dword [esp], esi
mov dword [esp + 8], 0
mov edi, eax
mov dword [esp + 4], 0xa
call fcn.6d95aab0
mov esi, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x24], ebx
add eax, 1
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d958c80
mov dword [esp + 4], edi
mov dword [esp], ebp
lea ebx, [eax + 0x30]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x50], eax
call fcn.6d95b0a0
mov dword [esp + 4], esi
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.6d95b0f0
mov edx, eax
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x6d959a50
mov dword [esp + 4], edx
mov dword [esp], ebp
mov dword [esp + 0x54], edx
call fcn.6d95b0a0
mov edx, dword [esp + 0x54]
mov dword [esp + 0x48], eax
mov dword [esp], edx
call fcn.6d95aa40
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
or eax, ecx
jne 0x6d959f30
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
mov dword [esp + 0x48], edx
and edx, 1
or edx, dword [esp + 0x58]
jne 0x6d959a5d
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
cmp edx, 0x39
je 0x6d95a511
test ebx, ebx
jle 0x6d95a6b7
mov dword [esp + 0x3c], 0x20
lea edx, [esi + 0x31]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov byte [eax], dl
lea ebx, [eax + 1]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
lea esi, [esi]
lea esi, [esi]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call fcn.6d95aa40
mov eax, dword [esp + 0x48]
test eax, eax
je 0x6d959fb3
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x6d959c20
cmp ecx, eax
je 0x6d959c20
mov dword [esp], ecx
call fcn.6d95aa40
mov esi, edi
mov edi, ebx
jmp 0x6d95960f
call fcn.6d95aab0
mov edi, eax
mov esi, eax
jmp 0x6d959aff
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov byte [esp + 0x24], dl
mov dword [esp + 4], eax
call fcn.6d95b0a0
movzx edx, byte [esp + 0x24]
test eax, eax
jns 0x6d9598a4
mov dword [esp], ebp
mov eax, dword [esp + 0x68]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
sub eax, 1
mov dword [esp + 0x2c], eax
call fcn.6d95aab0
movzx edx, byte [esp + 0x24]
mov ebp, eax
mov eax, dword [esp + 0x78]
test eax, eax
setle al
and edx, eax
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x6d95a5b3
test dl, dl
jne 0x6d95a571
mov eax, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
lea esi, [esi]
mov dword [esp + 0x14], edi
mov esi, edi
mov ebx, dword [esp + 0x30]
mov eax, 1
mov edi, dword [esp + 0x40]
jmp 0x6d959cfc
mov dword [esp], ebp
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
call fcn.6d95aab0
mov ebp, eax
mov eax, dword [esp + 0x9c]
add eax, 1
mov dword [esp + 4], ebx
add esi, 1
mov dword [esp], ebp
mov dword [esp + 0x9c], eax
call fcn.6d958c80
add eax, 0x30
mov byte [esi - 1], al
cmp dword [esp + 0x9c], edi
jl 0x6d959cd8
mov edi, dword [esp + 0x14]
mov edx, eax
xor ecx, ecx
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x6d95a08c
mov eax, dword [ebp + 0x10]
cmp ebx, 2
je 0x6d95a0d1
cmp eax, 1
jg 0x6d959d70
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x6d959d70
test eax, eax
mov ebx, esi
setne al
movzx eax, al
shl eax, 4
mov dword [esp + 0x3c], eax
jmp 0x6d959bf0
cmp edi, esi
je 0x6d95a030
mov ebx, esi
lea esi, [esi - 1]
movzx eax, byte [ebx - 1]
cmp al, 0x39
je 0x6d959d68
add eax, 1
mov dword [esp + 0x3c], 0x20
mov byte [esi], al
jmp 0x6d959bf0
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.6d95ade0
cmp dword [esp + 0x14], 1
mov dword [esp + 0x30], eax
jle 0x6d959ff4
mov dword [esp + 0x50], 0
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0x10]
bsr ebx, dword [ebx + eax*4 + 0x10]
xor ebx, 0x1f
jmp 0x6d95983e
cmp ebx, 1
jne 0x6d959839
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 4]
add eax, 1
cmp dword [esp + 0x24], eax
jle 0x6d959839
add dword [esp + 0x64], 1
add dword [esp + 0x54], 1
mov dword [esp + 0x50], 1
jmp 0x6d959839
cmp dword [esp + 0x14], 1
jle 0x6d95978e
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x6c]
lea eax, [ecx - 1]
mov dword [esp + 0x30], eax
cmp esi, eax
jl 0x6d959fbc
mov edx, esi
sub edx, eax
test ecx, ecx
jns 0x6d95a595
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x9c], 0
sub esi, eax
jmp 0x6d9597a2
fnstcw word [esp + 0x8e]
fld qword [esp + 0x48]
mov dword [esp + 0x9c], 1
movzx eax, word [esp + 0x8e]
fld st(0)
fdiv st(2)
or ah, 0xc
mov word [esp + 0x8c], ax
lea eax, [edi + 1]
fldcw word [esp + 0x8c]
fistp dword [esp + 0x14]
fldcw word [esp + 0x8e]
fild dword [esp + 0x14]
movzx ebx, byte [esp + 0x14]
lea edx, [ebx + 0x30]
mov ebx, dword [esp + 0x68]
fmul st(2)
mov byte [edi], dl
add ebx, 1
mov dword [esp + 0x2c], ebx
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jp 0x6d959ed0
lea esi, [esi]
jne 0x6d959ed0
fstp st(0)
fstp st(0)
mov esi, edi
mov edi, eax
jmp 0x6d95961b
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x40]
cmp edx, ebx
je 0x6d95a1eb
fmul dword [0x6da0a2b4]
add edx, 1
add eax, 1
mov dword [esp + 0x9c], edx
fld st(0)
fdiv st(2)
fldcw word [esp + 0x8c]
fistp dword [esp + 0x14]
fldcw word [esp + 0x8e]
fild dword [esp + 0x14]
movzx ebx, byte [esp + 0x14]
lea edx, [ebx + 0x30]
fmul st(2)
mov byte [eax - 1], dl
fsubp st(1)
fldz
fxch st(1)
fucomi st(1)
fstp st(1)
jnp 0x6d959ec0
jmp 0x6d959ed0
mov eax, dword [esp + 0x48]
jmp 0x6d959a5d
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x68]
add eax, edx
mov dword [esp + 0x78], eax
add eax, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x9c], eax
test eax, eax
jle 0x6d95a311
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.6d958ba0
mov dword [esp + 0x14], 5
mov dword [esp + 0x70], 1
mov edi, eax
jmp 0x6d959312
mov dword [esp + 0x70], 1
jmp 0x6d9592e5
mov dword [esp + 0x70], 0
mov dword [esp + 0x14], 3
mov edx, 1
mov eax, 1
jmp 0x6d959301
mov esi, edi
mov edi, ebx
jmp 0x6d95961b
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x54], ecx
sub edx, eax
mov eax, dword [esp + 0x64]
add dword [esp + 0x50], edx
xor edx, edx
mov dword [esp + 0x9c], ecx
mov esi, eax
add eax, ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x6c], eax
jmp 0x6d9597a2
cmp ebx, 1
jne 0x6d959db3
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov eax, dword [eax + 4]
add eax, 1
cmp eax, ebx
jge 0x6d959db3
add dword [esp + 0x64], 1
add dword [esp + 0x54], 1
mov dword [esp + 0x50], 1
jmp 0x6d959dbb
add dword [esp + 0x2c], 1
mov byte [edi], 0x31
mov dword [esp + 0x3c], 0x20
jmp 0x6d959bf0
mov eax, dword [esp + 0x48]
mov dword [esp + 4], edx
mov dword [esp + 0x60], edx
mov dword [esp], eax
call fcn.6d95ade0
mov dword [esp + 4], ebp
mov dword [esp], eax
mov dword [esp + 0x48], eax
call fcn.6d95ac40
mov dword [esp], ebp
mov dword [esp + 0x30], eax
call fcn.6d95aa40
mov edx, dword [esp + 0x60]
sub dword [esp + 0x6c], edx
mov ebp, dword [esp + 0x30]
je 0x6d959812
jmp 0x6d959800
mov dword [esp], ebp
mov dword [esp + 4], 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edx
call fcn.6d95af60
mov ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d95b0a0
mov ecx, dword [esp + 0x14]
test eax, eax
jg 0x6d959d70
jne 0x6d95a0d1
mov edx, dword [esp + 0x20]
and edx, 1
jne 0x6d959d70
cmp dword [ebp + 0x10], 1
mov dword [esp + 0x3c], 0x10
mov ebx, esi
jg 0x6d959bf0
mov eax, dword [ebp + 0x14]
jmp 0x6d959d4d
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x50]
test ebx, ebx
je 0x6d95a4a1
cmp dword [ebp + 0x10], 1
jle 0x6d95a5f5
cmp dword [esp + 0x58], 2
je 0x6d95a4f1
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x28]
mov ebx, edx
mov edi, dword [esp + 0x48]
jmp 0x6d95a199
mov byte [ecx - 1], bl
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov dword [esp + 0x20], ecx
call fcn.6d95aab0
mov dword [esp], ebp
cmp edi, esi
mov dword [esp + 8], 0
cmove edi, eax
mov dword [esp + 4], 0xa
mov dword [esp + 0x14], eax
call fcn.6d95aab0
mov ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d958c80
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
lea ebx, [eax + 0x30]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.6d95b0a0
mov edx, dword [esp + 0x24]
lea ecx, [edx + 1]
test eax, eax
jg 0x6d95a138
mov edx, ebx
mov dword [esp + 0x48], edi
mov eax, edi
mov ebx, ecx
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x3c]
cmp edx, 0x39
je 0x6d95a518
mov dword [esp + 0x48], esi
add edx, 1
mov ecx, eax
mov dword [esp + 0x3c], 0x20
mov eax, dword [esp + 0x24]
mov byte [eax], dl
jmp 0x6d959bf0
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x6d95a532
fstp st(0)
fstp st(0)
cmp ebx, 1
je 0x6d95a559
mov esi, edi
mov dword [esp + 0x3c], 0x10
mov edi, eax
jmp 0x6d95961b
fnstcw word [esp + 0x8e]
fmulp st(1)
fld qword [esp + 0x48]
mov dword [esp + 0x80], edi
mov dword [esp + 0x48], ebp
xor esi, esi
mov ebp, dword [esp + 0x7c]
movzx eax, word [esp + 0x8e]
mov dword [esp + 0x9c], 1
fld st(0)
or ah, 0xc
mov word [esp + 0x8c], ax
jmp 0x6d95a26a
add eax, 1
fmul dword [0x6da0a2b4]
mov esi, ecx
mov dword [esp + 0x9c], eax
fldcw word [esp + 0x8c]
fist dword [esp + 0x30]
fldcw word [esp + 0x8e]
mov edx, dword [esp + 0x30]
test edx, edx
je 0x6d95a28c
fild dword [esp + 0x30]
mov esi, ecx
fsubp st(1)
add edi, 1
add edx, 0x30
mov byte [edi - 1], dl
mov eax, dword [esp + 0x9c]
cmp eax, ebp
jne 0x6d95a258
mov eax, esi
mov ecx, edi
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x80]
test al, al
fcmove st(0), st(1)
fstp st(1)
fld dword [0x6da0a2c4]
fld st(2)
fadd st(1)
fxch st(2)
fcomi st(2)
fstp st(2)
ja 0x6d95a586
fsubrp st(2)
fxch st(1)
fcompi st(1)
ja 0x6d95a45e
fstp st(0)
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x4c], edx
test eax, eax
js 0x6d95a657
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x58], 0
mov esi, dword [eax + 0x14]
test esi, esi
jns 0x6d959595
jmp 0x6d959998
mov dword [esp + 0x14], 5
mov dword [esp + 0x70], 1
jmp 0x6d959fa4
mov eax, dword [esp + 0x40]
test eax, eax
je 0x6d95990a
mov eax, dword [esp + 0x78]
test eax, eax
jle 0x6d95995d
mov dword [esp + 0x88], 0xffffffff
fmul dword [0x6da0a2b4]
fst qword [esp + 0x80]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
fmul dword [0x6da0a2b8]
fadd dword [0x6da0a2bc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
fstp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
lea edx, [edx - 0x3400000]
mov dword [esp + 0x34], edx
mov dword [esp + 0x7c], eax
jmp 0x6d9593e6
mov esi, eax
mov eax, dword [eax + 4]
mov dword [esp], eax
call fcn.6d95a960
lea ecx, [eax + 0xc]
mov ebx, eax
mov eax, dword [esi + 0x10]
mov dword [esp], ecx
lea edx, [eax*4 + 8]
lea eax, [esi + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 4], 1
mov dword [esp], ebx
call fcn.6d95af60
mov dword [esp + 0x28], eax
jmp 0x6d959a35
fstp st(0)
fstp st(0)
mov dword [esp + 0x2c], 2
mov esi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x48], 0
jmp 0x6d9595ed
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], esi
mov edi, dword [esp + 0x60]
cmp edx, 0x39
je 0x6d95a518
mov eax, dword [esp + 0x24]
add edx, 1
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], 0x20
mov byte [eax], dl
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
jmp 0x6d959bf0
mov eax, esi
mov ecx, edi
mov esi, edx
mov edi, dword [esp + 0x60]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x28]
jmp 0x6d959d29
fstp st(0)
fldz
xor eax, eax
mov edx, 1
mov esi, edi
fucompi st(1)
fstp st(0)
mov edi, ecx
setp al
cmovne eax, edx
shl eax, 4
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x88]
add eax, 1
mov dword [esp + 0x2c], eax
jmp 0x6d95961b
add dword [esp + 0x88], 1
mov edx, 0x31
jmp 0x6d9594f1
test eax, eax
jle 0x6d95a4e7
mov dword [esp], ebp
mov dword [esp + 4], 1
mov dword [esp + 0x14], edx
call fcn.6d95af60
mov ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.6d95b0a0
mov edx, dword [esp + 0x14]
test eax, eax
jle 0x6d95a69f
cmp edx, 0x39
je 0x6d95a511
mov dword [esp + 0x58], 0x20
lea edx, [esi + 0x31]
cmp dword [ebp + 0x10], 1
jle 0x6d95a674
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], 0x10
lea ebx, [eax + 1]
jmp 0x6d95a1e0
mov eax, dword [esp + 0x24]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov esi, ebx
mov byte [eax], 0x39
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
jmp 0x6d959d70
fadd st(0)
fcomi st(1)
ja 0x6d95a555
fucompi st(1)
fstp st(0)
jp 0x6d95a204
jne 0x6d95a204
test byte [esp + 0x14], 1
je 0x6d95a204
jmp 0x6d95a559
fstp st(0)
fstp st(0)
movzx edx, byte [eax - 1]
mov esi, edi
mov edi, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], eax
jmp 0x6d9594e6
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
jmp 0x6d9598b8
fstp st(0)
fstp st(0)
fstp st(0)
mov esi, edi
mov edi, ecx
jmp 0x6d9594e6
mov eax, ecx
add dword [esp + 0x54], ecx
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x64]
add eax, ecx
mov esi, ecx
mov dword [esp + 0x64], eax
jmp 0x6d9597a2
mov eax, dword [esp + 0x48]
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov dword [esp], eax
mov byte [esp + 0x24], dl
call fcn.6d95aab0
movzx edx, byte [esp + 0x24]
mov dword [esp + 0x48], eax
test dl, dl
jne 0x6d95a571
mov eax, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
jmp 0x6d959a07
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x6d95a11a
test eax, eax
jg 0x6d95a4a5
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x24]
lea ebx, [eax + 1]
jmp 0x6d95a1e0
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x6c]
lea ecx, [eax - 1]
mov dword [esp + 0x30], ecx
cmp esi, ecx
jl 0x6d959fbc
sub esi, ecx
mov ecx, dword [esp + 0x64]
add dword [esp + 0x54], eax
mov dword [esp + 0x9c], eax
mov edx, esi
add eax, ecx
mov esi, ecx
mov dword [esp + 0x64], eax
jmp 0x6d9597a2
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
jmp 0x6d9597c2
mov ebx, dword [ebp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
test ebx, ebx
mov dword [esp + 0x48], eax
jne 0x6d95a4fd
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
lea ebx, [eax + 1]
jmp 0x6d95a1e0
jne 0x6d95a6aa
test dl, 1
jne 0x6d95a4d7
mov dword [esp + 0x58], 0x20
jmp 0x6d95a4e7
cmp dword [ebp + 0x10], 1
mov dword [esp + 0x3c], 0x10
jg 0x6d959bd1
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
shl eax, 4
mov dword [esp + 0x3c], eax
jmp 0x6d959bd1