Function at 0x615d60
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 [0x6d159c]
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 0x615ed2
test dword [esp + 0xc0], 0x10000
je 0x615ecb
lea eax, [esp + 0x27b]
and eax, 0xfffffffc
movsx edx, byte [eax]
jmp 0x615ed7
mov edx, 0x2c
jmp 0x615ed7
mov edx, 0x2e
test esi, esi
jle 0x61839a
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 0x615f42
lea ecx, [eax - 9]
cmp ecx, 4
ja 0x618393
mov ebp, edi
lea eax, [ebp + 1]
mov ebp, eax
dec esi
je 0x618367
movsx eax, byte [eax]
lea ecx, [eax - 9]
cmp ecx, 4
jbe 0x615f1f
cmp eax, 0x20
je 0x615f1f
mov dword [esp + 0xb8], ebp
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ecx
cmp eax, 0x2d
jne 0x615f5a
add ebx, 8
jmp 0x615f5f
cmp eax, 0x2b
jne 0x615f70
inc dword [esp + 0xb8]
add ebx, 2
dec esi
je 0x617bb6
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 0x6161f0
movzx eax, word [eax*2 + 0x69afb0]
add eax, 0x615fcf
jmp eax
fstp st(0)
mov dword [esp + 0xb4], edx
test bl, 8
je 0x61612f
fld qword [0x69bca8]
jmp 0x616135
fld qword [0x69bca0]
and ebx, 0xfffffff7
mov eax, ebx
mov ecx, dword [esp + 0xc0]
or eax, 0xc000000
test ecx, 0x40000000
je 0x616150
mov ebx, eax
test cl, 2
je 0x616222
test esi, esi
je 0x616222
cmp byte [edx], 0x20
jne 0x616222
inc edx
dec esi
jne 0x616161
jmp 0x616222
cmp byte [eax - 1], 0x66
je 0x616119
mov edx, ecx
neg ecx
lea esi, [eax + ecx]
jmp 0x616222
cmp ebp, 9
jne 0x616205
test byte [esp + 0xc0], 1
jne 0x6162f3
jmp 0x616222
cmp ebp, 0x20
jne 0x616222
test byte [esp + 0xc0], 2
jne 0x6162f3
test byte [esp + 0xc0], 0x40
jne 0x616245
cmp ebp, dword [esp + 0x38]
jne 0x617f19
test bl, 1
jne 0x617f19
mov dword [esp + 0x58], 0
or ebx, 1
jmp 0x6162f3
mov ebp, 0x30
cmp dword [esp + 0x54], 0
je 0x6162e0
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 0x6162ab
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 0x6162f3
cmp dword [esp + 0x78], 2
jae 0x6162d7
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 0x6162f3
or dword [esp + 0xac], ebp
jmp 0x6162f3
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 0x615fb1
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 0x61632a
mov ebp, dword [esp + 0xb4]
and edx, 0x40
mov dword [esp + 0x14], edx
je 0x61633a
mov ebp, dword [esp + 0xb8]
test dword [esp + 0xc0], 0x8000
je 0x616375
test dword [esp + 0xc0], 0x80000000
je 0x616366
test esi, esi
je 0x616375
mov edx, dword [esp + 0xb8]
cmp byte [edx], 0
jne 0x61636a
jmp 0x616375
test esi, esi
je 0x616375
or ebx, 0x3000000
jmp 0x617b49
mov edx, ebx
and edx, 0x200
mov dword [esp], edx
je 0x61638c
mov edx, ebx
and edx, 0x54
cmp edx, 0x54
jne 0x61636a
cmp dword [esp + 0x54], 0
jne 0x6163c5
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x61639f
fchs
mov eax, dword [esp + 0xc0]
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x617b49
mov ebx, edx
jmp 0x617b49
test bl, 0x20
je 0x6163d1
cmp dword [esp + 0x14], 0
je 0x61636a
fstp st(0)
test bl, 0x10
je 0x616428
cmp dword [esp + 0x3c], 6
jbe 0x6163f5
mov esi, ebx
and esi, 8
test ebx, 0x80
jne 0x61773a
jmp 0x61769f
mov edx, dword [esp + 0x40]
mov edi, edx
neg edi
test ebx, 0x80
mov esi, dword [esp + 0xc8]
jne 0x61640e
mov edi, edx
test dword [esp + 0xc0], 0x400
jne 0x616420
mov esi, 0
sub edi, esi
mov dword [esp + 0x18], edi
jmp 0x616435
mov edx, dword [esp + 0xc8]
neg edx
mov dword [esp + 0x18], edx
cmp dword [esp], 0
je 0x61662d
shl ecx, 2
neg ecx
shl eax, cl
cmp dword [esp + 0x54], 8
ja 0x61647c
mov dword [esp + 0x14], 0
test eax, eax
jle 0x616468
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x61645d
mov dword [esp + 0x14], edx
mov dword [esp + 0x208], eax
mov dword [esp + 0x74], 1
jmp 0x616611
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 0x6164a3
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x1c4], 0
je 0x616494
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c8]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x6165a0
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x6164be
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c8], eax
cmp dword [esp + 0x14], 0
je 0x6165a0
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 1
jbe 0x616611
mov eax, dword [esp + 0x74]
lea eax, [eax - 1]
shr eax, 1
je 0x617f3a
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 0x616510
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 0x616611
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 0x616611
cmp dword [esp + 0x74], 0
je 0x616611
cmp dword [esp + 0x74], 0x18
jle 0x617f46
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 0x617f46
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.0062a530
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 0x617396
test bl, 1
je 0x61663c
mov edx, dword [esp + 0x58]
sub dword [esp + 0x18], edx
jmp 0x61664b
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 0x616667
mov esi, ebx
and esi, 8
jmp 0x61773a
cmp edx, 0x135
jle 0x616679
mov esi, ebx
and esi, 8
jmp 0x61769f
mov edi, esi
mov esi, dword [esp + 0x54]
lea edx, [esi - 0x1b]
test edx, edx
lea edx, [edi + esi - 0x1b]
jg 0x61668c
mov edx, edi
mov dword [esp + 0x40], edx
test edx, edx
jne 0x6166a8
cmp dword [esp + 0x54], 0x12
ja 0x6166a8
mov dword [esp + 0x34], 0
jmp 0x6179f2
mov edi, ebx
or edi, 0x100
lea esi, [edx + 0x16]
cmp esi, 0x2c
ja 0x6166ba
mov ebx, edi
cmp dword [esp + 0x54], 0xf
jbe 0x6166e7
cmp dword [esp + 0x54], 0x10
jbe 0x6166d6
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jmp 0x616710
cmp dword [esp + 0x1c8], 0x35afe535
jb 0x6166e7
test al, 1
jne 0x6166c8
mov edx, ebx
and edx, 0x100
mov dword [esp + 0x18], edx
jne 0x61669b
cmp dword [esp + 0x40], 0
jl 0x616710
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
lea edi, [edx + esi]
cmp edi, 0x25
jle 0x6179e3
cmp dword [esp + 0x54], 9
ja 0x617883
mov dword [esp + 0x78], 0
test eax, eax
jle 0x616736
mov edx, dword [esp + 0x78]
add eax, eax
inc edx
test eax, eax
jg 0x61672b
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 0x61681f
mov eax, dword [esp + 0x74]
shl eax, 5
cmp eax, 0x40
ja 0x61681f
mov edx, dword [esp + 0x20c]
test edx, 0x7ff
jne 0x61681f
cmp dword [esp + 0x74], 2
mov eax, dword [esp + 0x208]
jae 0x616793
mov edx, 0
mov dword [esp], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x6167c9
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 0x616803
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x6167ed
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x616803
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 0x617b18
cmp dword [esp + 0x40], 0
je 0x617396
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 0x616954
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 0x61692c
mov eax, 1
mov dword [esp + 0x204], 0
mov dword [esp + 0x74], eax
cmp dword [esp + 0x208], 0xffffffff
je 0x6168e4
lea eax, [esp + 0x208]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
jmp 0x616904
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x204]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x6168e6
mov dword [esp + 0x74], edx
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x74], 0
je 0x61690d
mov edx, dword [esp + 0x34]
inc eax
mov dword [edx], eax
jmp 0x616963
inc dword [esp + 0x78]
lea eax, [esp + 0x208]
mov dword [eax], connect
mov dword [esp + 0x74], 1
mov dword [esp + 0x34], eax
jmp 0x616963
mov eax, 2
mov dword [esp + 0x74], eax
test edx, edx
jne 0x617fbe
dec eax
lea edx, [esp + eax*4 + 0x204]
cmp dword [edx], 0
je 0x61693d
mov dword [esp + 0x74], eax
mov dword [esp + 0x34], edx
jmp 0x616963
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 0x616a35
mov esi, edx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], eax
movsx edx, word [esi*2 + 0x69b9fe]
mov ecx, dword [esi*8 + 0x69b81c]
mov edi, dword [esi*8 + 0x69b818]
mov dword [esp + 0x58], 2
mov dword [esp + 0x38], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x617fce
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x616a1f
mov dword [esp + 0x58], edx
jmp 0x616f80
cmp dword [esp + 0x40], 0
jl 0x6180a5
mov eax, edx
mov edx, eax
sar edx, 3
lea esi, [edx + edx]
movzx ecx, word [esi + 0x69bbe2]
lea edi, [edx + edx + 2]
shr ecx, 5
cmp ecx, eax
jle 0x616a5e
mov edi, esi
movzx edx, word [edi + 0x69bbe0]
mov esi, edx
and esi, 0x1f
shr edx, 5
sub eax, edx
mov dword [esp + 0x40], eax
movsx eax, word [esi*2 + 0x69bc58]
mov dword [esp + 0x18], eax
mov ecx, dword [esi*8 + 0x69bb64]
mov eax, dword [esi*8 + 0x69bb60]
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 + 0x69b9fe]
mov ecx, dword [esi*8 + 0x69b81c]
mov edi, dword [esi*8 + 0x69b818]
mov dword [esp + 0x14], edx
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], edi
test edi, edi
jne 0x618091
mov esi, dword [esp + 0x54]
dec esi
lea ecx, [esp + esi*4 + 0x184]
cmp dword [ecx], 0
lea edx, [esi*4]
je 0x616adb
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 0x616c1b
mov eax, dword [esp + 0x54]
shr eax, 1
je 0x618087
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 0x616bc1
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 0x616c1b
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 0x616cbf
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 0x616c3e
dec ecx
jne 0x616c2b
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 0x616dd5
mov ecx, edx
mov dword [esp + 0x20], 0
shr ecx, 1
je 0x61807d
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 0x616d41
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 0x616dcf
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 0x616dd5
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
test esi, esi
jne 0x616df2
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x616ddd
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x188]
test esi, esi
jle 0x61806b
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 0x616eaf
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
shr ecx, 1
je 0x617fda
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 0x616e36
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 0x616ea4
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 0x616ebc
jmp 0x616ecb
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x616f75
dec dword [esp + 0x58]
cmp dword [esp + 0x58], 2
jb 0x616f75
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 0x616f4e
mov eax, 1
mov dword [esp + 0x184], 0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x188], 0xffffffff
je 0x616f12
lea eax, [esp + 0x188]
mov edx, dword [eax]
jmp 0x616f2e
mov ecx, eax
dec ecx
lea eax, [esp + ecx*4 + 0x184]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x616f14
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x58], 0
je 0x616f33
inc edx
mov dword [eax], edx
jmp 0x616f80
inc dword [esp + 0x38]
lea eax, [esp + 0x188]
mov dword [eax], connect
mov dword [esp + 0x58], 1
jmp 0x616f80
mov dword [esp + 0x58], 2
test edx, edx
jne 0x617fce
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x184]
cmp dword [eax], 0
je 0x616f62
mov dword [esp + 0x58], edx
jmp 0x616f80
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 0x617057
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 0x616ff0
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 0x6170fb
mov edx, dword [esp + 0x3c]
shr edx, 1
je 0x618061
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 0x6170a7
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 0x6170fb
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 0x6171ba
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 0x6171a7
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 0x617131
mov eax, dword [esp + 0x58]
dec esi
jne 0x617119
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 0x6172bd
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], 0
shr edx, 1
je 0x618057
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 0x61722e
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 0x6172b7
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 0x6172bd
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test eax, eax
jne 0x6172da
mov edx, dword [esp + 0x74]
dec edx
lea eax, [esp + edx*4 + 0x204]
cmp dword [eax], 0
je 0x6172c5
mov dword [esp + 0x14], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x208]
test eax, eax
jle 0x617396
dec dword [esp + 0x78]
add eax, eax
mov dword [esp + 0x208], eax
cmp dword [esp + 0x74], 2
jb 0x617388
mov eax, dword [esp + 0x74]
lea ecx, [eax - 1]
shr ecx, 1
je 0x617fe6
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 0x617312
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 0x617388
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 0x61738e
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 0x6173b3
mov edx, 6
mov eax, edx
and eax, 2
test dl, 4
je 0x6173d1
test eax, eax
mov eax, 0xaaaa
jne 0x6173cb
mov eax, 0xfa
mov dword [esp + 0x14], eax
jmp 0x6173f2
test eax, eax
je 0x6173df
mov dword [esp + 0x14], 0xfa00
jmp 0x6173f2
mov eax, 0xa8a8
test dl, 1
je 0x6173ee
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 0x61740f
mov dword [esp + 0x54], 0x35
jmp 0x61741a
cmp dword [esp + 0x54], 0
js 0x61665d
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 0x617459
add edx, 0xfffffffe
test edx, 0xfffffffd
je 0x617459
mov esi, ebx
and esi, 8
jmp 0x617695
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 0x61754a
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 0x6175f9
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + edx + 1]
cmp ecx, eax
ja 0x6175f9
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x617ff2
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 0x617509
mov dword [esp + 0xac], ecx
lea esi, [edx + edx + 1]
mov ecx, dword [esp]
lea edx, [esi - 1]
cmp edx, eax
jae 0x6175f9
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x6175f9
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 0x6175f1
mov ecx, edx
mov edx, dword [esp + 0x40]
lea ecx, [edx + ecx + 2]
add edx, 2
cmp edx, eax
ja 0x6175f1
sub eax, ecx
inc eax
mov edx, eax
shr edx, 1
je 0x617ffc
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 0x6175af
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 0x6175f9
add ecx, esi
mov eax, dword [esp + 0xac]
or eax, dword [esp + ecx*4 + 0x200]
mov dword [esp + 0xac], eax
jmp 0x6175f9
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 0x617695
cmp dword [esp + 0x38], 0
je 0x617674
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x34], eax
cmp eax, edx
jae 0x618006
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 0x61765c
mov dword [esp + 0x74], edx
cmp dword [esp + 0x74], 0
jne 0x61768d
inc dword [esp + 0x78]
mov dword [esp + 0x208], connect
mov dword [esp + 0x74], 1
jmp 0x617695
inc eax
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x78], 0x400
jle 0x617715
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x400000
je 0x61770f
cmp eax, 0x1000000
jne 0x6176c8
test esi, esi
je 0x6176de
fld qword [0x69bd08]
jmp 0x617b49
cmp eax, 0x800000
jne 0x6176de
test esi, esi
jne 0x6176de
fld qword [0x69bd00]
jmp 0x617b49
test esi, esi
je 0x6176ea
fld qword [0x69bca8]
jmp 0x6176f0
fld qword [0x69bca0]
mov eax, ebx
or eax, 0x8000000
test dword [esp + 0xc0], 0x2000
je 0x617b49
mov ebx, eax
jmp 0x617b49
test esi, esi
jne 0x6176bd
jmp 0x6176d3
cmp dword [esp + 0x78], 0xfffffc02
jg 0x6177a3
cmp dword [esp + 0x78], 0xfffffbcf
jl 0x61773a
test dword [esp + 0xc0], 0x10000000
je 0x6177a3
mov eax, dword [esp + 0xc0]
and eax, 0x1c00000
cmp eax, 0x1000000
jne 0x61775c
test esi, esi
jne 0x617772
fld qword [0x69bcd0]
jmp 0x617b49
cmp eax, 0x800000
jne 0x617772
test esi, esi
je 0x617772
fld qword [0x69bcd8]
jmp 0x617b49
test esi, esi
je 0x61777e
fld qword [0x69bc88]
jmp 0x617784
fld qword [0x69bc80]
mov eax, ebx
or eax, 0x9000000
test dword [esp + 0xc0], 0x4000
je 0x617b49
mov ebx, eax
jmp 0x617b49
mov eax, dword [esp + 0x208]
mov dword [esp], eax
cmp dword [esp + 0x74], 2
jae 0x6177be
mov dword [esp + 0x14], 0
jmp 0x6177c9
mov eax, dword [esp + 0x20c]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x78], 0xfffffc02
jle 0x61780d
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 0x61785d
mov eax, dword [esp + 0x78]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0x78], eax
cmp eax, 0x20
jl 0x617835
mov ecx, eax
mov eax, dword [esp]
shr eax, cl
mov dword [esp + 0x14], eax
mov dword [esp], 0
jmp 0x61785d
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 0x617872
mov ecx, edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fld qword [esp + 0x18]
jmp 0x617b49
mov edx, dword [esp + 0x78]
mov edi, dword [0x69be24]
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 0x61810a
mov esi, 2
je 0x6178c5
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
jmp 0x6178d6
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x70], ebp
mov edi, dword [ecx*4 + 0x69be00]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0xc8]
cmp esi, 1
jle 0x618340
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 0x617901
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 0x6179c1
mov dword [esp + esi*4 + 0xc8], 0
mov edx, 2
cmp dword [esp + 0xcc], 0xffffffff
je 0x6179a2
lea ebp, [esp + 0xcc]
mov ecx, dword [ebp]
jmp 0x6179bd
mov dword [esp + edx*4 + 0xc4], 0
inc edx
lea ebp, [esp + edx*4 + 0xc4]
mov ecx, dword [ebp]
cmp ecx, 0xffffffff
je 0x6179a2
inc ecx
mov dword [ebp], ecx
inc esi
cmp esi, eax
ja 0x6180fe
jne 0x6178dd
lea esi, [esi]
mov ecx, dword [esp + 0xb0]
jmp 0x6178cf
neg edx
add edx, 0xf
sub esi, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], esi
cmp dword [esp + 0x54], 9
ja 0x617a18
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x69afa0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jmp 0x617b18
fild dword [esp + 0x1c8]
mov edx, dword [esp + 0x1c8]
shr edx, 0x1f
cmp dword [esp + 0x78], 2
fadd qword [edx*8 + 0x69afa0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jb 0x617af5
fld qword [0x69c020]
mov edx, dword [esp + 0x78]
lea esi, [edx - 1]
shr esi, 1
je 0x61835b
xor edx, edx
lea esi, [esi]
jmp 0x617a64
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 + 0x69afa0]
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 + 0x69afa0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
cmp edx, esi
jb 0x617a62
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 0x6183a8
fmulp st(1)
fild dword [esp + edx*4 + 0x1c8]
mov esi, dword [esp + edx*4 + 0x1c8]
shr esi, 0x1f
fadd qword [esi*8 + 0x69afa0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
fmul qword [ecx*8 + 0x69bfd8]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
shr eax, 0x1f
fadd qword [eax*8 + 0x69afa0]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
cmp dword [esp + 0x40], 0
jl 0x618347
jle 0x617b42
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
fmul qword [eax*8 + 0x69bfd8]
je 0x617b42
mov eax, dword [esp + 0x34]
fmul qword [eax*8 + 0x69bfd8]
test bl, 8
je 0x617b49
fchs
cmp dword [esp + 0xbc], 0
je 0x617b7b
test dword [esp + 0xc0], 0x40000
je 0x617b6b
mov eax, dword [esp + 0xbc]
mov dword [eax], ebp
jmp 0x617b7b
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0x274]
test eax, eax
je 0x617b8b
shr ebx, 0x18
mov dword [eax], ebx
mov ecx, dword [esp + 0x244]
mov dword [esp + 0x244], 0
xor ecx, esp
cmp ecx, dword [0x6d159c]
jne 0x617eea
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 0x61630d
fstp st(0)
call fcn.0063f93a
mov ecx, dword [esp + 0x18]
jmp 0x616173
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ebp, edx
mov dword [esp + 0x40], 0
jmp 0x61631c
mov dword [esp], 1
jmp 0x616562
mov edi, dword [esp + 0x74]
shr edi, 1
je 0x617fb7
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 0x617f68
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x616611
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 0x616611
mov eax, 1
jmp 0x617f86
lea eax, [esp + 0x20c]
mov dword [esp + 0x34], eax
jmp 0x616963
lea eax, [esp + 0x18c]
jmp 0x616f80
mov dword [esp], 1
jmp 0x616e75
mov dword [esp], 1
jmp 0x617351
mov esi, 1
jmp 0x617523
mov esi, 1
jmp 0x6175c9
cmp dword [esp + 0x54], 0
je 0x618029
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 0x618034
mov edx, dword [esp + 0x38]
mov dword [esp + edx*4 + 0x204], eax
cmp dword [esp + 0x34], 0
jne 0x617695
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x618043
mov dword [esp + 0x74], eax
jmp 0x617695
mov eax, 1
jmp 0x617276
mov eax, 1
jmp 0x6170c9
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x616ebc
jmp 0x616ec0
mov eax, 1
jmp 0x616d89
mov eax, 1
jmp 0x616beb
mov dword [esp + 0x20], 8
lea ecx, [esp + 0x18c]
jmp 0x616af7
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x69bae0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x6180ca
movzx eax, word [ecx*2 + 0x69bae2]
mov esi, eax
shr esi, 5
and eax, 0x1f
add dword [esp + 0x40], esi
movsx edx, word [eax*2 + 0x69bc3a]
mov ecx, dword [eax*8 + 0x69ba64]
mov eax, dword [eax*8 + 0x69ba60]
mov dword [esp + 0x18], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x14c], eax
jmp 0x616a9b
mov dword [esp + 0x74], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x70]
cmp dword [esp + eax*4 + 0xc4], 0
jne 0x618327
mov esi, eax
dec esi
lea ecx, [esp + esi*4 + 0xc4]
mov edx, dword [ecx]
lea eax, [esi*4]
test edx, edx
je 0x61811a
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], 0
test edx, edx
jle 0x618150
mov esi, dword [esp + 0x34]
add edx, edx
inc esi
test edx, edx
jg 0x618143
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 0x618264
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x208], edx
lea edx, [ecx - 1]
cmp ecx, 1
je 0x6182e6
mov ecx, edx
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
shr ecx, 1
mov dword [esp + 0x1c], ecx
je 0x618316
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 0x6181d0
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 0x6182f1
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 0x6182f1
cmp dword [esp + 0x74], 0
je 0x6182e6
mov edi, dword [esp + 0x74]
lea edx, [esp + eax + 0x204]
mov dword [esp + 0x14], edx
shr edi, 1
je 0x618320
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 0x61829b
mov ebp, dword [esp + 0x70]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x74]
jae 0x6182f1
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 0x6182f1
lea eax, [esp + eax + 0x204]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x616752
mov eax, dword [esp + 0x74]
dec eax
cmp dword [esp + eax*4 + 0x204], 0
je 0x618302
mov dword [esp + 0x74], eax
jmp 0x616752
mov ecx, 1
jmp 0x618222
mov eax, 1
jmp 0x6182ba
mov eax, dword [esp + 0x78]
lea eax, [eax*4 + 4]
lea ecx, [esp + eax + 0xc4]
mov edx, dword [ecx]
jmp 0x618133
mov ecx, ebx
jmp 0x617968
mov eax, dword [esp + 0x40]
shl eax, 3
neg eax
fdiv qword [eax + 0x69bfd8]
jmp 0x617b42
mov dword [esp], 1
jmp 0x617abe
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 0x61630d
mov ebp, edi
jmp 0x615f36
xor ebp, ebp
mov ebx, 0x6000000
fldz
jmp 0x617b49
fstp st(0)
jmp 0x617af5