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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x248
mov edx, dword [esp + 0x268]
mov dword [esp + 0xc4], edx
mov eax, dword [esp + 0x25c]
mov ebx, dword [esp + 0x264]
mov ecx, dword [esp + 0x26c]
mov edx, dword [esp + 0x270]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc8], ecx
xor ecx, ecx
mov dword [esp + 0xbc], edx
mov eax, dword [0x7adbc0]
xor eax, esp
mov dword [esp + 0x244], eax
mov esi, dword [esp + 0x260]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x224], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x22c], ecx
mov dword [esp + 0x1f0], ecx
mov dword [esp + 0x230], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x234], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x238], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x240], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x210], ecx
test ebx, 0x8010000
je 0x652002
test dword [esp + 0xc0], 0x10000
je 0x651ffb
lea eax, [esp + 0x27b]
and eax, 0xfffffffc
movsx edx, byte [eax]
jmp 0x652007
mov edx, 0x2c
jmp 0x652007
mov edx, 0x2e
test esi, esi
jle 0x6544ca
mov ebp, ebx
mov eax, ebp
and eax, 0x80
mov ecx, ebp
mov ebx, eax
and ecx, 0x80000000
shl eax, 0x18
mov edi, dword [esp + 0xb8]
and ecx, eax
shl ebx, 4
shr ecx, 0x13
or ebx, ecx
movsx eax, byte [edi]
test ebp, 0x20
je 0x652072
lea ecx, [eax - 9]
cmp ecx, 4
ja 0x6544c3
mov ebp, edi
lea eax, [ebp + 1]
mov ebp, eax
dec esi
je 0x654497
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x65204f
cmp eax, 0x20
je 0x65204f
mov dword [esp + 0xb8], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ecx
cmp eax, 0x2d
jne 0x65208a
add ebx, 8
jmp 0x65208f
cmp eax, 0x2b
jne 0x6520a0
inc dword [esp + 0xb8]
add ebx, 2
dec esi
je 0x653ce6
xor eax, eax
fldz
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x34], 9
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0xb8]
movsx ebp, byte [edx]
lea eax, [ebp - 0x2b]
cmp eax, 0x4d
ja 0x652320
movzx eax, word [eax*2 + 0x74c2b0]
add eax, 0x6520ff
jmp eax
fstp st(0)
mov dword [esp + 0xb4], edx
test bl, 8
je 0x65225f
fld qword [0x74cfa8]
jmp 0x652265
fld qword [0x74cfa0]
and ebx, 0xfffffff7
mov eax, ebx
mov ecx, dword [esp + 0xc0]
or eax, 0xc000000
test ecx, 0x40000000
je 0x652280
mov ebx, eax
test cl, 2
je 0x652352
test esi, esi
je 0x652352
cmp byte [edx], 0x20
jne 0x652352
inc edx
dec esi
jne 0x652291
jmp 0x652352
cmp byte [eax - 1], 0x66
je 0x652249
mov edx, ecx
neg ecx
lea esi, [eax + ecx]
jmp 0x652352
cmp ebp, 9
jne 0x652335
test byte [esp + 0xc0], 1
jne 0x652423
jmp 0x652352
cmp ebp, 0x20
jne 0x652352
test byte [esp + 0xc0], 2
jne 0x652423
test byte [esp + 0xc0], 0x40
jne 0x652375
cmp ebp, dword [esp + 0x38]
jne 0x654049
test bl, 1
jne 0x654049
mov dword [esp + 0x58], 0
or ebx, 1
jmp 0x652423
mov ebp, 0x30
cmp dword [esp + 0x54], 0
je 0x652410
add ebp, 0xffffffd0
or ebx, 4
xor eax, eax
mov ecx, ebx
and ecx, 0x201
cmp ecx, 0x200
mov edi, dword [esp + 0x58]
sete al
neg eax
mov ecx, dword [esp + 0xb0]
inc dword [esp + 0x54]
lea eax, [edi + eax + 1]
mov dword [esp + 0x58], eax
cmp ecx, dword [esp + 0x34]
je 0x6523db
mov edi, dword [esp + 0x74]
mov eax, edi
mov ecx, dword [esp + 0x20]
shl eax, cl
inc dword [esp + 0xb0]
lea eax, [eax + edi*8]
add eax, ebp
mov dword [esp + 0x74], eax
jmp 0x652423
cmp dword [esp + 0x78], 2
jae 0x652407
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], ebp
mov dword [esp + ecx*4 + 0x1c8], eax
inc ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0xb0], 1
jmp 0x652423
or dword [esp + 0xac], ebp
jmp 0x652423
mov eax, ebx
or ebx, 4
and eax, 1
add dword [esp + 0x58], eax
xor eax, 1
add dword [esp + 0x1c], eax
inc edx
dec esi
jne 0x6520e1
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x40], 0
test bl, 4
mov edx, ebx
jne 0x65245a
mov ebp, dword [esp + 0xb4]
and edx, 0x40
mov dword [esp + 0x14], edx
je 0x65246a
mov ebp, dword [esp + 0xb8]
test dword [esp + 0xc0], 0x8000
je 0x6524a5
test dword [esp + 0xc0], 0x80000000
je 0x652496
test esi, esi
je 0x6524a5
mov edx, dword [esp + 0xb8]
cmp byte [edx], 0
jne 0x65249a
jmp 0x6524a5
test esi, esi
je 0x6524a5
or ebx, 0x3000000
jmp 0x653c79
mov edx, ebx
and edx, 0x200
mov dword [esp], edx
je 0x6524bc
mov edx, ebx
and edx, 0x54
cmp edx, 0x54
jne 0x65249a
cmp dword [esp + 0x54], 0
jne 0x6524f5
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x6524cf
fchs
mov eax, dword [esp + 0xc0]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x653c79
mov ebx, edx
jmp 0x653c79
test bl, 0x20
je 0x652501
cmp dword [esp + 0x14], 0
je 0x65249a
fstp st(0)
test bl, 0x10
je 0x652558
cmp dword [esp + 0x3c], 6
jbe 0x652525
mov esi, ebx
and esi, 8
test ebx, 0x80
jne 0x65386a
jmp 0x6537cf
mov edx, dword [esp + 0x40]
mov edi, edx
neg edi
test ebx, 0x80
mov esi, dword [esp + 0xc8]
jne 0x65253e
mov edi, edx
test dword [esp + 0xc0], 0x400
jne 0x652550
mov esi, 0
sub edi, esi
mov dword [esp + 0x18], edi
jmp 0x652565
mov edx, dword [esp + 0xc8]
neg edx
mov dword [esp + 0x18], edx
cmp dword [esp], 0
je 0x65275d
shl ecx, 2
neg ecx
shl eax, cl
cmp dword [esp + 0x54], 8
ja 0x6525ac
mov dword [esp + 0x14], 0
test eax, eax
jle 0x652598
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x65258d
mov dword [esp + 0x14], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x74], 1
jmp 0x652741
mov edx, dword [esp + 0x78]
lea ecx, [edx + 1]
mov dword [esp + 0x74], ecx
mov dword [esp + ecx*4 + 0x1c4], eax
test eax, eax
jne 0x6525d3
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x1c4], 0
je 0x6525c4
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x6526d0
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x6525ee
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c8], eax
cmp dword [esp + 0x14], 0
je 0x6526d0
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 1
jbe 0x652741
mov eax, dword [esp + 0x74]
lea eax, [eax - 1]
shr eax, 1
je 0x65406a
xor esi, esi
mov dword [esp + 0x6c], ebx
neg edx
mov dword [esp + 0x70], ebp
mov dword [esp], eax
nop
lea esi, [esi]
mov eax, dword [esp + esi*8 + 0x1cc]
mov ecx, edx
mov ebx, eax
shr ebx, cl
mov edi, dword [esp + 0x14]
mov ecx, edi
or dword [esp + esi*8 + 0x208], ebx
mov ebx, dword [esp + esi*8 + 0x1d0]
mov ebp, ebx
shl eax, cl
mov ecx, edx
shr ebp, cl
mov ecx, edi
shl ebx, cl
or eax, ebp
mov dword [esp + esi*8 + 0x20c], eax
mov dword [esp + esi*8 + 0x210], ebx
inc esi
cmp esi, dword [esp]
jb 0x652640
mov ebx, dword [esp + 0x6c]
lea eax, [esi + esi + 1]
mov ebp, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x652741
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
neg ecx
mov edx, dword [esp + esi*4 + 0x1c8]
mov edi, edx
shr edi, cl
mov ecx, eax
shl edx, cl
or dword [esp + esi*4 + 0x204], edi
mov dword [esp + esi*4 + 0x208], edx
jmp 0x652741
cmp dword [esp + 0x74], 0
je 0x652741
cmp dword [esp + 0x74], 0x18
jle 0x654076
mov esi, dword [esp + 0x74]
lea edi, [esp + 0x1c4]
lea edx, [esp + 0x204]
sub edx, edi
lea ecx, [esi*4]
xor esi, esi
xor eax, eax
cmp edx, ecx
setg al
neg edx
cmp edx, ecx
mov dword [esp], eax
mov eax, esi
setg al
mov edx, dword [esp]
or edx, eax
je 0x654076
mov eax, dword [esp + 0x74]
lea esi, [esp + 0x208]
lea ecx, [esp + 0x1c8]
lea edx, [eax*4]
push edx
push ecx
push esi
call fcn.0065d430
add esp, 0xc
mov edx, dword [esp + 0x54]
sub edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*4]
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
jmp 0x6534c6
test bl, 1
je 0x65276c
mov edx, dword [esp + 0x58]
sub dword [esp + 0x18], edx
jmp 0x65277b
mov edx, dword [esp + 0x18]
sub edx, dword [esp + 0xc4]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
add edx, esi
cmp edx, 0xfffffebd
jge 0x652797
mov esi, ebx
and esi, 8
jmp 0x65386a
cmp edx, 0x135
jle 0x6527a9
mov esi, ebx
and esi, 8
jmp 0x6537cf
mov edi, esi
mov esi, dword [esp + 0x54]
lea edx, [esi - 0x1b]
test edx, edx
lea edx, [edi + esi - 0x1b]
jg 0x6527bc
mov edx, edi
mov dword [esp + 0x40], edx
test edx, edx
jne 0x6527d8
cmp dword [esp + 0x54], 0x12
ja 0x6527d8
mov dword [esp + 0x34], 0
jmp 0x653b22
mov edi, ebx
or edi, 0x100
lea esi, [edx + 0x16]
cmp esi, 0x2c
ja 0x6527ea
mov ebx, edi
cmp dword [esp + 0x54], 0xf
jbe 0x652817
cmp dword [esp + 0x54], 0x10
jbe 0x652806
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jmp 0x652840
cmp dword [esp + 0x1c8], 0x35afe535
jb 0x652817
test al, 1
jne 0x6527f8
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jne 0x6527cb
cmp dword [esp + 0x40], 0
jl 0x652840
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
lea edi, [edx + esi]
cmp edi, 0x25
jle 0x653b13
cmp dword [esp + 0x54], 9
ja 0x6539b3
mov dword [esp + 0x78], 0
test eax, eax
jle 0x652866
mov edx, dword [esp + 0x78]
add eax, eax
inc edx
test eax, eax
jg 0x65285b
mov dword [esp + 0x78], edx
mov dword [esp + 0x208], eax
mov eax, dword [esp + 0x78]
neg eax
add eax, 0x20
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], 1
cmp dword [esp + 0x18], 0
je 0x65294f
mov eax, dword [esp + 0x74]
shl eax, 5
cmp eax, 0x40
ja 0x65294f
mov edx, dword [esp + 0x20c]
test edx, 0x7ff
jne 0x65294f
cmp dword [esp + 0x74], 2
mov eax, dword [esp + 0x208]
jae 0x6528c3
mov edx, 0
mov dword [esp], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x6528f9
mov ecx, dword [esp + 0x78]
mov esi, eax
mov eax, esi
shl ecx, 0x14
shr esi, 0xb
add ecx, 0x3fe00000
and esi, 0xffefffff
shr edx, 0xb
or esi, ecx
shl eax, 0x15
mov dword [esp], esi
or edx, eax
jmp 0x652933
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x65291d
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x652933
mov ecx, eax
mov edi, dword [esp]
mov esi, edi
shr edx, cl
neg ecx
shl esi, cl
mov ecx, eax
shr edi, cl
or edx, esi
mov dword [esp], edi
mov eax, dword [esp]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
fld qword [esp + 0x14]
mov dword [esp + 0x34], 0
jmp 0x653c48
cmp dword [esp + 0x40], 0
je 0x6534c6
xor eax, eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
cmp dword [esp + 0x74], 2
jb 0x652a84
mov eax, dword [esp + 0x210]
shr eax, 0x1f
mov edx, dword [esp + 0x20c]
add edx, eax
mov dword [esp + 0x20c], edx
cmp edx, eax
jae 0x652a5c
mov eax, 1
mov dword [esp + 0x204], 0
mov dword [esp + 0x74], eax
cmp dword [esp + 0x208], 0xffffffff
je 0x652a14
lea eax, [esp + 0x208]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
jmp 0x652a34
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x652a16
mov dword [esp + 0x74], edx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x74], 0
je 0x652a3d
mov edx, dword [esp + 0x34]
inc eax
mov dword [edx], eax
jmp 0x652a93
inc dword [esp + 0x78]
lea eax, [esp + 0x208]
mov dword [eax], 0x80000000
mov dword [esp + 0x74], 1
mov dword [esp + 0x34], eax
jmp 0x652a93
mov eax, 2
mov dword [esp + 0x74], eax
test edx, edx
jne 0x6540ee
dec eax
lea edx, [esp + eax*4 + 0x204]
cmp dword [edx], 0
je 0x652a6d
mov dword [esp + 0x74], eax
mov dword [esp + 0x34], edx
jmp 0x652a93
mov eax, dword [esp + 0x74]
lea edx, [esp + eax*4 + 0x204]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], eax
lea ecx, [edx + 0x2f]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
cmp ecx, 0x5e
ja 0x652b65
mov esi, edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], eax
movsx edx, word [esi*2 + 0x74ccfe]
mov ecx, dword [esi*8 + 0x74cb1c]
mov edi, dword [esi*8 + 0x74cb18]
mov dword [esp + 0x58], 2
mov dword [esp + 0x38], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x6540fe
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x652b4f
mov dword [esp + 0x58], edx
jmp 0x6530b0
cmp dword [esp + 0x40], 0
jl 0x6541d5
mov eax, edx
mov edx, eax
sar edx, 3
lea esi, [edx + edx]
movzx ecx, word [esi + 0x74cee2]
lea edi, [edx + edx + 2]
shr ecx, 5
cmp ecx, eax
jle 0x652b8e
mov edi, esi
movzx edx, word [edi + 0x74cee0]
mov esi, edx
and esi, 0x1f
shr edx, 5
sub eax, edx
mov dword [esp + 0x40], eax
movsx eax, word [esi*2 + 0x74cf58]
mov dword [esp + 0x18], eax
mov ecx, dword [esi*8 + 0x74ce64]
mov eax, dword [esi*8 + 0x74ce60]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], 2
movsx edx, word [esi*2 + 0x74ccfe]
mov ecx, dword [esi*8 + 0x74cb1c]
mov edi, dword [esi*8 + 0x74cb18]
mov dword [esp + 0x14], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x6541c1
mov esi, dword [esp + 0x54]
dec esi
lea ecx, [esp + esi*4 + 0x184]
cmp dword [ecx], 0
lea edx, [esi*4]
je 0x652c0b
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], esi
mov dword [esp + 8], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mul dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x148]
mov ecx, dword [ecx]
mov dword [esp + esi*4 + 0x108], 0
mov dword [esp + 0x44], ecx
mov dword [esp + esi*4 + 0xc8], eax
mov dword [esp + esi*4 + 0xcc], edx
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x44]
mul dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x54]
xor eax, eax
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + ecx*4 + 0xc8]
add edi, esi
cmp edi, esi
mov dword [esp + ecx*4 + 0x104], eax
setb al
add eax, dword [esp + 0x50]
mov dword [esp + ecx*4 + 0xc8], edi
mov dword [esp + ecx*4 + 0xc4], eax
dec ecx
js 0x652d4b
mov eax, dword [esp + 0x54]
shr eax, 1
je 0x6541b7
mov edi, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x1c], ecx
lea esi, [esp + edi + 0x104]
mov dword [esp], esi
lea esi, [esp + edi + 0xc4]
xor edi, edi
mov ebp, esi
mov esi, dword [esp]
lea ecx, [edx*8]
inc edx
neg ecx
mov dword [esi + ecx - 4], edi
mov dword [ebp + ecx - 4], edi
mov dword [esi + ecx - 8], edi
mov dword [ebp + ecx - 8], edi
cmp edx, eax
jb 0x652cf1
mov ebp, dword [esp + 0x70]
lea eax, [edx + edx + 1]
mov ecx, dword [esp + 0x1c]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x54]
jae 0x652d4b
shl eax, 2
xor esi, esi
mov dword [esp + 0x6c], ebx
neg eax
mov ebx, dword [esp + 0x20]
lea edx, [esp + ebx + 0x104]
mov dword [eax + edx], esi
lea edi, [esp + ebx + 0xc4]
mov dword [eax + edi], esi
mov ebx, dword [esp + 0x6c]
test ecx, ecx
je 0x652def
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov ebp, 2
lea esi, [esp + ecx*4 + 0x104]
lea ebx, [esp + ecx*4 + 0xc4]
mov eax, dword [esp + ecx*4 + 0x184]
mov edx, dword [esp + ebp*4 + 0x144]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x8c]
mul dword [esp + 0x90]
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x94]
mov edi, dword [ebx + ebp*4]
add edi, edx
mov dword [ebx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x98]
mov edx, dword [ebx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebx + ebp*4 - 4], edx
setb al
add dword [esi + ebp*4 - 8], eax
dec ebp
jne 0x652d6e
dec ecx
jne 0x652d5b
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
lea eax, [edx + 2]
mov dword [esp + 0x58], eax
lea edi, [ecx + esi]
mov esi, dword [esp + edx*4 + 0xcc]
mov dword [esp + 0x38], edi
lea ecx, [esp + edx*4 + 0x18c]
mov dword [esp + 0x1c], ecx
lea edx, [edx + 1]
mov dword [ecx], esi
mov dword [esp], edx
cmp eax, 1
je 0x652f05
mov ecx, edx
mov dword [esp + 0x20], 0
shr ecx, 1
je 0x6541ad
mov edi, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x3c], ecx
lea esi, [esp + edi*4 + 0xc8]
mov dword [esp + 0x40], esi
lea esi, [esp + edi*4 + 0x188]
lea eax, [esp + edi*4 + 0x108]
mov dword [esp + 0x6c], ebx
mov edi, edx
mov ebp, esi
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x40]
inc edx
add ecx, dword [edi + eax]
mov ebx, dword [edi + esi]
add ebx, ecx
cmp ebx, ecx
mov ecx, 0
mov dword [edi + ebp], ebx
mov ebx, ecx
setb bl
add ebx, dword [edi + eax - 4]
mov esi, dword [edi + esi - 4]
add esi, ebx
cmp esi, ebx
mov dword [edi + ebp - 4], esi
setb cl
add edi, 0xfffffff8
cmp edx, dword [esp + 0x3c]
jb 0x652e71
mov dword [esp + 0x20], ecx
lea eax, [edx + edx + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x652eff
shl eax, 2
mov esi, dword [esp + 0x54]
neg eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x6c], ebx
lea ecx, [esp + esi*4 + 0x108]
add edx, dword [eax + ecx + 4]
lea ebx, [esp + esi*4 + 0xc8]
add edx, dword [eax + ebx + 4]
lea edi, [esp + esi*4 + 0x188]
mov dword [eax + edi + 4], edx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov esi, dword [eax]
jmp 0x652f05
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
test esi, esi
jne 0x652f22
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x652f0d
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x188]
test esi, esi
jle 0x65419b
mov eax, dword [esp + 0x18]
add esi, esi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x188], esi
cmp dword [esp + 0x58], 2
lea ecx, [eax + edx - 1]
mov dword [esp + 0x38], ecx
jb 0x652fdf
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
shr ecx, 1
je 0x65410a
xor eax, eax
mov edx, dword [esp + eax*8 + 0x18c]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x188], esi
mov esi, dword [esp + eax*8 + 0x190]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x18c], edx
mov dword [esp + eax*8 + 0x190], esi
inc eax
cmp eax, ecx
jb 0x652f66
lea eax, [eax + eax + 1]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x58]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x652fd4
mov ecx, eax
mov edx, dword [esp + ecx*4 + 0x188]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x184], eax
mov dword [esp + ecx*4 + 0x188], edx
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x652fec
jmp 0x652ffb
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x6530a5
dec dword [esp + 0x58]
cmp dword [esp + 0x58], 2
jb 0x6530a5
mov eax, dword [esp + 0x190]
shr eax, 0x1f
mov edx, dword [esp + 0x18c]
add edx, eax
mov dword [esp + 0x18c], edx
cmp edx, eax
jae 0x65307e
mov eax, 1
mov dword [esp + 0x184], 0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x188], 0xffffffff
je 0x653042
lea eax, [esp + 0x188]
mov edx, dword [eax]
jmp 0x65305e
mov ecx, eax
dec ecx
lea eax, [esp + ecx*4 + 0x184]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x653044
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x58], 0
je 0x653063
inc edx
mov dword [eax], edx
jmp 0x6530b0
inc dword [esp + 0x38]
lea eax, [esp + 0x188]
mov dword [eax], 0x80000000
mov dword [esp + 0x58], 1
jmp 0x6530b0
mov dword [esp + 0x58], 2
test edx, edx
jne 0x6540fe
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x653092
mov dword [esp + 0x58], edx
jmp 0x6530b0
mov eax, dword [esp + 0x58]
lea eax, [esp + eax*4 + 0x184]
mov eax, dword [eax]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
lea edx, [ecx + esi]
mov dword [esp + 0x20], edx
lea edi, [ecx + esi - 1]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edi
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mul dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x58]
lea esi, [esp + esi*4 + 0xc4]
mov dword [esi], eax
mov dword [esi + 4], edx
dec ecx
je 0x653187
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], esi
xor esi, esi
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp]
mov edx, dword [esp + ecx*4 + 0x184]
mov dword [esp + ebx*4 + 0x104], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x5c]
mul dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x64]
mov eax, esi
mov edi, dword [esp + ebx*4 + 0xc4]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0xc4], edi
setb al
dec ebx
add eax, dword [esp + 0x68]
mov dword [esp + ebx*4 + 0xc4], eax
dec ecx
jne 0x653120
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x104], 0
dec eax
js 0x65322b
mov edx, dword [esp + 0x3c]
shr edx, 1
je 0x654191
mov edi, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], esi
lea ecx, [esp + edi*4 + 0xc0]
mov dword [esp + 0x14], ecx
lea ecx, [esp + edi*4 + 0x100]
mov dword [esp], ecx
xor edi, edi
mov ecx, eax
mov ebp, dword [esp]
mov esi, dword [esp + 0x14]
inc eax
mov dword [ecx + ebp], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebp - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x6531d7
mov ebp, dword [esp + 0x70]
lea eax, [eax + eax + 1]
mov esi, dword [esp + 0x18]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x3c]
jae 0x65322b
shl eax, 2
mov ecx, dword [esp + 0x3c]
neg eax
mov dword [esp + 0x6c], ebx
xor ebx, ebx
lea edx, [esp + ecx*4 + 0x100]
mov dword [eax + edx + 4], ebx
lea edi, [esp + ecx*4 + 0xc0]
mov dword [eax + edi + 4], ebx
mov ebx, dword [esp + 0x6c]
dec dword [esp + 0x74]
je 0x6532ea
mov dword [esp + 0x18], esi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x58]
mov ebp, eax
test eax, eax
je 0x6532d7
lea ebx, [esp + esi*4 + 0x104]
lea ecx, [esp + esi*4 + 0xc4]
mov eax, dword [esp + esi*4 + 0x204]
mov edx, dword [esp + ebp*4 + 0x184]
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x9c]
mul dword [esp + 0xa0]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0xa4]
mov edi, dword [ecx + ebp*4]
add edi, edx
mov dword [ecx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0xa8]
mov edx, dword [ecx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebp*4 - 4], edx
setb al
add dword [ebx + ebp*4 - 8], eax
dec ebp
jne 0x653261
mov eax, dword [esp + 0x58]
dec esi
jne 0x653249
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx - 0x140]
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x6533ed
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
shr edx, 1
je 0x654187
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x20], edx
lea ecx, [esp + edi*4 + 0x204]
mov dword [esp], ecx
lea ecx, [esp + edi*4 + 0x104]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x70], ebp
mov edi, eax
mov ebx, dword [esp]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
inc eax
mov ecx, dword [edi + esi]
add edx, dword [edi + ebp]
add ecx, edx
cmp ecx, edx
mov edx, 0
mov dword [edi + ebx], ecx
mov ecx, edx
setb cl
add ecx, dword [edi + ebp - 4]
mov ebp, dword [edi + esi - 4]
add ebp, ecx
cmp ebp, ecx
mov dword [edi + ebx - 4], ebp
setb dl
add edi, 0xfffffff8
cmp eax, dword [esp + 0x20]
jb 0x65335e
mov dword [esp + 0x18], edx
lea eax, [eax + eax + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x1c]
jae 0x6533e7
shl eax, 2
mov dword [esp + 0x6c], ebx
sub esi, eax
mov ebx, dword [esp + 0x1c]
neg eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + ebx*4 + 0x104]
add edx, dword [eax + ecx + 4]
add edx, dword [esi + 4]
lea esi, [esp + ebx*4 + 0x204]
mov dword [eax + esi + 4], edx
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax]
jmp 0x6533ed
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
jne 0x65340a
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x204]
cmp dword [eax], 0
je 0x6533f5
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x6534c6
dec dword [esp + 0x78]
add eax, eax
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 2
jb 0x6534b8
mov eax, dword [esp + 0x74]
lea ecx, [eax - 1]
shr ecx, 1
je 0x654116
xor eax, eax
mov edx, dword [esp + eax*8 + 0x20c]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x208], esi
mov esi, dword [esp + eax*8 + 0x210]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x20c], edx
mov dword [esp + eax*8 + 0x210], esi
inc eax
cmp eax, ecx
jb 0x653442
lea eax, [eax + eax + 1]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x74]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x6534b8
mov ecx, eax
mov esi, dword [esp + 0x14]
mov edx, dword [esp + ecx*4 + 0x208]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x204], eax
mov dword [esp + ecx*4 + 0x208], edx
mov eax, dword [esi]
jmp 0x6534be
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp eax, 1
sbb dword [esp + 0x74], 0
mov eax, dword [esp + 0xc0]
mov edx, eax
shr edx, 0x16
and eax, 0x80000000
and edx, 7
or eax, edx
jne 0x6534e3
mov edx, 6
mov eax, edx
and eax, 2
test dl, 4
je 0x653501
test eax, eax
mov eax, 0xaaaa
jne 0x6534fb
mov eax, 0xfa
mov dword [esp + 0x14], eax
jmp 0x653522
test eax, eax
je 0x65350f
mov dword [esp + 0x14], 0xfa00
jmp 0x653522
mov eax, 0xa8a8
test dl, 1
je 0x65351e
mov eax, 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
lea ecx, [eax + 0x432]
mov dword [esp + 0x54], ecx
cmp ecx, 0x35
jle 0x65353f
mov dword [esp + 0x54], 0x35
jmp 0x65354a
cmp dword [esp + 0x54], 0
js 0x65278d
mov ecx, dword [esp + 0x54]
mov esi, ecx
xor eax, eax
and ecx, 0x1f
mov dword [esp + 0x54], ecx
setne al
sar esi, 5
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], eax
lea edi, [esi + eax]
mov dword [esp + 0x38], edi
cmp edi, dword [esp + 0x74]
jbe 0x653589
add edx, 0xfffffffe
test edx, 0xfffffffd
je 0x653589
mov esi, ebx
and esi, 8
jmp 0x6537c5
mov edx, edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + edx*4 + 0x204]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x54], 0
je 0x65367a
mov dword [esp + 0x6c], ebx
mov edi, 1
mov ebx, dword [esp + 0x54]
neg ebx
mov edx, ecx
mov esi, edx
lea ecx, [ebx + 0x1f]
add ebx, 0x20
shr esi, cl
and esi, 1
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0x18], esi
mov esi, edx
mov ebx, 1
shl edi, cl
shr esi, cl
mov ecx, dword [esp]
and esi, 1
shl ebx, cl
dec ebx
and ebx, edx
or dword [esp + 0xac], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x38]
jbe 0x653729
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + edx + 1]
cmp ecx, eax
ja 0x653729
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x654122
mov edi, edx
mov dword [esp], ecx
lea esi, [esp + ecx*4 + 0x204]
xor edx, edx
mov ecx, dword [esp + 0xac]
or ecx, dword [esi + edx*8]
or ecx, dword [esi + edx*8 + 4]
inc edx
cmp edx, edi
jb 0x653639
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
lea edx, [esi - 1]
cmp edx, eax
jae 0x653729
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x653729
mov esi, edi
and ecx, 1
mov edx, dword [esp + esi*4 + 0x208]
mov edi, edx
add edx, edx
mov dword [esp + 0x1c], ecx
or dword [esp + 0xac], edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
shr edi, 0x1f
mov dword [esp + 0x18], edi
lea esi, [ecx + edx + 1]
cmp eax, esi
jbe 0x653721
mov ecx, edx
mov edx, dword [esp + 0x40]
lea ecx, [edx + ecx + 2]
add edx, 2
cmp edx, eax
ja 0x653721
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x65412c
mov edi, edx
mov dword [esp], ecx
lea esi, [esp + ecx*4 + 0x204]
xor edx, edx
mov ecx, dword [esp + 0xac]
or ecx, dword [esi + edx*8]
or ecx, dword [esi + edx*8 + 4]
inc edx
cmp edx, edi
jb 0x6536df
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
mov dword [esp + 0x20], 1
lea edx, [esi - 1]
cmp edx, eax
jae 0x653729
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x653729
mov dword [esp + 0x20], 1
mov esi, dword [esp + 0x18]
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0xac], 0
setne al
lea edi, [esi + edx*2]
mov esi, ebx
and esi, 8
lea ecx, [esi + eax*4]
mov eax, dword [esp + 0x14]
add ecx, edi
shr eax, cl
test al, 1
je 0x6537c5
cmp dword [esp + 0x38], 0
je 0x6537a4
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x34], eax
cmp eax, edx
jae 0x654136
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
mov dword [esp + 0x204], 0
mov edx, dword [esp + 0x74]
dec edx
mov eax, dword [esp + edx*4 + 0x204]
cmp eax, 0xffffffff
je 0x65378c
mov dword [esp + 0x74], edx
cmp dword [esp + 0x74], 0
jne 0x6537bd
inc dword [esp + 0x78]
mov dword [esp + 0x208], 0x80000000
mov dword [esp + 0x74], 1
jmp 0x6537c5
inc eax
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x78], 0x400
jle 0x653845
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x65383f
cmp eax, 0x1000000
jne 0x6537f8
test esi, esi
je 0x65380e
fld qword [0x74d008]
jmp 0x653c79
cmp eax, 0x800000
jne 0x65380e
test esi, esi
jne 0x65380e
fld qword [0x74d000]
jmp 0x653c79
test esi, esi
je 0x65381a
fld qword [0x74cfa8]
jmp 0x653820
fld qword [0x74cfa0]
mov eax, ebx
or eax, 0x8000000
test dword [esp + 0xc0], 0x2000
je 0x653c79
mov ebx, eax
jmp 0x653c79
test esi, esi
jne 0x6537ed
jmp 0x653803
cmp dword [esp + 0x78], 0xfffffc02
jg 0x6538d3
cmp dword [esp + 0x78], 0xfffffbcf
jl 0x65386a
test dword [esp + 0xc0], 0x10000000
je 0x6538d3
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x65388c
test esi, esi
jne 0x6538a2
fld qword [0x74cfd0]
jmp 0x653c79
cmp eax, 0x800000
jne 0x6538a2
test esi, esi
je 0x6538a2
fld qword [0x74cfd8]
jmp 0x653c79
test esi, esi
je 0x6538ae
fld qword [0x74cf88]
jmp 0x6538b4
fld qword [0x74cf80]
mov eax, ebx
or eax, 0x9000000
test dword [esp + 0xc0], 0x4000
je 0x653c79
mov ebx, eax
jmp 0x653c79
mov eax, dword [esp + 0x208]
mov dword [esp], eax
cmp dword [esp + 0x74], 2
jae 0x6538ee
mov dword [esp + 0x14], 0
jmp 0x6538f9
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x65393d
mov dword [esp + 0x6c], ebx
mov ecx, dword [esp + 0x78]
mov ebx, dword [esp]
mov eax, ebx
shl ecx, 0x14
shr ebx, 0xb
add ecx, 0x3fe00000
mov edx, dword [esp + 0x14]
and ebx, 0xffefffff
shr edx, 0xb
or ebx, ecx
shl eax, 0x15
mov dword [esp], ebx
or edx, eax
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x6c]
jmp 0x65398d
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x653965
mov ecx, eax
mov eax, dword [esp]
shr eax, cl
mov dword [esp + 0x14], eax
mov dword [esp], 0
jmp 0x65398d
mov edx, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov edi, dword [esp]
mov dword [esp + 0x6c], ebx
mov ebx, edi
shr eax, cl
neg ecx
shl ebx, cl
mov ecx, edx
shr edi, cl
or eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp], edi
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp]
mov ecx, edx
or ecx, 0x80000000
test esi, esi
mov eax, dword [esp + 0x14]
jne 0x6539a2
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fld qword [esp + 0x18]
jmp 0x653c79
mov edx, dword [esp + 0x78]
mov edi, dword [0x74d124]
mov dword [esp + edx*4 + 0x1c8], eax
lea eax, [edx + 1]
mov esi, dword [esp + 0x1c8]
mov dword [esp + 0x74], eax
mov dword [esp + 0xc8], esi
cmp eax, 2
jb 0x65423a
mov esi, 2
je 0x6539f5
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
jmp 0x653a06
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
mov edi, dword [ecx*4 + 0x74d100]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0xc8]
cmp esi, 1
jle 0x654470
mov dword [esp + 0xc8], 0
mov ecx, 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], edi
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x80]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov ebp, dword [esp + 0x84]
mov eax, dword [esp + ecx*4 + 0xc4]
add eax, ebp
cmp eax, ebp
mov dword [esp + ecx*4 + 0xc4], eax
mov eax, ebx
setb al
add eax, dword [esp + 0x88]
mov edx, dword [esp + ecx*4 + 0xc8]
mov dword [esp + ecx*4 + 0xc8], eax
inc ecx
cmp ecx, esi
jl 0x653a31
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + esi*4 + 0x1c4]
add ecx, edx
mov dword [esp + 0xc8], ecx
cmp ecx, edx
jae 0x653af1
mov dword [esp + esi*4 + 0xc8], 0
mov edx, 2
cmp dword [esp + 0xcc], 0xffffffff
je 0x653ad2
lea ebp, [esp + 0xcc]
mov ecx, dword [ebp]
jmp 0x653aed
mov dword [esp + edx*4 + 0xc4], 0
inc edx
lea ebp, [esp + edx*4 + 0xc4]
mov ecx, dword [ebp]
cmp ecx, 0xffffffff
je 0x653ad2
inc ecx
mov dword [ebp], ecx
inc esi
cmp esi, eax
ja 0x65422e
jne 0x653a0d
lea esi, [esi]
mov ecx, dword [esp + 0xb0]
jmp 0x6539ff
neg edx
add edx, 0xf
sub esi, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
cmp dword [esp + 0x54], 9
ja 0x653b48
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jmp 0x653c48
fild dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
shr edx, 0x1f
cmp dword [esp + 0x78], 2
fadd qword [edx*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jb 0x653c25
fld qword [0x74d320]
mov edx, dword [esp + 0x78]
lea esi, [edx - 1]
shr esi, 1
je 0x65448b
xor edx, edx
lea esi, [esi]
jmp 0x653b94
faddp st(2)
fild dword [esp + edx*8 + 0x1cc]
fxch st(1)
fmul st(2), st(0)
fild dword [esp + edx*8 + 0x1d0]
mov edi, dword [esp + edx*8 + 0x1cc]
shr edi, 0x1f
fxch st(2)
fadd qword [edi*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
mov edi, dword [esp + edx*8 + 0x1d0]
inc edx
shr edi, 0x1f
faddp st(3)
fmul st(2), st(0)
fxch st(1)
fadd qword [edi*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
cmp edx, esi
jb 0x653b92
faddp st(2)
lea edx, [edx + edx + 1]
mov dword [esp], edx
mov edx, dword [esp]
mov edi, dword [esp + 0x78]
dec edi
lea esi, [edx - 1]
cmp esi, edi
jae 0x6544d8
fmulp st(1)
fild dword [esp + edx*4 + 0x1c8]
mov esi, dword [esp + edx*4 + 0x1c8]
shr esi, 0x1f
fadd qword [esi*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
fmul qword [ecx*8 + 0x74d2d8]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x74c2a0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
cmp dword [esp + 0x40], 0
jl 0x654477
jle 0x653c72
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
fmul qword [eax*8 + 0x74d2d8]
je 0x653c72
mov eax, dword [esp + 0x34]
fmul qword [eax*8 + 0x74d2d8]
test bl, 8
je 0x653c79
fchs
cmp dword [esp + 0xbc], 0
je 0x653cab
test dword [esp + 0xc0], 0x40000
je 0x653c9b
mov eax, dword [esp + 0xbc]
mov dword [eax], ebp
jmp 0x653cab
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0x274]
test eax, eax
je 0x653cbb
shr ebx, 0x18
mov dword [eax], ebx
mov ecx, dword [esp + 0x244]
mov dword [esp + 0x244], 0
xor ecx, esp
cmp ecx, dword [0x7adbc0]
jne 0x65401a
add esp, 0x248
pop ebp
pop ebx
pop edi
pop esi
ret
xor eax, eax
fldz
xor ecx, ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xac], ecx
jmp 0x65243d
fstp st(0)
call fcn.00693023
mov ecx, dword [esp + 0x18]
jmp 0x6522a3
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, edx
mov dword [esp + 0x40], 0
jmp 0x65244c
mov dword [esp], 1
jmp 0x652692
mov edi, dword [esp + 0x74]
shr edi, 1
je 0x6540e7
mov eax, dword [esp + 0x74]
xor esi, esi
mov dword [esp + 0x70], ebp
lea ecx, [esp + eax*4 + 0x204]
lea edx, [esp + eax*4 + 0x1c4]
mov eax, esi
mov ebp, dword [eax + edx]
inc esi
mov dword [eax + ecx], ebp
mov ebp, dword [eax + edx - 4]
mov dword [eax + ecx - 4], ebp
add eax, 0xfffffff8
cmp esi, edi
jb 0x654098
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x652741
shl eax, 2
mov ecx, dword [esp + 0x74]
neg eax
lea edx, [esp + ecx*4 + 0x1c4]
mov esi, dword [eax + edx + 4]
lea edi, [esp + ecx*4 + 0x204]
mov dword [eax + edi + 4], esi
jmp 0x652741
mov eax, 1
jmp 0x6540b6
lea eax, [esp + 0x20c]
mov dword [esp + 0x34], eax
jmp 0x652a93
lea eax, [esp + 0x18c]
jmp 0x6530b0
mov dword [esp], 1
jmp 0x652fa5
mov dword [esp], 1
jmp 0x653481
mov esi, 1
jmp 0x653653
mov esi, 1
jmp 0x6536f9
cmp dword [esp + 0x54], 0
je 0x654159
mov ecx, dword [esp + 0x38]
mov eax, edx
dec eax
not eax
mov edx, dword [esp + 0x34]
and edx, eax
mov dword [esp + 0x34], edx
mov dword [esp + ecx*4 + 0x204], edx
jmp 0x654164
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x34], 0
jne 0x6537c5
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x654173
mov dword [esp + 0x74], eax
jmp 0x6537c5
mov eax, 1
jmp 0x6533a6
mov eax, 1
jmp 0x6531f9
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x652fec
jmp 0x652ff0
mov eax, 1
jmp 0x652eb9
mov eax, 1
jmp 0x652d1b
mov dword [esp + 0x20], 8
lea ecx, [esp + 0x18c]
jmp 0x652c27
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x74cde0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x6541fa
movzx eax, word [ecx*2 + 0x74cde2]
mov esi, eax
shr esi, 5
and eax, 0x1f
add dword [esp + 0x40], esi
movsx edx, word [eax*2 + 0x74cf3a]
mov ecx, dword [eax*8 + 0x74cd64]
mov eax, dword [eax*8 + 0x74cd60]
mov dword [esp + 0x18], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
jmp 0x652bcb
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
cmp dword [esp + eax*4 + 0xc4], 0
jne 0x654457
mov esi, eax
dec esi
lea ecx, [esp + esi*4 + 0xc4]
mov edx, dword [ecx]
lea eax, [esi*4]
test edx, edx
je 0x65424a
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], 0
test edx, edx
jle 0x654280
mov esi, dword [esp + 0x34]
add edx, edx
inc esi
test edx, edx
jg 0x654273
mov dword [esp + 0x34], esi
mov dword [ecx], edx
mov ecx, dword [esp + 0x74]
shl ecx, 5
mov esi, dword [esp + 0x34]
sub ecx, esi
mov dword [esp + 0x78], ecx
test esi, esi
je 0x654394
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x208], edx
lea edx, [ecx - 1]
cmp ecx, 1
je 0x654416
mov ecx, edx
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
shr ecx, 1
mov dword [esp + 0x1c], ecx
je 0x654446
mov edi, esi
mov esi, dword [esp + 0x74]
xor eax, eax
neg edi
mov dword [esp], edx
lea ecx, [esp + esi*4 + 0xc0]
mov dword [esp + 0x20], ecx
lea ecx, [esi*4 - 4]
neg ecx
add ecx, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebp
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov ebx, dword [edx + edi]
mov esi, ebx
shr esi, cl
mov edi, dword [edx + edi - 4]
add edx, 0xfffffff8
or dword [ebp + eax*8], esi
mov esi, edi
mov ecx, dword [esp + 0x34]
shl ebx, cl
mov ecx, dword [esp + 0x38]
shr esi, cl
mov ecx, dword [esp + 0x34]
or ebx, esi
shl edi, cl
mov dword [ebp + eax*8 + 4], ebx
mov dword [ebp + eax*8 + 8], edi
inc eax
cmp eax, dword [esp + 0x1c]
jb 0x654300
mov edx, dword [esp]
lea ecx, [eax + eax + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
lea eax, [ecx - 1]
cmp eax, edx
jae 0x654421
mov dword [esp + 0x6c], ebx
mov ebx, ecx
sub ebx, edx
sub edx, ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
neg ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + edx*4 + 0xc8]
mov esi, edx
shr esi, cl
mov ecx, eax
mov eax, edi
shl edx, cl
or dword [edi + ebx*4 - 4], esi
mov dword [eax + ebx*4], edx
mov ebx, dword [esp + 0x6c]
jmp 0x654421
cmp dword [esp + 0x74], 0
je 0x654416
mov edi, dword [esp + 0x74]
lea edx, [esp + eax + 0x204]
mov dword [esp + 0x14], edx
shr edi, 1
je 0x654450
mov edx, dword [esp + 0x74]
xor esi, esi
neg eax
add eax, dword [esp + 0x14]
mov dword [esp + 0x70], ebp
lea ecx, [esp + edx*4 + 0xc4]
mov edx, esi
mov ebp, dword [edx + ecx]
mov dword [eax + esi*8 + 4], ebp
mov ebp, dword [edx + ecx - 4]
add edx, 0xfffffff8
mov dword [eax + esi*8 + 8], ebp
inc esi
cmp esi, edi
jb 0x6543cb
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x654421
mov esi, dword [esp + 0x74]
lea edx, [eax*4]
neg edx
sub eax, esi
lea ecx, [esp + esi*4 + 0xc4]
mov edi, dword [edx + ecx + 4]
mov edx, dword [esp + 0x14]
mov dword [edx + eax*4], edi
jmp 0x654421
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x652882
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x654432
mov dword [esp + 0x74], eax
jmp 0x652882
mov ecx, 1
jmp 0x654352
mov eax, 1
jmp 0x6543ea
mov eax, dword [esp + 0x78]
lea eax, [eax*4 + 4]
lea ecx, [esp + eax + 0xc4]
mov edx, dword [ecx]
jmp 0x654263
mov ecx, ebx
jmp 0x653a98
mov eax, dword [esp + 0x40]
shl eax, 3
neg eax
fdiv qword [eax + 0x74d2d8]
jmp 0x653c72
mov dword [esp], 1
jmp 0x653bee
mov dword [esp + 0xb4], eax
xor eax, eax
xor ecx, ecx
fldz
mov dword [esp + 0xb8], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xac], ecx
jmp 0x65243d
mov ebp, edi
jmp 0x652066
xor ebp, ebp
mov ebx, 0x6000000
fldz
jmp 0x653c79
fstp st(0)
jmp 0x653c25