Function at 0x680470
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x81824a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x118
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 8]
push ebx
push esi
push edi
cmp eax, dword [ecx + 0x4c]
jg 0x6804ae
mov edx, dword [ecx + 0x48]
shl eax, 3
sub edx, eax
mov edi, dword [edx]
mov eax, dword [edx + 4]
jmp 0x6804b8
mov edi, 1
mov eax, 0x20000
push eax
push edi
mov dword [ebp - 0x34], eax
call fcn.005de4a4
add esp, 8
test al, al
je 0x6826f6
mov eax, dword [0x948fd4]
mov ebx, 1
test bl, al
jne 0x680518
or eax, ebx
mov dword [0x948fd4], eax
push 0x10
mov dword [ebp - 4], 0
call fcn.007965bb
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov eax, ebx
xchg dword [esi], eax
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov word [esi + 0xc], ax
mov dword [0x948fd8], esi
jmp 0x680521
mov esi, dword [0x948fd8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x34]
push dword [ebp - 0x34]
push edi
call fcn.00668670
add esp, 8
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x34]
mov eax, dword [0x948fd4]
lea ecx, [edi + 0xc]
mov dword [ebp - 0x24], ecx
test al, 1
jne 0x680589
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 3
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
lea ecx, [edi + 0xc]
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
cmp edi, dword [0x948fd8]
jne 0x680595
xor eax, eax
jmp 0x680598
mov eax, dword [edi + 8]
inc dword [ebp + 0xc]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x88], eax
cmp ecx, eax
jae 0x682643
movsd xmm0, qword [0x8aa090]
mov edi, dword [ebp - 0x24]
movsd qword [ebp - 0xa0], xmm0
nop
movzx eax, word [edi]
test ax, ax
je 0x682640
mov esi, dword [ebp - 0x28]
mov ecx, eax
movzx edx, cx
cmp cx, 0x25
je 0x6805f5
mov edx, dword [esi]
movzx eax, cx
mov ecx, esi
push eax
call dword [edx + 0x1c]
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x6805d1
mov esi, dword [ebp - 0x18]
test dx, dx
je 0x682640
add edi, 2
mov dword [ebp - 0x24], edi
cmp word [edi], 0x25
jne 0x680617
mov ecx, dword [ebp - 0x28]
push 0x25
mov eax, dword [ecx]
call dword [eax + 0x1c]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00682710
movzx eax, word [edi]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test ax, ax
je 0x68262c
mov ecx, eax
mov eax, dword [ebp + 0xc]
lea edx, [eax*8]
mov dword [ebp - 0x14], edx
cmp cx, 0x2a
jne 0x6808a0
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x4c]
jg 0x68066c
mov eax, dword [ecx + 0x48]
sub eax, edx
mov edi, dword [eax]
mov edx, dword [eax + 4]
cmp edi, 0xb
jne 0x680676
cmp edx, 0x20000
je 0x68068f
jmp 0x680676
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x68068f
shr edx, 0x10
and edx, 0xf
cmp edx, 3
je 0x680694
mov edi, 1
push edi
lea eax, [ebp - 0x7c]
push 0x882f88
push eax
call fcn.00442f03
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 4
mov eax, dword [0x948fd4]
test al, 1
jne 0x6806eb
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 5
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 4
mov eax, dword [edi]
cmp eax, dword [0x948fd8]
je 0x68082f
mov ecx, dword [eax + 8]
add eax, 0xc
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x68082f
mov eax, dword [0x948fd4]
test al, 1
jne 0x68074f
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 6
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 4
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
cmp esi, dword [0x948fd8]
jne 0x68075b
xor edi, edi
jmp 0x68075e
mov edi, dword [esi + 8]
lea eax, [ecx + edi]
push 1
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
test al, al
je 0x680829
mov eax, dword [0x948fd4]
test al, 1
jne 0x6807b2
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 7
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
jmp 0x6807b7
mov eax, dword [0x948fd8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
cmp esi, eax
jne 0x6807c5
xor eax, eax
jmp 0x6807c8
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
mov edx, dword [ebp - 0x20]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp - 0x10]
mov dword [eax + 4], edx
lea edx, [esi + 0xc]
cmp edi, ecx
jge 0x68080b
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x60], eax
neg eax
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0xb0]
push eax
call fcn.0042c953
jmp 0x68082f
lea eax, [edx + ecx*2]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0xb0]
push eax
call fcn.0042c953
jmp 0x68082f
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x7c]
test edi, edi
je 0x68088b
mov eax, dword [0x948fd4]
test al, 1
jne 0x680871
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x68088b
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68088b
push edi
call fcn.0079605d
add esp, 4
inc dword [ebp + 0xc]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x14]
add edx, 8
mov dword [ebp - 0x14], edx
jmp 0x680a68
cmp cx, 0x73
je 0x681fcf
cmp cx, 0x53
je 0x681fcf
cmp cx, 0x63
je 0x6819d0
cmp cx, 0x43
je 0x6819d0
push ecx
push str.dioxXbu
call fcn.007e4cab
movzx ecx, word [edi]
add esp, 8
test eax, eax
jne 0x6813cb
push ecx
push str.fgGeE
call fcn.007e4cab
movzx ecx, word [edi]
add esp, 8
test eax, eax
jne 0x680da6
cmp ecx, 0x76
je 0x680bea
cmp ecx, 0x56
je 0x680bea
test cx, cx
je 0x68262c
cmp ecx, 0x25
je 0x68262c
push ecx
call fcn.0079adff
add esp, 4
test eax, eax
jne 0x680937
movzx eax, word [edi]
cmp eax, 0x2e
jne 0x680a87
movzx eax, word [edi]
mov dword [ebp - 0x10], eax
mov eax, dword [0x948fd4]
test al, 1
jne 0x68097f
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x51
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680984
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x68098c
xor edi, edi
jmp 0x68098f
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
test al, al
je 0x680a5f
mov eax, dword [0x948fd4]
test al, 1
jne 0x6809e7
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x52
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x6809ec
mov eax, dword [0x948fd8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
cmp esi, eax
jne 0x6809fa
xor eax, eax
jmp 0x6809fd
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x10]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov esi, dword [ebp - 0x18]
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x680a41
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x68], eax
neg eax
sbb eax, eax
and eax, ecx
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0042c953
jmp 0x680a65
lea eax, [edx + ecx*2]
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x68]
lea eax, [ebp - 0xb8]
push eax
call fcn.0042c953
jmp 0x680a65
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
mov edx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
add edi, 2
mov dword [ebp - 0x24], edi
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x68262c
mov eax, dword [ebp + 0xc]
jmp 0x680641
mov dword [ebp - 0x10], eax
mov eax, dword [0x948fd4]
test al, 1
jne 0x680acc
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x53
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680ad1
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680ad9
xor edi, edi
jmp 0x680adc
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x680b98
mov eax, dword [0x948fd4]
test al, 1
jne 0x680b3a
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x54
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680b3f
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680b47
xor eax, eax
jmp 0x680b4a
mov eax, dword [esi + 8]
xor ecx, ecx
lea edx, [esi + 0xc]
test edx, edx
lea ebx, [ebp - 0x10]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x680b7c
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x70], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x6c], eax
jmp 0x680b89
lea eax, [edx + ecx*2]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0xc0]
push eax
lea ecx, [ebp - 0x70]
call fcn.0042c953
lea edi, [esi + 0xc]
test edi, edi
je 0x682629
cmp word [edi], 0
mov eax, edi
je 0x680bb9
nop dword [eax + eax]
add eax, 2
cmp word [eax], 0
jne 0x680bb0
sub eax, edi
sar eax, 1
lea ebx, [edi + eax*2]
cmp edi, ebx
jae 0x682629
mov ecx, dword [ebp - 0x28]
movzx eax, word [edi]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
add edi, 2
test al, al
je 0x682629
cmp edi, ebx
jb 0x680bc8
jmp 0x682629
mov eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [0x948fd4]
test al, 1
jne 0x680c31
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x4e
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680c36
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680c3e
xor edi, edi
jmp 0x680c41
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x680cfd
mov eax, dword [0x948fd4]
test al, 1
jne 0x680c9f
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x4f
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680ca4
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680cac
xor eax, eax
jmp 0x680caf
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x10]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x680ce1
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x78], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x74], eax
jmp 0x680cee
lea eax, [edx + ecx*2]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x78]
call fcn.0042c953
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x680d1a
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
mov dword [ebp - 0x10], eax
jmp 0x680d26
mov edi, 1
mov dword [ebp - 0x10], 0x20000
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x38]
movzx ecx, word [eax]
mov eax, 0x89240c
cmp ecx, 0x56
mov edx, ecx
cmove esi, ebx
mov ebx, dword [ebp - 0x80]
mov dword [ebp - 0x38], esi
xor esi, esi
cmp ecx, 0x56
cmovne ebx, esi
cmp ecx, 0x56
mov dword [ebp - 0x80], ebx
cmovne eax, esi
sub esp, 8
mov ecx, esp
cmp edx, 0x56
push esi
mov dword [ecx], eax
mov eax, dword [ebp - 0x38]
cmovne eax, ebx
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x28]
push ecx
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x120]
call fcn.00624610
push 1
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x120]
push dword [ebp - 0x10]
push edi
call fcn.0062a780
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 2
call fcn.006248e0
mov esi, dword [ebp - 0x18]
jmp 0x682626
mov eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [0x948fd4]
test al, 1
jne 0x680ded
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x3d
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680df2
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680dfa
xor edi, edi
jmp 0x680dfd
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x680ebc
mov eax, dword [0x948fd4]
test al, 1
jne 0x680e5b
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x3e
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x680e60
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x680e68
xor eax, eax
jmp 0x680e6b
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x10]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x680e9d
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x40], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x3c], eax
jmp 0x680eaa
lea eax, [edx + ecx*2]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0xd0]
push eax
lea ecx, [ebp - 0x40]
call fcn.0042c953
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x680f50
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x680f5a
cmp edx, 0x20000
jne 0x680f5a
cmp edi, 0xb
jne 0x680ef6
cmp edx, 0x20000
je 0x681377
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x681377
mov eax, dword [0x948fd4]
test al, 1
jne 0x680f8a
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x3f
call fcn.007965bb
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov eax, ebx
xchg dword [edi], eax
xor eax, eax
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov word [edi + 0xc], ax
mov dword [0x948fd8], edi
mov byte [ebp - 4], 2
jmp 0x680f93
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x680ee5
mov eax, edx
shr eax, 0x10
and eax, 0xf
cmp eax, 3
jne 0x680ee5
movd xmm0, edi
cvtdq2pd xmm0, xmm0
jmp 0x6813ae
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
push 0
push 0
push 5
push str._NaN_
push 0
push 3
mov dword [ebp - 0x20], edi
call dword [0x826190]
mov ecx, eax
mov dword [ebp - 0x10], ecx
test ecx, ecx
jne 0x68105d
test edi, edi
je 0x681011
mov eax, dword [0x948fd4]
test al, 1
jne 0x680ff7
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x40
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681011
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681011
push edi
call fcn.0079605d
add esp, 4
mov eax, dword [0x948fd4]
test al, 1
jne 0x68104c
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x41
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], edi
jmp 0x68128e
cmp ecx, dword [edi + 4]
ja 0x681082
cmp dword [edi], 1
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
jg 0x681082
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x68128e
mov eax, dword [0x948fd4]
test al, 1
jne 0x6810c4
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x42
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 2
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
jne 0x681143
test ecx, ecx
je 0x681129
lea eax, [ecx*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68110d
mov eax, dword [0x948fd4]
test al, 1
jne 0x6811dd
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x43
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x6811c3
mov eax, 1
xchg dword [ebx], eax
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov dword [ebx + 8], ecx
mov dword [ebx + 4], ecx
mov word [ebx + ecx*2 + 0xc], ax
jmp 0x6811e3
mov eax, dword [0x948fd4]
test al, 1
jne 0x6811dd
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x44
jmp 0x6811ba
test ecx, ecx
je 0x6811a6
lea eax, [ecx + ecx*2]
shr eax, 1
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x2c], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68118a
mov eax, dword [0x948fd4]
test al, 1
jne 0x6811dd
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x45
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x6811c3
mov eax, 1
xchg dword [ebx], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 4], ecx
xor ecx, ecx
mov dword [ebx + 8], eax
mov word [ebx + eax*2 + 0xc], cx
jmp 0x6811e3
mov eax, dword [0x948fd4]
test al, 1
jne 0x6811dd
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x46
push 0x10
call fcn.007965bb
mov ecx, ebx
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x948fd8]
mov eax, dword [0x948fd4]
test al, 1
jne 0x681221
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x47
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp ebx, dword [0x948fd8]
je 0x681289
mov eax, dword [0x948fd4]
test al, 1
jne 0x681267
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x49
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681281
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681281
push edi
call fcn.0079605d
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], edi
mov ebx, 1
mov eax, dword [0x948fd4]
test al, 1
jne 0x6812c9
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x4a
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x948fd8]
je 0x6812e9
push dword [ebp - 0x10]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x826190]
mov byte [ebp - 4], 0x4b
mov eax, dword [0x948fd4]
test al, 1
jne 0x68132f
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x4c
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 0x4b
cmp edi, dword [0x948fd8]
jne 0x68133b
xor eax, eax
jmp 0x68133e
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x68136e
mov esi, dword [ebp - 0x28]
mov edi, eax
nop dword [eax]
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [ebx]
push eax
mov eax, dword [edx + 0x1c]
call eax
add ebx, 2
test al, al
je 0x681368
cmp ebx, edi
jb 0x681350
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x4d
jmp 0x681f62
cmp edi, 0xb
jne 0x681396
cmp edx, 0x20000
jne 0x681396
movsd xmm0, qword [ebp - 0xa0]
movsd qword [ebp - 0x90], xmm0
jmp 0x6813ae
not edi
not edx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edx
movsd xmm0, qword [ebp - 0x90]
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0xc]
sub esp, 8
movsd qword [esp], xmm0
push eax
push ecx
call fcn.0062fc00
add esp, 0x10
jmp 0x682626
mov eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [0x948fd4]
test al, 1
jne 0x681412
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x2c
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x681417
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x68141f
xor edi, edi
jmp 0x681422
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x6814e1
mov eax, dword [0x948fd4]
test al, 1
jne 0x681480
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x2d
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x681485
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x68148d
xor eax, eax
jmp 0x681490
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x2c]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x6814c2
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x48], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x44], eax
jmp 0x6814cf
lea eax, [edx + ecx*2]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x48]
call fcn.0042c953
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x681508
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x681512
cmp edx, 0x20000
je 0x681531
jmp 0x681512
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x681531
mov eax, edx
shr eax, 0x10
and eax, 0xf
cmp eax, 3
je 0x681b74
cmp edi, 0xb
jne 0x681542
cmp edx, 0x20000
je 0x681987
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x681987
mov eax, dword [0x948fd4]
test al, 1
jne 0x68159c
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x2e
call fcn.007965bb
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov eax, ebx
xchg dword [edi], eax
xor eax, eax
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov word [edi + 0xc], ax
mov dword [0x948fd8], edi
mov byte [ebp - 4], 2
jmp 0x6815a5
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
push 0
push 0
push 5
push str._NaN_
push 0
push 3
mov dword [ebp - 0x10], edi
call dword [0x826190]
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x68166f
test edi, edi
je 0x681623
mov eax, dword [0x948fd4]
test al, 1
jne 0x681609
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x2f
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681623
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681623
push edi
call fcn.0079605d
add esp, 4
mov eax, dword [0x948fd4]
test al, 1
jne 0x68165e
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x30
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
jmp 0x6818a0
cmp ecx, dword [edi + 4]
ja 0x681694
cmp dword [edi], 1
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
jg 0x681694
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x6818a0
mov eax, dword [0x948fd4]
test al, 1
jne 0x6816d6
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x31
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 2
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
jne 0x681755
test ecx, ecx
je 0x68173b
lea eax, [ecx*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68171f
mov eax, dword [0x948fd4]
test al, 1
jne 0x6817ef
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x32
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x6817d5
mov eax, 1
xchg dword [ebx], eax
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebx + 8], ecx
mov dword [ebx + 4], ecx
mov word [ebx + ecx*2 + 0xc], ax
jmp 0x6817f5
mov eax, dword [0x948fd4]
test al, 1
jne 0x6817ef
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x33
jmp 0x6817cc
test ecx, ecx
je 0x6817b8
lea eax, [ecx + ecx*2]
shr eax, 1
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x2c], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68179c
mov eax, dword [0x948fd4]
test al, 1
jne 0x6817ef
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x34
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x6817d5
mov eax, 1
xchg dword [ebx], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 4], ecx
xor ecx, ecx
mov dword [ebx + 8], eax
mov word [ebx + eax*2 + 0xc], cx
jmp 0x6817f5
mov eax, dword [0x948fd4]
test al, 1
jne 0x6817ef
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x35
push 0x10
call fcn.007965bb
mov ecx, ebx
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x948fd8]
mov eax, dword [0x948fd4]
test al, 1
jne 0x681833
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x36
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp ebx, dword [0x948fd8]
je 0x68189b
mov eax, dword [0x948fd4]
test al, 1
jne 0x681879
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x38
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681893
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681893
push edi
call fcn.0079605d
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov ebx, 1
mov eax, dword [0x948fd4]
test al, 1
jne 0x6818db
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x39
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x948fd8]
je 0x6818fb
push dword [ebp - 0x20]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x826190]
mov byte [ebp - 4], 0x3a
mov eax, dword [0x948fd4]
test al, 1
jne 0x681941
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x3b
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 0x3a
cmp edi, dword [0x948fd8]
jne 0x68194d
xor eax, eax
jmp 0x681950
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x68197e
mov esi, dword [ebp - 0x28]
mov edi, eax
nop
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [ebx]
push eax
mov eax, dword [edx + 0x1c]
call eax
add ebx, 2
test al, al
je 0x681978
cmp ebx, edi
jb 0x681960
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x3c
jmp 0x681f62
cmp edi, 0xb
jne 0x6819ae
cmp edx, 0x20000
jne 0x6819ae
movsd xmm0, qword [ebp - 0xa0]
cvttsd2si edi, xmm0
movsd qword [ebp - 0x98], xmm0
push edi
jmp 0x682616
not edi
not edx
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x94], edx
movsd xmm0, qword [ebp - 0x98]
cvttsd2si edi, xmm0
push edi
jmp 0x682616
mov eax, dword [0x948fd4]
mov dword [ebp - 0x2c], 0x63
test al, 1
jne 0x681a16
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x1b
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
cmp esi, dword [0x948fd8]
jne 0x681a22
xor edi, edi
jmp 0x681a25
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x681ae4
mov eax, dword [0x948fd4]
test al, 1
jne 0x681a83
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x1c
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x681a88
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x681a90
xor eax, eax
jmp 0x681a93
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x2c]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x681ac5
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x50], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x681ad2
lea eax, [edx + ecx*2]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x50]
call fcn.0042c953
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x681b51
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x681b5b
cmp edx, 0x20000
jne 0x681b5b
mov eax, dword [0x948fd4]
test al, 1
jne 0x681b7a
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x1d
call fcn.007965bb
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov eax, ebx
xchg dword [edi], eax
xor eax, eax
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov word [edi + 0xc], ax
mov dword [0x948fd8], edi
mov byte [ebp - 4], 2
jmp 0x681b83
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x681b09
shr edx, 0x10
and edx, 0xf
cmp edx, 3
jne 0x681b09
push edi
jmp 0x682616
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
push 0
push 0
push 5
push str._NaN_
push 0
push 3
mov dword [ebp - 0x10], edi
call dword [0x826190]
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x681c4d
test edi, edi
je 0x681c01
mov eax, dword [0x948fd4]
test al, 1
jne 0x681be7
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x1e
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681c01
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681c01
push edi
call fcn.0079605d
add esp, 4
mov eax, dword [0x948fd4]
test al, 1
jne 0x681c3c
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x1f
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov edi, dword [0x948fd8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
jmp 0x681e81
cmp ecx, dword [edi + 4]
ja 0x681c72
cmp dword [edi], 1
mov edi, dword [ebp - 0x10]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
jg 0x681c72
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x681e81
mov eax, dword [0x948fd4]
test al, 1
jne 0x681cb4
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x20
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 2
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
jne 0x681d36
test ecx, ecx
je 0x681d19
lea eax, [ecx*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x681cfd
mov eax, dword [0x948fd4]
test al, 1
jne 0x681dd0
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x21
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x681db6
mov eax, 1
xchg dword [ebx], eax
mov ecx, dword [ebp - 0x20]
xor eax, eax
mov dword [ebx + 8], ecx
mov dword [ebx + 4], ecx
mov word [ebx + ecx*2 + 0xc], ax
jmp 0x681dd6
mov eax, dword [0x948fd4]
test al, 1
jne 0x681dd0
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x22
jmp 0x681dad
test ecx, ecx
je 0x681d99
lea eax, [ecx + ecx*2]
shr eax, 1
cmp eax, ecx
cmovb eax, ecx
mov dword [ebp - 0x2c], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.007965bb
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x681d7d
mov eax, dword [0x948fd4]
test al, 1
jne 0x681dd0
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x23
call fcn.007965bb
lea ecx, [ebx + 1]
jmp 0x681db6
mov eax, 1
xchg dword [ebx], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
mov dword [ebx + 4], ecx
xor ecx, ecx
mov dword [ebx + 8], eax
mov word [ebx + eax*2 + 0xc], cx
jmp 0x681dd6
mov eax, dword [0x948fd4]
test al, 1
jne 0x681dd0
or dword [0x948fd4], 1
mov byte [ebp - 4], 0x24
push 0x10
call fcn.007965bb
mov ecx, ebx
add esp, 4
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x948fd8]
mov eax, dword [0x948fd4]
test al, 1
jne 0x681e14
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x25
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp ebx, dword [0x948fd8]
je 0x681e7c
mov eax, dword [0x948fd4]
test al, 1
jne 0x681e5a
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x27
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x681e74
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x681e74
push edi
call fcn.0079605d
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov ebx, 1
mov eax, dword [0x948fd4]
test al, 1
jne 0x681ebc
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x28
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x948fd8]
je 0x681edc
push dword [ebp - 0x20]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x826190]
mov byte [ebp - 4], 0x29
mov eax, dword [0x948fd4]
test al, 1
jne 0x681f22
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 0x2a
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 0x29
cmp edi, dword [0x948fd8]
jne 0x681f2e
xor eax, eax
jmp 0x681f31
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x681f5e
mov esi, dword [ebp - 0x28]
mov edi, eax
mov edx, dword [esi]
mov ecx, esi
movzx eax, word [ebx]
push eax
mov eax, dword [edx + 0x1c]
call eax
add ebx, 2
test al, al
je 0x681f58
cmp ebx, edi
jb 0x681f40
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x2b
test edi, edi
je 0x68260f
mov eax, dword [0x948fd4]
test al, 1
jne 0x681fa4
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
mov dword [eax + 8], 0
xor ecx, ecx
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x68260f
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68260f
push edi
call fcn.0079605d
add esp, 4
mov byte [ebp - 4], 2
jmp 0x682626
mov eax, dword [0x948fd4]
mov dword [ebp - 0x2c], 0x73
test al, 1
jne 0x682015
or dword [0x948fd4], 1
push 0x10
mov byte [ebp - 4], 9
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
cmp esi, dword [0x948fd8]
jne 0x682021
xor edi, edi
jmp 0x682024
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042c844
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x6820e3
mov eax, dword [0x948fd4]
test al, 1
jne 0x682082
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0xa
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
jmp 0x682087
mov eax, dword [0x948fd8]
cmp esi, eax
jne 0x68208f
xor eax, eax
jmp 0x682092
mov eax, dword [esi + 8]
lea edx, [esi + 0xc]
xor ecx, ecx
test edx, edx
lea esi, [ebp - 0x2c]
cmovne ecx, eax
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], 1
cmp edi, ecx
jge 0x6820c4
lea eax, [edx + edi*2]
sub ecx, edi
mov dword [ebp - 0x58], eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x54], eax
jmp 0x6820d1
lea eax, [edx + ecx*2]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x58]
call fcn.0042c953
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x6820fd
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
jmp 0x682107
mov edi, 1
mov eax, 0x20000
push eax
push edi
mov dword [ebp - 0x10], eax
call fcn.005de4a4
add esp, 8
test al, al
jne 0x68212c
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push edi
call fcn.006a2ab0
add esp, 8
mov dword [ebp - 0x2c], edx
mov edi, eax
mov eax, dword [ebp - 0x24]
lea ecx, [edi + 0x10]
mov dword [ebp - 0x20], ecx
cmp word [eax], 0x53
jne 0x682615
mov eax, dword [0x948fd4]
test al, 1
jne 0x682187
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0xb
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov byte [ebp - 4], 2
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
mov eax, dword [0x948fd4]
mov edi, dword [0x948fd8]
mov dword [ebp - 0x10], edi
test ecx, ecx
je 0x68251c
mov ebx, ecx
cmp word [ebx], 0
je 0x6821a9
add ebx, 2
cmp word [ebx], 0
jne 0x6821a0
sub ebx, ecx
sar ebx, 1
jne 0x68225a
test edi, edi
je 0x682210
test al, 1
jne 0x682210
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0xc
call fcn.007965bb
mov ebx, 1
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, eax
je 0x682209
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x682209
push edi
call fcn.0079605d
add esp, 4
mov eax, dword [0x948fd4]
jmp 0x682215
mov ebx, 1
test al, 1
jne 0x68224c
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0xd
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov edi, dword [0x948fd8]
mov dword [ebp - 0x10], edi
jmp 0x68251c
cmp ebx, dword [edi + 4]
ja 0x682286
cmp dword [edi], 1
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
jg 0x682281
xor eax, eax
mov dword [edi + 8], ebx
mov word [edi + ebx*2 + 0xc], ax
mov eax, dword [0x948fd4]
jmp 0x682499
mov eax, dword [0x948fd4]
test al, 1
jne 0x6822c9
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0xe
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov byte [ebp - 4], 2
mov eax, dword [0x948fd4]
cmp edi, dword [0x948fd8]
jne 0x682340
test ebx, ebx
je 0x68232a
lea eax, [ebx*2 + 0x10]
push eax
call fcn.007965bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x68230c
mov eax, dword [0x948fd4]
test al, 1
jne 0x6823de
or eax, 1
mov dword [0x948fd4], eax
mov byte [ebp - 4], 0xf
jmp 0x6823af
mov eax, 1
xchg dword [ecx], eax
xor eax, eax
mov dword [ecx + 8], ebx
mov dword [ecx + 4], ebx
mov word [ecx + ebx*2 + 0xc], ax
mov eax, dword [0x948fd4]
jmp 0x6823e7
test al, 1
jne 0x6823de
or eax, 1
mov dword [0x948fd4], eax
mov byte [ebp - 4], 0x10
jmp 0x6823af
test ebx, ebx
je 0x68239f
lea eax, [ebx + ebx*2]
shr eax, 1
cmp eax, ebx
cmovb eax, ebx
mov dword [ebp - 0x2c], eax
lea eax, [eax*2 + 0x10]
push eax
call fcn.007965bb
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x682381
mov eax, dword [0x948fd4]
test al, 1
jne 0x6823de
or eax, 1
mov dword [0x948fd4], eax
mov byte [ebp - 4], 0x11
jmp 0x6823af
mov eax, 1
xchg dword [ecx], eax
mov eax, dword [ebp - 0x2c]
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx + 8], ebx
mov word [ecx + ebx*2 + 0xc], ax
mov eax, dword [0x948fd4]
jmp 0x6823e7
test al, 1
jne 0x6823de
or eax, 1
mov dword [0x948fd4], eax
mov byte [ebp - 4], 0x12
push 0x10
call fcn.007965bb
mov ecx, 1
add esp, 4
xchg dword [eax], ecx
mov dword [eax + 8], 0
xor ecx, ecx
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov eax, dword [0x948fd4]
mov ecx, dword [0x948fd8]
mov dword [ebp - 0x14], ecx
test al, 1
jne 0x682426
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x13
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov eax, dword [0x948fd4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [0x948fd8]
je 0x682517
test al, 1
jne 0x682474
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x15
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
mov eax, dword [0x948fd4]
cmp edi, dword [0x948fd8]
je 0x682493
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68248e
push edi
call fcn.0079605d
add esp, 4
mov eax, dword [0x948fd4]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x10], edi
test al, 1
jne 0x6824d3
or eax, 1
mov dword [0x948fd4], eax
push 0x10
mov byte [ebp - 4], 0x16
call fcn.007965bb
add esp, 4
mov ecx, 1
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
jne 0x6824df
xor edx, edx
jmp 0x6824e2
mov edx, dword [edi + 8]
xor ecx, ecx
lea eax, [edi + 0xc]
test eax, eax
mov dword [ebp - 0xa8], eax
cmovne ecx, edx
sub esp, 8
mov eax, esp
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
lea ecx, [ebp - 0xa8]
mov dword [eax + 4], ebx
lea eax, [ebp - 0xf0]
push eax
call fcn.0042c953
mov ebx, 1
sub esp, 8
mov byte [ebp - 4], 0x17
mov ecx, dword [edi + 8]
lea eax, [edi + 0xc]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [ebp - 0x84]
mov dword [edx], eax
call fcn.005a85d0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x18
mov eax, dword [eax]
add eax, 0xc
push eax
lea eax, [esi + 0xc]
push eax
push ecx
call fcn.0062fc00
add esp, 0x14
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x6825ba
mov eax, dword [0x948fd4]
test al, 1
jne 0x6825a0
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov word [eax + 0xc], cx
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 4], 0
mov dword [0x948fd8], eax
cmp ecx, dword [0x948fd8]
je 0x6825ba
or eax, 0xffffffff
lock xadd dword [ecx], eax
jne 0x6825ba
push ecx
call fcn.0079605d
add esp, 4
mov byte [ebp - 4], 0x1a
mov eax, dword [0x948fd4]
test al, 1
jne 0x6825f5
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x68260f
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68260f
push edi
call fcn.0079605d
add esp, 4
mov byte [ebp - 4], 2
jmp 0x682626
push ecx
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0xc]
push eax
push ecx
call fcn.0062fc00
add esp, 0xc
inc dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
add edi, 2
mov ebx, 1
cmp edi, dword [ebp - 0x88]
jb 0x6805c0
mov edi, dword [ebp - 0x34]
mov byte [ebp - 4], 0x55
test edi, edi
je 0x68269c
mov eax, dword [0x948fd4]
test al, 1
jne 0x682682
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
mov ecx, ebx
xchg dword [eax], ecx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp edi, dword [0x948fd8]
je 0x68269c
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68269c
push edi
call fcn.0079605d
add esp, 4
mov dword [ebp - 4], 0x56
test esi, esi
je 0x6826f6
mov eax, dword [0x948fd4]
test al, 1
jne 0x6826dc
or dword [0x948fd4], 1
push 0x10
call fcn.007965bb
add esp, 4
xchg dword [eax], ebx
xor ecx, ecx
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov word [eax + 0xc], cx
mov dword [0x948fd8], eax
cmp esi, dword [0x948fd8]
je 0x6826f6
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x6826f6
push esi
call fcn.0079605d
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8