Function at 0x682750
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x81a69a
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 0x68278e
mov edx, dword [ecx + 0x48]
shl eax, 3
sub edx, eax
mov edi, dword [edx]
mov eax, dword [edx + 4]
jmp 0x682798
mov edi, 1
mov eax, 0x20000
push eax
push edi
mov dword [ebp - 0x34], eax
call fcn.005df4a4
add esp, 8
test al, al
je 0x6849d6
mov eax, dword [0x94dbf4]
mov ebx, 1
test bl, al
jne 0x6827f8
or eax, ebx
mov dword [0x94dbf4], eax
push 0x10
mov dword [ebp - 4], 0
call fcn.00403650
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 [0x94dbf8], esi
jmp 0x682801
mov esi, dword [0x94dbf8]
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.0066a8e0
add esp, 8
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x34]
mov eax, dword [0x94dbf4]
lea ecx, [edi + 0xc]
mov dword [ebp - 0x24], ecx
test al, 1
jne 0x682869
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 3
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
cmp edi, dword [0x94dbf8]
jne 0x682875
xor eax, eax
jmp 0x682878
mov eax, dword [edi + 8]
inc dword [ebp + 0xc]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x88], eax
cmp ecx, eax
jae 0x684923
movsd xmm0, qword [0x8ae528]
mov edi, dword [ebp - 0x24]
movsd qword [ebp - 0xa0], xmm0
nop
movzx eax, word [edi]
test ax, ax
je 0x684920
mov esi, dword [ebp - 0x28]
mov ecx, eax
movzx edx, cx
cmp cx, 0x25
je 0x6828d5
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 0x6828b1
mov esi, dword [ebp - 0x18]
test dx, dx
je 0x684920
add edi, 2
mov dword [ebp - 0x24], edi
cmp word [edi], 0x25
jne 0x6828f7
mov ecx, dword [ebp - 0x28]
push 0x25
mov eax, dword [ecx]
call dword [eax + 0x1c]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.006849f0
movzx eax, word [edi]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test ax, ax
je 0x68490c
mov ecx, eax
mov eax, dword [ebp + 0xc]
lea edx, [eax*8]
mov dword [ebp - 0x14], edx
cmp cx, 0x2a
jne 0x682b80
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x4c]
jg 0x68294c
mov eax, dword [ecx + 0x48]
sub eax, edx
mov edi, dword [eax]
mov edx, dword [eax + 4]
cmp edi, 0xb
jne 0x682956
cmp edx, 0x20000
je 0x68296f
jmp 0x682956
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x68296f
shr edx, 0x10
and edx, 0xf
cmp edx, 3
je 0x682974
mov edi, 1
push edi
lea eax, [ebp - 0x7c]
push 0x8873c0
push eax
call fcn.00443152
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6829cb
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 5
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 4
mov eax, dword [edi]
cmp eax, dword [0x94dbf8]
je 0x682b0f
mov ecx, dword [eax + 8]
add eax, 0xc
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
test ecx, ecx
je 0x682b0f
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682a2f
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 6
call fcn.00403650
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 [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
jne 0x682a3b
xor edi, edi
jmp 0x682a3e
mov edi, dword [esi + 8]
lea eax, [ecx + edi]
push 1
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
test al, al
je 0x682b09
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682a92
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 7
call fcn.00403650
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 [0x94dbf8], eax
jmp 0x682a97
mov eax, dword [0x94dbf8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
cmp esi, eax
jne 0x682aa5
xor eax, eax
jmp 0x682aa8
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 0x682aeb
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.0042cb94
jmp 0x682b0f
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.0042cb94
jmp 0x682b0f
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x7c]
test edi, edi
je 0x682b6b
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682b51
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x682b6b
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x682b6b
push edi
call fcn.007984d6
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 0x682d48
cmp cx, 0x73
je 0x6842af
cmp cx, 0x53
je 0x6842af
cmp cx, 0x63
je 0x683cb0
cmp cx, 0x43
je 0x683cb0
push ecx
push str.dioxXbu
call fcn.007e713b
movzx ecx, word [edi]
add esp, 8
test eax, eax
jne 0x6836ab
push ecx
push str.fgGeE
call fcn.007e713b
movzx ecx, word [edi]
add esp, 8
test eax, eax
jne 0x683086
cmp ecx, 0x76
je 0x682eca
cmp ecx, 0x56
je 0x682eca
test cx, cx
je 0x68490c
cmp ecx, 0x25
je 0x68490c
push ecx
call fcn.0079d26f
add esp, 4
test eax, eax
jne 0x682c17
movzx eax, word [edi]
cmp eax, 0x2e
jne 0x682d67
movzx eax, word [edi]
mov dword [ebp - 0x10], eax
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682c5f
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x51
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682c64
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x682c6c
xor edi, edi
jmp 0x682c6f
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
test al, al
je 0x682d3f
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682cc7
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x52
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682ccc
mov eax, dword [0x94dbf8]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
cmp esi, eax
jne 0x682cda
xor eax, eax
jmp 0x682cdd
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 0x682d21
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.0042cb94
jmp 0x682d45
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.0042cb94
jmp 0x682d45
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 0x68490c
mov eax, dword [ebp + 0xc]
jmp 0x682921
mov dword [ebp - 0x10], eax
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682dac
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x53
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682db1
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x682db9
xor edi, edi
jmp 0x682dbc
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x682e78
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682e1a
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x54
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682e1f
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x682e27
xor eax, eax
jmp 0x682e2a
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 0x682e5c
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 0x682e69
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.0042cb94
lea edi, [esi + 0xc]
test edi, edi
je 0x684909
cmp word [edi], 0
mov eax, edi
je 0x682e99
nop dword [eax + eax]
add eax, 2
cmp word [eax], 0
jne 0x682e90
sub eax, edi
sar eax, 1
lea ebx, [edi + eax*2]
cmp edi, ebx
jae 0x684909
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 0x684909
cmp edi, ebx
jb 0x682ea8
jmp 0x684909
mov eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682f11
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x4e
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682f16
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x682f1e
xor edi, edi
jmp 0x682f21
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x682fdd
mov eax, dword [0x94dbf4]
test al, 1
jne 0x682f7f
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x4f
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x682f84
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x682f8c
xor eax, eax
jmp 0x682f8f
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 0x682fc1
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 0x682fce
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.0042cb94
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x682ffa
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 0x683006
mov edi, 1
mov dword [ebp - 0x10], 0x20000
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x38]
movzx ecx, word [eax]
mov eax, 0x89683c
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.006260c0
push 1
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x120]
push dword [ebp - 0x10]
push edi
call fcn.0062c240
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 2
call fcn.00626390
mov esi, dword [ebp - 0x18]
jmp 0x684906
mov eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6830cd
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x3d
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x6830d2
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x6830da
xor edi, edi
jmp 0x6830dd
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x68319c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68313b
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x3e
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x683140
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x683148
xor eax, eax
jmp 0x68314b
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 0x68317d
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 0x68318a
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.0042cb94
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x683230
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x68323a
cmp edx, 0x20000
jne 0x68323a
cmp edi, 0xb
jne 0x6831d6
cmp edx, 0x20000
je 0x683657
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x683657
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68326a
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x3f
call fcn.00403650
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 [0x94dbf8], edi
mov byte [ebp - 4], 2
jmp 0x683273
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x6831c5
mov eax, edx
shr eax, 0x10
and eax, 0xf
cmp eax, 3
jne 0x6831c5
movd xmm0, edi
cvtdq2pd xmm0, xmm0
jmp 0x68368e
mov edi, dword [0x94dbf8]
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 [0x82819c]
mov ecx, eax
mov dword [ebp - 0x10], ecx
test ecx, ecx
jne 0x68333d
test edi, edi
je 0x6832f1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6832d7
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x40
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x6832f1
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x6832f1
push edi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68332c
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x41
call fcn.00403650
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 [0x94dbf8], eax
mov edi, dword [0x94dbf8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], edi
jmp 0x68356e
cmp ecx, dword [edi + 4]
ja 0x683362
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 0x683362
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x68356e
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6833a4
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x42
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
jne 0x683423
test ecx, ecx
je 0x683409
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x6833ed
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6834bd
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x43
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x6834a3
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 0x6834c3
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6834bd
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x44
jmp 0x68349a
test ecx, ecx
je 0x683486
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.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68346a
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6834bd
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x45
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x6834a3
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 0x6834c3
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6834bd
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x46
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x94dbf8]
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683501
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x47
call fcn.00403650
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 [0x94dbf8], eax
cmp ebx, dword [0x94dbf8]
je 0x683569
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683547
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x49
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x683561
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x683561
push edi
call fcn.007984d6
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x20], edi
mov ebx, 1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6835a9
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x4a
call fcn.00403650
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 [0x94dbf8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x94dbf8]
je 0x6835c9
push dword [ebp - 0x10]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x82819c]
mov byte [ebp - 4], 0x4b
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68360f
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x4c
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 0x4b
cmp edi, dword [0x94dbf8]
jne 0x68361b
xor eax, eax
jmp 0x68361e
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x68364e
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 0x683648
cmp ebx, edi
jb 0x683630
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x4d
jmp 0x684242
cmp edi, 0xb
jne 0x683676
cmp edx, 0x20000
jne 0x683676
movsd xmm0, qword [ebp - 0xa0]
movsd qword [ebp - 0x90], xmm0
jmp 0x68368e
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.006317a0
add esp, 0x10
jmp 0x684906
mov eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6836f2
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x2c
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x6836f7
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x6836ff
xor edi, edi
jmp 0x683702
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x6837c1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683760
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x2d
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x683765
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x68376d
xor eax, eax
jmp 0x683770
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 0x6837a2
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 0x6837af
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.0042cb94
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x6837e8
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x6837f2
cmp edx, 0x20000
je 0x683811
jmp 0x6837f2
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x683811
mov eax, edx
shr eax, 0x10
and eax, 0xf
cmp eax, 3
je 0x683e54
cmp edi, 0xb
jne 0x683822
cmp edx, 0x20000
je 0x683c67
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x683c67
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68387c
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x2e
call fcn.00403650
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 [0x94dbf8], edi
mov byte [ebp - 4], 2
jmp 0x683885
mov edi, dword [0x94dbf8]
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 [0x82819c]
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x68394f
test edi, edi
je 0x683903
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6838e9
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x2f
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x683903
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x683903
push edi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68393e
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x30
call fcn.00403650
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 [0x94dbf8], eax
mov edi, dword [0x94dbf8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
jmp 0x683b80
cmp ecx, dword [edi + 4]
ja 0x683974
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 0x683974
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x683b80
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6839b6
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x31
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
jne 0x683a35
test ecx, ecx
je 0x683a1b
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x6839ff
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683acf
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x32
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x683ab5
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 0x683ad5
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683acf
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x33
jmp 0x683aac
test ecx, ecx
je 0x683a98
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.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x683a7c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683acf
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x34
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x683ab5
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 0x683ad5
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683acf
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x35
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x94dbf8]
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683b13
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x36
call fcn.00403650
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 [0x94dbf8], eax
cmp ebx, dword [0x94dbf8]
je 0x683b7b
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683b59
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x38
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x683b73
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x683b73
push edi
call fcn.007984d6
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov ebx, 1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683bbb
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x39
call fcn.00403650
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 [0x94dbf8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x94dbf8]
je 0x683bdb
push dword [ebp - 0x20]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x82819c]
mov byte [ebp - 4], 0x3a
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683c21
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x3b
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 0x3a
cmp edi, dword [0x94dbf8]
jne 0x683c2d
xor eax, eax
jmp 0x683c30
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x683c5e
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 0x683c58
cmp ebx, edi
jb 0x683c40
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x3c
jmp 0x684242
cmp edi, 0xb
jne 0x683c8e
cmp edx, 0x20000
jne 0x683c8e
movsd xmm0, qword [ebp - 0xa0]
cvttsd2si edi, xmm0
movsd qword [ebp - 0x98], xmm0
push edi
jmp 0x6848f6
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 0x6848f6
mov eax, dword [0x94dbf4]
mov dword [ebp - 0x2c], 0x63
test al, 1
jne 0x683cf6
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x1b
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
cmp esi, dword [0x94dbf8]
jne 0x683d02
xor edi, edi
jmp 0x683d05
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x683dc4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683d63
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x1c
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x683d68
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x683d70
xor eax, eax
jmp 0x683d73
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 0x683da5
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 0x683db2
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.0042cb94
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x683e31
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
cmp edi, 0xb
jne 0x683e3b
cmp edx, 0x20000
jne 0x683e3b
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683e5a
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x1d
call fcn.00403650
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 [0x94dbf8], edi
mov byte [ebp - 4], 2
jmp 0x683e63
mov edi, 1
mov edx, 0x20000
mov ecx, edx
xor eax, eax
and ecx, 0xfff00000
or eax, ecx
jne 0x683de9
shr edx, 0x10
and edx, 0xf
cmp edx, 3
jne 0x683de9
push edi
jmp 0x6848f6
mov edi, dword [0x94dbf8]
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 [0x82819c]
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x683f2d
test edi, edi
je 0x683ee1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683ec7
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x1e
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x683ee1
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x683ee1
push edi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683f1c
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x1f
call fcn.00403650
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 [0x94dbf8], eax
mov edi, dword [0x94dbf8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
jmp 0x684161
cmp ecx, dword [edi + 4]
ja 0x683f52
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 0x683f52
xor eax, eax
mov dword [edi + 8], ecx
mov word [edi + ecx*2 + 0xc], ax
jmp 0x684161
mov eax, dword [0x94dbf4]
test al, 1
jne 0x683f94
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x20
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
jne 0x684016
test ecx, ecx
je 0x683ff9
lea eax, [ecx*2 + 0x10]
push eax
call fcn.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x683fdd
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6840b0
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x21
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x684096
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 0x6840b6
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6840b0
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x22
jmp 0x68408d
test ecx, ecx
je 0x684079
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.00403650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x68405d
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6840b0
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x23
call fcn.00403650
lea ecx, [ebx + 1]
jmp 0x684096
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 0x6840b6
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6840b0
or dword [0x94dbf4], 1
mov byte [ebp - 4], 0x24
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
mov dword [eax + 4], ecx
mov ebx, dword [0x94dbf8]
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6840f4
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x25
call fcn.00403650
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 [0x94dbf8], eax
cmp ebx, dword [0x94dbf8]
je 0x68415c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68413a
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x27
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x684154
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x684154
push edi
call fcn.007984d6
add esp, 4
mov edi, ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov ebx, 1
mov eax, dword [0x94dbf4]
test al, 1
jne 0x68419c
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x28
call fcn.00403650
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 [0x94dbf8], eax
lea ebx, [edi + 0xc]
cmp edi, dword [0x94dbf8]
je 0x6841bc
push dword [ebp - 0x20]
push ebx
push 5
push str._NaN_
push 0
push 0
call dword [0x82819c]
mov byte [ebp - 4], 0x29
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684202
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 0x2a
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 0x29
cmp edi, dword [0x94dbf8]
jne 0x68420e
xor eax, eax
jmp 0x684211
mov eax, dword [edi + 8]
lea eax, [ebx + eax*2]
mov dword [ebp - 0x2c], eax
cmp ebx, eax
jae 0x68423e
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 0x684238
cmp ebx, edi
jb 0x684220
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0x2b
test edi, edi
je 0x6848ef
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684284
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x6848ef
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x6848ef
push edi
call fcn.007984d6
add esp, 4
mov byte [ebp - 4], 2
jmp 0x684906
mov eax, dword [0x94dbf4]
mov dword [ebp - 0x2c], 0x73
test al, 1
jne 0x6842f5
or dword [0x94dbf4], 1
push 0x10
mov byte [ebp - 4], 9
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
cmp esi, dword [0x94dbf8]
jne 0x684301
xor edi, edi
jmp 0x684304
mov edi, dword [esi + 8]
push 1
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042ca85
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x18], esi
test al, al
je 0x6843c3
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684362
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0xa
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
jmp 0x684367
mov eax, dword [0x94dbf8]
cmp esi, eax
jne 0x68436f
xor eax, eax
jmp 0x684372
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 0x6843a4
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 0x6843b1
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.0042cb94
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x4c]
jg 0x6843dd
mov ecx, dword [ecx + 0x48]
shl eax, 3
sub ecx, eax
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
jmp 0x6843e7
mov edi, 1
mov eax, 0x20000
push eax
push edi
mov dword [ebp - 0x10], eax
call fcn.005df4a4
add esp, 8
test al, al
jne 0x68440c
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
push edi
call fcn.006a4dd0
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 0x6848f5
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684467
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0xb
call fcn.00403650
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 [0x94dbf8], eax
mov eax, dword [0x94dbf4]
mov edi, dword [0x94dbf8]
mov dword [ebp - 0x10], edi
test ecx, ecx
je 0x6847fc
mov ebx, ecx
cmp word [ebx], 0
je 0x684489
add ebx, 2
cmp word [ebx], 0
jne 0x684480
sub ebx, ecx
sar ebx, 1
jne 0x68453a
test edi, edi
je 0x6844f0
test al, 1
jne 0x6844f0
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0xc
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, eax
je 0x6844e9
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x6844e9
push edi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
jmp 0x6844f5
mov ebx, 1
test al, 1
jne 0x68452c
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0xd
call fcn.00403650
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 [0x94dbf8], eax
mov edi, dword [0x94dbf8]
mov dword [ebp - 0x10], edi
jmp 0x6847fc
cmp ebx, dword [edi + 4]
ja 0x684566
cmp dword [edi], 1
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x18], esi
jg 0x684561
xor eax, eax
mov dword [edi + 8], ebx
mov word [edi + ebx*2 + 0xc], ax
mov eax, dword [0x94dbf4]
jmp 0x684779
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6845a9
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0xe
call fcn.00403650
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 [0x94dbf8], eax
mov byte [ebp - 4], 2
mov eax, dword [0x94dbf4]
cmp edi, dword [0x94dbf8]
jne 0x684620
test ebx, ebx
je 0x68460a
lea eax, [ebx*2 + 0x10]
push eax
call fcn.00403650
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x6845ec
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6846be
or eax, 1
mov dword [0x94dbf4], eax
mov byte [ebp - 4], 0xf
jmp 0x68468f
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 [0x94dbf4]
jmp 0x6846c7
test al, 1
jne 0x6846be
or eax, 1
mov dword [0x94dbf4], eax
mov byte [ebp - 4], 0x10
jmp 0x68468f
test ebx, ebx
je 0x68467f
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.00403650
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
test ecx, ecx
jne 0x684661
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6846be
or eax, 1
mov dword [0x94dbf4], eax
mov byte [ebp - 4], 0x11
jmp 0x68468f
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 [0x94dbf4]
jmp 0x6846c7
test al, 1
jne 0x6846be
or eax, 1
mov dword [0x94dbf4], eax
mov byte [ebp - 4], 0x12
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
mov eax, dword [0x94dbf4]
mov ecx, dword [0x94dbf8]
mov dword [ebp - 0x14], ecx
test al, 1
jne 0x684706
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x13
call fcn.00403650
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 [0x94dbf8], eax
mov eax, dword [0x94dbf4]
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [0x94dbf8]
je 0x6847f7
test al, 1
jne 0x684754
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x15
call fcn.00403650
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 [0x94dbf8], eax
mov eax, dword [0x94dbf4]
cmp edi, dword [0x94dbf8]
je 0x684773
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68476e
push edi
call fcn.007984d6
add esp, 4
mov eax, dword [0x94dbf4]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x10], edi
test al, 1
jne 0x6847b3
or eax, 1
mov dword [0x94dbf4], eax
push 0x10
mov byte [ebp - 4], 0x16
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
jne 0x6847bf
xor edx, edx
jmp 0x6847c2
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.0042cb94
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.005a95d0
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.006317a0
add esp, 0x14
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x68489a
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684880
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp ecx, dword [0x94dbf8]
je 0x68489a
or eax, 0xffffffff
lock xadd dword [ecx], eax
jne 0x68489a
push ecx
call fcn.007984d6
add esp, 4
mov byte [ebp - 4], 0x1a
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6848d5
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x6848ef
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x6848ef
push edi
call fcn.007984d6
add esp, 4
mov byte [ebp - 4], 2
jmp 0x684906
push ecx
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0xc]
push eax
push ecx
call fcn.006317a0
add esp, 0xc
inc dword [ebp + 0xc]
mov edi, dword [ebp - 0x24]
add edi, 2
mov ebx, 1
cmp edi, dword [ebp - 0x88]
jb 0x6828a0
mov edi, dword [ebp - 0x34]
mov byte [ebp - 4], 0x55
test edi, edi
je 0x68497c
mov eax, dword [0x94dbf4]
test al, 1
jne 0x684962
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp edi, dword [0x94dbf8]
je 0x68497c
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x68497c
push edi
call fcn.007984d6
add esp, 4
mov dword [ebp - 4], 0x56
test esi, esi
je 0x6849d6
mov eax, dword [0x94dbf4]
test al, 1
jne 0x6849bc
or dword [0x94dbf4], 1
push 0x10
call fcn.00403650
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 [0x94dbf8], eax
cmp esi, dword [0x94dbf8]
je 0x6849d6
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x6849d6
push esi
call fcn.007984d6
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