Function at 0x682db0
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc20
mov esi, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
mov edi, dword [ebp + 0xc]
cmp eax, 0x1a
je 0x6830ce
cmp eax, 0x1b
jne 0x68366f
mov dword [esp + 0x31c], 0
mov dword [esp + 0x318], 0
lea eax, [esp + 0x118]
mov dword [esp], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call fcn.007ce3c0
xorps xmm0, xmm0
movaps xmmword [esp + 0x100], xmm0
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf8], 0
test esi, esi
mov dword [esp + 0x98], esi
mov dword [esp + 0xc8], 0x66
je 0x683712
test ebx, ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov byte [esp + 0xba], al
mov byte [esp + 0xc3], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x7b], al
mov byte [esp + 0xb8], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xb9], al
mov dword [esp + 0xe0], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe4], 0
mov byte [esp + 0x6b], al
je 0x6851a3
mov ebx, 0x10
mov byte [esp + 0x6b], 0x6e
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
lea ecx, [esp + 0x31c]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x318]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00671530
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd4], 0
test eax, eax
mov dword [esp + 0xa4], eax
mov byte [esp + 0xba], al
mov byte [esp + 0xc3], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x7b], al
mov byte [esp + 0xb8], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xb9], al
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe4], 0
mov dword [esp + 0xec], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x64], eax
jne 0x6851a3
jmp 0x683f47
mov ebx, dword [ebp + 0x30]
mov dword [esp + 0xa0c], 0
mov dword [esp + 0xa08], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x9f0], xmm0
movaps xmmword [esp + 0x9d0], xmm0
movaps xmmword [esp + 0x9c0], xmm0
movaps xmmword [esp + 0x9b0], xmm0
movaps xmmword [esp + 0x9a0], xmm0
mov byte [esp + 0x9e0], 0
movaps xmmword [esp + 0x990], xmm0
lea eax, [esp + 0x790]
mov dword [esp], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0x78c], 0
mov dword [esp + 0x788], 0
lea eax, [esp + 0x388]
mov dword [esp], eax
mov dword [esp + 8], 0x400
mov dword [esp + 4], 0
call fcn.007ce3c0
test ebx, ebx
sete al
mov ecx, ebx
or ecx, 2
xor ebx, 2
add ebx, ecx
setne cl
cmp edi, 0x30
sbb dl, dl
imul edi, edi
and edi, 3
cmp edi, 2
sbb ah, ah
and ah, dl
mov dword [esp + 0xf0], 0x66
test ah, 1
jne 0x683707
test esi, esi
mov edx, dword [ebp + 0x20]
je 0x683707
and al, cl
jne 0x683707
test edx, edx
mov edi, 0
mov ebx, 0
mov esi, 0
je 0x683a00
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax]
lea ecx, [esp + 0xa0c]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xa08]
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00671530
xor esi, esi
test eax, eax
jne 0x6839f5
mov ecx, eax
and ecx, 1
xor ecx, eax
mov dword [esp + 0xf0], eax
not ecx
test ecx, ecx
mov edi, 0
mov ebx, 0
je 0x683a00
mov eax, dword [esp + 0xa0c]
mov dword [esp], eax
mov dword [esp + 4], 0x118
call fcn.00493840
mov esi, eax
mov dword [esp + 0xf0], 0x67
test esi, esi
jne 0x683266
mov eax, esi
not eax
and eax, 1
add eax, esi
jne 0x6839fc
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xc]
add ecx, dword [eax]
add ecx, dword [eax + 0x18]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 0x24]
mov dword [esp + 0xe0], edx
mov eax, dword [ebp + 0x2c]
mov dword [eax + 0x108], 0
lea eax, [edx + ecx + 0x3f7]
shr eax, 3
mov ecx, 0x20408103
mul ecx
shr edx, 4
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0xa0c]
mov eax, edx
or eax, 2
mov edi, edx
xor edi, 2
add edi, eax
setne al
movzx edi, al
mov eax, edx
sub eax, edi
add eax, ecx
mov dword [esp + 0xec], eax
xor edx, edx
div ecx
mov edi, esi
xor esi, esi
test ecx, ecx
je 0x6833aa
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x6833aa
sub dword [esp + 0xec], edx
mov ecx, 1
nop dword [eax + eax]
mov dword [esp + 0xf4], ecx
mov eax, dword [esp + 0xa08]
mov eax, dword [eax + esi*4]
imul ebx, esi, 0x118
lea ecx, [edi + ebx]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x101
call fcn.007cd670
xor edx, edx
mov eax, dword [esp + 0xec]
div dword [esp + 0xa0c]
mov ecx, eax
imul ecx, esi
mov edx, dword [esp + 0xe8]
sub edx, ecx
mov ecx, dword [esp + 0xf4]
cmp edx, eax
cmovae edx, eax
mov dword [edi + ebx + 0x10c], edx
mov dword [edi + ebx + 0x110], ecx
lea eax, [edx + ecx - 1]
mov dword [edi + ebx + 0x114], eax
add ecx, edx
shl edx, 0xa
or edx, 0x200
mov dword [edi + ebx + 0x104], edx
mov eax, dword [ebp + 0x2c]
add dword [eax + 0x108], edx
mov eax, 3
sub eax, esi
xor eax, esi
setne al
movzx eax, al
add esi, eax
cmp esi, dword [esp + 0xa0c]
jb 0x683300
mov esi, edi
mov dword [esp + 4], 0x60
mov dword [esp], 1
call fcn.00493840
mov edi, eax
xor ebx, ebx
test edi, edi
je 0x683a00
mov ecx, edi
imul ecx, ecx
and ecx, 3
cmp ecx, 2
je 0x683a00
mov ecx, dword [esp + 0xe0]
add ecx, dword [esp + 0xe4]
mov dword [edi], 0x46524731
mov dword [edi + 4], ecx
lea ebx, [edi + 8]
mov ecx, dword [ebp + 0x30]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 8], 0x30
mov dword [esp + 0xf4], edi
call fcn.007c51d0
mov word [edi + 0x54], 1
lea eax, [edi + 0x50]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.0067a980
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x683a40
lea eax, [esp + 0x9f0]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.0067a980
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x683a40
mov dword [esp + 0xec], esi
mov edi, dword [ebp + 0x2c]
lea eax, [edi + 0x110]
lea ecx, [esp + 0x9f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.007c51d0
mov dword [esp + 0x788], 0x1adfe4e3
lea edi, [esp + 0x788]
mov dword [esp], edi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0x78c], eax
mov esi, dword [esp + 0xf4]
add esi, 0x38
mov dword [esp + 0x14], esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
lea eax, [esp + 0x9f0]
mov dword [esp], eax
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x10
call fcn.0067a820
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x683af5
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 0x10
call fcn.007ca970
mov ecx, dword [esp + 0xf4]
mov dword [ecx + 0x48], eax
mov edi, dword [ebp + 0x2c]
mov eax, dword [edi]
mov dword [esp + 8], eax
lea esi, [esp + 0x990]
mov dword [esp], esi
mov dword [esp + 4], 0x10
call fcn.0067a720
mov ecx, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x683af5
mov dword [esp + 0xd8], ebx
lea eax, [edi + 0x120]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.007c51d0
mov esi, dword [esp + 0xec]
mov eax, dword [esi + 0x104]
mov dword [esp + 4], eax
mov dword [esp], 1
call fcn.00493840
mov ebx, eax
test ebx, ebx
je 0x683a47
mov dword [esp + 0x788], 0x725db5a3
lea eax, [esp + 0x788]
mov dword [esp], eax
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0x78c], eax
lea eax, [esp + 0x38c]
mov dword [esp], eax
mov dword [esp + 8], 0xf3d456ab
mov dword [esp + 4], 0x3fc
call fcn.007ca970
mov dword [esp + 0x388], eax
lea edi, [esp + 0x388]
mov dword [esp + 0x14], edi
lea eax, [esp + 0x9f0]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x788]
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x400
call fcn.0067a820
test eax, eax
je 0x683b39
mov dword [esp + 0xf0], eax
mov edi, dword [esp + 0xf4]
jmp 0x683a00
lea eax, [esp + 0xa1c]
mov dword [esp], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call fcn.007ce3c0
mov dword [esp + 0xa14], 0
mov dword [esp + 0xa10], 0
test ebx, ebx
mov esi, 0x66
je 0x683b13
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x130]
test ebx, ebx
je 0x683b13
mov eax, dword [eax + 0x13c]
mov esi, dword [eax + 0x108]
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.0067a470
mov ecx, eax
not ecx
and ecx, 1
add ecx, eax
setne cl
movzx ecx, cl
add ecx, eax
jne 0x683828
mov esi, 0x6f
jmp 0x683b13
xor edi, edi
xor ebx, ebx
xor esi, esi
jmp 0x683a00
mov dword [esp + 0xd4], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x9c], eax
mov byte [esp + 0xba], al
mov byte [esp + 0xc3], al
mov byte [esp + 0x5f], al
mov byte [esp + 0x8f], al
mov byte [esp + 0x7b], al
mov byte [esp + 0xb8], al
mov byte [esp + 0xbb], al
mov byte [esp + 0xb9], al
mov dword [esp + 0xe0], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xe4], 0
mov byte [esp + 0x6b], al
jmp 0x6851a3
lea eax, [esp + 0xa1c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 0xf4], esi
mov dword [esp + 8], 0x200
call fcn.0067a450
mov esi, 0x6b
cmp eax, 0x200
jne 0x683b13
imul eax, eax
and eax, 3
cmp eax, 1
ja 0x683b13
mov dword [esp + 0xa10], 0x9def3ab8
lea esi, [esp + 0xa10]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0xa14], eax
lea eax, [esp + 0xa1c]
mov ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 4], 0x200
call fcn.0067a8d0
mov esi, eax
and eax, 1
inc eax
xor eax, esi
sete al
movzx eax, al
cmp esi, eax
jne 0x683b13
mov esi, dword [ebp + 0x18]
mov dword [esp + 4], ebx
lea eax, [esp + 0xa1c]
mov dword [esp], eax
mov dword [esp + 8], 0x60
call fcn.007c51d0
cmp edi, 1
jne 0x683921
imul edi, edi
and edi, 3
cmp edi, 1
ja 0x683921
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0xb34], ecx
mov dword [esp + 0xb38], eax
mov eax, esi
or eax, 2
mov ecx, esi
xor ecx, 2
add ecx, eax
setne al
movzx eax, al
cmp esi, eax
mov esi, dword [ebp + 0x20]
jne 0x683944
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0xb30], eax
mov dword [esp + 0xa10], 0x9def3ab8
lea eax, [esp + 0xa10]
mov edi, eax
mov dword [esp], edi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0xa14], eax
lea eax, [esp + 0xa1c]
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x200
call fcn.0067a820
mov esi, eax
test esi, esi
mov ecx, dword [ebp + 8]
je 0x6839b4
mov al, 1
test al, al
jne 0x683b13
mov edi, ecx
mov esi, dword [esp + 0xf4]
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.0067a470
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
setne cl
movzx ecx, cl
add ecx, eax
jne 0x683a52
mov esi, 0x6f
jmp 0x683b13
mov dword [esp + 0xf0], eax
xor edi, edi
xor ebx, ebx
mov eax, dword [esp + 0xa08]
test eax, eax
je 0x683a1c
mov ecx, dword [ebp + 0x2c]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.006719a0
mov dword [esp], ebx
call fcn.004936c0
mov dword [esp], esi
call fcn.004936c0
mov dword [esp], edi
call fcn.004936c0
mov eax, dword [esp + 0xf0]
jmp 0x683f3f
mov dword [esp + 0xf0], eax
xor ebx, ebx
mov edi, dword [esp + 0xf4]
jmp 0x683a00
lea eax, [esp + 0xa1c]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 0x200
call fcn.0067a460
cmp eax, 0x200
mov esi, 0x6f
mov edx, edi
jne 0x683b13
mov eax, dword [edx + 0x138]
mov edi, 0x108
mov ebx, 1
test eax, eax
jne 0x683aa2
mov ecx, 3
sub ecx, eax
xor ecx, eax
je 0x683aa2
xor esi, esi
jmp 0x683b13
mov eax, dword [edx + 0x13c]
mov eax, dword [eax + edi]
mov dword [esp], eax
mov esi, edx
call fcn.0067a420
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
mov edx, esi
setne cl
movzx ecx, cl
mov esi, 5
add ecx, eax
je 0x683b13
cmp ebx, dword [edx + 0x138]
jae 0x683b11
mov eax, ebx
or eax, 2
mov ecx, ebx
xor ecx, 2
add ecx, eax
add edi, 0x118
inc ebx
test ecx, ecx
jne 0x683aa2
xor esi, esi
jmp 0x683b13
mov dword [esp + 0xf0], eax
xor ebx, ebx
mov esi, dword [esp + 0xec]
mov edi, dword [esp + 0xf4]
jmp 0x683a00
xor esi, esi
lea eax, [esp + 0xa1c]
mov dword [esp], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call fcn.007c51a0
mov eax, esi
jmp 0x683f3f
mov ecx, dword [esi + 0x10c]
xor eax, eax
test ecx, ecx
jne 0x683b50
mov edx, 3
sub edx, ecx
xor edx, ecx
jne 0x683b9e
mov esi, eax
shl eax, 0xa
lea eax, [ebx + eax + 0x200]
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], 0x400
call fcn.007c51d0
mov eax, esi
not eax
and eax, 1
add eax, esi
setne al
movzx eax, al
add eax, esi
mov ecx, dword [esp + 0xec]
cmp eax, dword [ecx + 0x10c]
jae 0x683b9e
mov ecx, eax
or ecx, 2
mov edx, eax
xor edx, 2
add edx, ecx
jne 0x683b50
lea eax, [esp + 0x9a0]
mov dword [esp], eax
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0xf0], 0
cmp dword [esp + 0xa0c], 0
mov eax, 0
je 0x683eab
mov edi, dword [esp + 0xec]
add edi, 0xffffffc0
xor esi, esi
mov dword [esp + 0xe0], 1
lea eax, [esp + 0x320]
mov dword [esp], eax
mov dword [esp + 8], 0x68
mov dword [esp + 4], 0
call fcn.007c51a0
mov dword [esp + 0x320], 0x464c4e4b
mov dword [esp + 0x324], 1
lea eax, [esp + 0x328]
mov dword [esp], eax
mov dword [esp + 4], 4
call fcn.0067a980
mov ecx, eax
and ecx, 1
inc ecx
xor ecx, eax
sete cl
movzx ecx, cl
cmp eax, ecx
jne 0x683ee9
mov dword [esp + 0x32c], esi
mov eax, dword [edi + 0x144]
mov dword [esp + 0x330], eax
mov dword [esp + 0x33c], 0
mov dword [esp + 0x338], 0
lea eax, [esp + 0x9a0]
mov dword [esp + 4], eax
lea eax, [esp + 0x340]
mov dword [esp], eax
mov dword [esp + 8], 0x40
call fcn.007cd670
lea eax, [edi + 0x40]
mov dword [esp + 0xe8], eax
mov dword [esp], eax
mov dword [esp + 4], 0x10000002
call fcn.0067a3f0
mov edx, eax
or edx, 2
mov ecx, eax
xor ecx, 2
add ecx, edx
setne cl
movzx ecx, cl
add ecx, eax
je 0x683ef5
mov ecx, dword [edi + 0x144]
mov dword [esp + 8], ecx
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [esp + 0xe4], eax
call fcn.0067a460
cmp eax, dword [edi + 0x144]
mov dword [esp + 0xdc], edi
jne 0x683f05
mov eax, dword [esp + 0xf4]
mov dword [esp + 4], eax
lea edi, [esp + 0x790]
mov dword [esp], edi
mov dword [esp + 8], 0x60
call fcn.007c51d0
lea eax, [esp + 0x320]
mov dword [esp + 4], eax
lea eax, [esp + 0x890]
mov dword [esp], eax
mov dword [esp + 8], 0x68
call fcn.007c51d0
mov dword [esp + 0x788], 0x9def3ab8
lea esi, [esp + 0x788]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0x78c], eax
mov dword [esp + 0x14], edi
lea eax, [esp + 0x990]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], edi
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x200
call fcn.0067a820
mov esi, eax
test esi, esi
jne 0x683f24
mov eax, esi
imul eax, eax
and eax, 3
cmp eax, 2
jae 0x683f24
mov esi, dword [esp + 0xe4]
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.0067a470
cmp eax, 0xffffffff
mov edi, dword [esp + 0xdc]
je 0x683ee4
mov al, 1
test al, al
je 0x683ee4
lea eax, [esp + 0x790]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], 0x200
call fcn.0067a460
cmp eax, 0x200
jne 0x683ee4
mov dword [edi + 0x148], esi
mov esi, dword [esp + 0x328]
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
call fcn.007c3e70
cmp eax, 0x41
jb 0x683e50
mov ecx, eax
and ecx, 1
xor ecx, eax
not ecx
test ecx, ecx
je 0x683e50
add eax, edi
jmp 0x683e57
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
lea eax, [esp + 0x9a0]
mov dword [esp], eax
mov dword [esp + 8], 0x40
call fcn.007cd670
mov byte [esp + 0x9e0], 0
mov eax, dword [esp + 0xa0c]
mov edx, dword [esp + 0xe0]
cmp edx, eax
jae 0x683eab
mov ecx, edx
imul ecx, ecx
and ecx, 3
add edi, 0x118
inc edx
mov dword [esp + 0xe0], edx
cmp ecx, 2
jb 0x683bf2
mov ecx, dword [ebp + 0x2c]
mov dword [ecx + 0x138], eax
mov eax, dword [esp + 0xec]
mov dword [ecx + 0x13c], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 0x130], eax
mov eax, dword [esp + 0xd8]
mov dword [ecx + 0x10c], eax
xor esi, esi
xor edi, edi
jmp 0x683a00
mov dword [esp], esi
jmp 0x683f0f
mov dword [esp + 0xf0], eax
jmp 0x683afe
mov dword [esp + 0xf0], 0x6f
jmp 0x683afe
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00648d90
mov dword [esp + 0xf0], 0x6f
jmp 0x683afe
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
call fcn.00648d90
mov dword [esp + 0xf0], esi
jmp 0x683afe
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xe8], edx
cmp ebx, 0x10
jne 0x683f6d
mov eax, 9
mov ebx, 0x11
movzx ecx, byte [esp + 0x6b]
cmp ecx, 0x6e
jne 0x6842cc
jmp 0x683fb4
mov ebx, 0xe
lea eax, [esp + 0x118]
mov dword [esp + 4], eax
mov edi, esi
mov esi, dword [esp + 0xc4]
mov dword [esp], esi
mov dword [esp + 8], 0x200
call fcn.0067a450
mov ecx, 9
cmp eax, 0x200
mov dword [esp + 0x3c], esi
mov esi, edi
mov edx, dword [esp + 0xe8]
jne 0x68400e
jmp 0x68470a
cmp ebx, 0x10
je 0x684051
mov ebx, 0x10
mov byte [esp + 0x6b], 2
mov dword [esp + 4], 0x60
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0xf0], eax
mov dword [esp + 0xc8], 0x67
test eax, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], 0
mov edx, dword [esp + 0xe8]
je 0x6851a3
mov eax, ebx
mov ebx, edx
cmp eax, 0xe
jne 0x68404a
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00648d90
mov dword [esp + 0xc8], 0x6b
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
mov edx, ebx
jmp 0x6851a3
mov edx, ebx
jmp 0x6840f1
mov eax, 5
mov dl, byte [esp + 0x7b]
movzx ecx, dl
cmp ecx, 0x3b
jne 0x68406e
mov dword [esp + 0xf4], esi
jmp 0x68535e
mov eax, 0xffffffff
mov ecx, dword [esp + 0x48]
jmp 0x684090
mov dl, 0x43
mov edi, dword [ecx + 0x228]
dec edi
mov dword [esp + 0xe0], edi
add eax, 1
jb 0x684080
mov byte [esp + 0x7b], dl
mov edx, dword [esp + 0xe8]
jmp 0x684236
mov byte [esp + 0x6b], 0x6e
mov dword [esp + 4], 0x60
mov dword [esp], 1
call fcn.00493840
mov dword [esp + 0xf0], eax
mov dword [esp + 0xc8], 0x67
test eax, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], 0
mov edx, dword [esp + 0xe8]
je 0x6851a3
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0x31c]
mov dword [esp], eax
mov dword [esp + 4], 0x118
call fcn.00493840
mov esi, eax
test esi, esi
je 0x684171
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
mov dword [esp + 8], eax
lea esi, [esp + 0x100]
mov dword [esp], esi
mov dword [esp + 4], 0x10
call fcn.0067a720
test eax, eax
mov ecx, dword [esp + 0xf0]
je 0x68419e
mov dword [esp + 0xc8], eax
mov eax, 6
mov dword [esp + 0xd4], ecx
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe4], esi
jmp 0x684226
mov ecx, 0x11
mov dword [esp + 0xc8], 0x67
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
cmp ecx, 7
jmp 0x684229
mov dword [esp + 0xc8], eax
mov al, 0x17
movzx eax, al
cmp eax, 0x17
jne 0x68420b
mov byte [esp + 0xe4], 0x5d
mov ebx, dword [esp + 0x98]
lea eax, [ebx + 0x120]
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.007c51d0
lea eax, [ebx + 0x108]
mov dword [esp + 0x88], eax
mov dword [ebx + 0x108], 0
mov eax, dword [esp + 0x31c]
mov ecx, eax
dec ecx
mov esi, dword [esp + 0xf4]
jns 0x68441a
jmp 0x684696
mov dword [esp + 0x2c], 5
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0xe8]
jmp 0x68461f
cmp eax, 3
mov edx, dword [esp + 0xe8]
jne 0x6851a3
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0xbc]
imul eax, ecx, 0x118
mov edx, dword [esp + 0xe0]
mov dword [esi + eax + 0x114], edx
test ecx, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xa0], ecx
mov ecx, edx
mov dword [esp + 0x9c], ecx
jne 0x6842b1
lea eax, [esi + eax + 0x114]
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x40]
mov dword [edx], ecx
mov eax, dword [eax]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov dword [esp + 0xa4], eax
mov eax, 0x18
mov ecx, 0x17
movzx edx, byte [esp + 0xb8]
cmp edx, 0x48
je 0x68434f
cmp eax, 9
je 0x6840a5
mov byte [esp + 0xb8], 0x48
mov eax, dword [esp + 0x9c]
inc eax
sub eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xbc]
imul ecx, edx, 0x118
mov dword [esi + ecx + 0x110], eax
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x88]
add dword [ecx], eax
mov eax, edx
dec eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], edx
mov edi, dword [esp + 0xd0]
mov dword [esp + 0xe8], edi
jns 0x6844cb
jmp 0x6852d0
cmp ecx, 0xc
je 0x6843d9
mov ebx, 0xe
mov byte [esp + 0xb8], 0x14
mov eax, dword [esp + 0x9c]
inc eax
sub eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xbc]
imul ecx, edx, 0x118
mov dword [esi + ecx + 0x110], eax
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x88]
add dword [ecx], eax
mov eax, edx
dec eax
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], edx
mov eax, dword [esp + 0xd0]
mov edi, eax
mov dword [esp + 0xe8], eax
jns 0x6844cb
jmp 0x6852c0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call fcn.004936c0
mov eax, dword [esp + 0x64]
jmp 0x683f3f
mov edx, eax
add ecx, 1
jb 0x684400
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
jmp 0x6852d0
mov dword [esp + 0xf4], esi
mov dword [esp + 0x98], ebx
mov byte [esp + 0xb9], 0x14
mov byte [esp + 0x7b], 0x3b
mov byte [esp + 0x8f], 0xe
mov dword [esp + 0xb0], 0
mov byte [esp + 0x5f], 0x65
lea edx, [esp + 0xf8]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xac], eax
mov byte [esp + 0xb8], 0x14
lea eax, [esp + 0xfc]
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0xf0]
lea ecx, [edi + 4]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x228]
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x22c]
mov dword [esp + 0x44], ecx
lea ecx, [ebx + 0x134]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xd4], edi
mov dword [esp + 0xe4], esi
mov dword [esp + 0x60], 0
movzx eax, byte [esp + 0xb9]
cmp eax, 0x14
je 0x684584
mov ecx, 0x15
cmp eax, 0x73
jne 0x6846f5
mov byte [esp + 0xb9], 0x14
mov eax, dword [esp + 0x318]
mov ebx, dword [esp + 0xb4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x84], eax
mov dword [esp], eax
mov dword [esp + 4], 0x10000002
call fcn.0067a3f0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0x6a
cmp eax, 0xffffffff
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe4], esi
mov dword [esp + 0xbc], ebx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x94], eax
jne 0x684a44
jmp 0x6851a3
mov dword [esp + 0x2c], 0xd
mov esi, 0x12
mov byte [esp + 0xb9], 0x73
mov eax, dword [esp + 0x318]
mov ebx, dword [esp + 0xb4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x84], eax
mov dword [esp], eax
mov dword [esp + 4], 0x10000002
call fcn.0067a3f0
mov dword [esp + 0xc8], 0x6a
cmp eax, 0xffffffff
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xbc], ebx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x94], ecx
mov dword [esp + 0xd0], edi
jne 0x68521d
mov dword [esp + 0xc4], eax
cmp dword [esp + 0x2c], 5
mov esi, dword [esp + 0xf4]
jne 0x6846db
mov dword [esp + 0xe8], edx
mov byte [esp + 0xe4], 0x5d
mov ebx, dword [esp + 0x98]
lea eax, [ebx + 0x120]
lea ecx, [esp + 0x100]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.007c51d0
lea eax, [ebx + 0x108]
mov dword [esp + 0x88], eax
mov dword [ebx + 0x108], 0
mov eax, dword [esp + 0x31c]
mov ecx, eax
dec ecx
jns 0x68441a
mov dword [esp + 0x98], ebx
mov ecx, 0xffffffff
movzx edx, byte [esp + 0xe4]
cmp edx, 0x31
mov bl, byte [esp + 0xc3]
je 0x6847c2
mov eax, 3
cmp edx, 0x5d
jne 0x684848
mov eax, dword [esp + 0xf0]
mov edx, dword [esp + 0xe8]
jmp 0x684402
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
jmp 0x6851a3
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xd0], edi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe8], edx
cmp ecx, 9
jne 0x684887
movzx eax, byte [esp + 0x5f]
cmp eax, 0x65
je 0x68491f
mov dword [esp + 0xf4], esi
cmp eax, 0x6b
jne 0x6849b5
mov byte [esp + 0x5f], 0x6b
mov eax, dword [esp + 0x34]
mov dword [eax], 0x9def3ab8
lea esi, [esp + 0xf8]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
lea eax, [esp + 0x118]
mov ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x100]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x200
call fcn.0067a8d0
mov dword [esp + 0xdc], eax
test eax, eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd8], eax
jne 0x684f10
jmp 0x684b36
mov edx, dword [esp + 0xe8]
jmp 0x6847dc
mov eax, 0x17
mov edx, dword [esp + 0xf0]
add ecx, 1
jb 0x6847d0
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
cmp eax, 9
jne 0x684913
mov eax, 0xe
mov ecx, 6
mov dl, 0x1c
mov dword [esp + 0x60], edx
mov byte [esp + 0xc3], 0x29
mov edx, dword [esp + 0x58]
movzx edx, dl
cmp edx, 0x31
mov edx, dword [esp + 0xc4]
mov dword [esp + 0xcc], edx
jne 0x684d85
jmp 0x684c9d
mov ecx, dword [esp + 0xf0]
mov edx, esi
mov dword [esp + 0xf4], esi
cmp eax, 3
jne 0x684d2b
mov dword [esp + 0xe4], edx
mov dword [esp + 0xd4], ecx
mov ecx, 0xa
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xe8], eax
jmp 0x684d5a
mov byte [esp + 0xb9], 0x7f
mov eax, dword [esp + 0x318]
mov ebx, dword [esp + 0xb4]
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x84], eax
mov dword [esp], eax
mov dword [esp + 4], 0x10000002
call fcn.0067a3f0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 0x6a
cmp eax, 0xffffffff
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
mov dword [esp + 0xbc], ebx
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0xe8]
jne 0x684a44
jmp 0x6851a3
mov byte [esp + 0xc3], bl
jmp 0x6852d0
mov dword [esp + 0xf4], esi
mov ebx, 0x1c
mov byte [esp + 0x5f], 0x37
mov eax, dword [esp + 0x34]
mov dword [eax], 0x9def3ab8
lea esi, [esp + 0xf8]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
lea eax, [esp + 0x118]
mov ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x100]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x200
call fcn.0067a8d0
mov dword [esp + 0xdc], eax
test eax, eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd8], eax
jne 0x684e48
jmp 0x684b36
mov ebx, 0xf
mov byte [esp + 0x5f], 0x65
mov eax, dword [esp + 0x34]
mov dword [eax], 0x9def3ab8
lea esi, [esp + 0xf8]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
lea eax, [esp + 0x118]
mov ecx, eax
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x100]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x200
call fcn.0067a8d0
mov dword [esp + 0xdc], eax
test eax, eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd8], eax
jne 0x684f10
jmp 0x685403
mov dword [esp + 0xe8], edx
mov ebx, 0x14
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call fcn.0067a470
cmp eax, 0xffffffff
je 0x684a80
mov edx, dword [esp + 0xe8]
jmp 0x683f47
mov dword [esp + 0xf4], esi
mov esi, 0xffffffff
mov edi, dword [esp + 0xf0]
mov ebx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe4]
jmp 0x684ad6
mov dword [esp], ebx
call fcn.00648d90
mov eax, 0x6b
mov ecx, edi
mov edx, dword [esp + 0xf4]
add esi, 1
jb 0x684ac0
mov dword [esp + 0xe4], edx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xc8], eax
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
jmp 0x6851a3
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
call fcn.00648d90
mov ecx, edi
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xdc]
add esi, 1
jb 0x684b10
jmp 0x684adb
mov ebx, 0x15
mov eax, 3
mov ecx, dword [esp + 0x94]
cmp ecx, dword [esp + 0x31c]
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x6c], ecx
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
je 0x6853d1
cmp ebx, 8
jne 0x684bc1
movzx eax, byte [esp + 0xbb]
cmp eax, 0x58
jne 0x684bd4
mov ebx, 9
mov byte [esp + 0xbb], 0x10
mov eax, dword [esp + 0xa8]
movzx eax, al
mov dword [esp + 0xc8], 0x86
cmp eax, 0x31
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
jne 0x6851a3
jmp 0x68501a
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
jmp 0x684d6a
mov byte [esp + 0xbb], 0x58
mov eax, dword [esp + 0xa8]
movzx eax, al
mov dword [esp + 0xc8], 0x86
cmp eax, 0x31
jmp 0x685028
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
lea eax, [esp + 0x118]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xf0]
mov dword [esp], esi
mov dword [esp + 8], 0x60
call fcn.007c51d0
mov eax, dword [esp + 0xd0]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
and eax, 0xffffff00
cmp eax, 0x46524700
jne 0x684c77
mov ecx, 7
mov eax, dword [esp + 0x60]
movzx edx, al
cmp edx, 0x1c
je 0x684c9d
cmp edx, 0x2a
je 0x684cf7
mov eax, 9
cmp edx, 0x62
jne 0x685163
mov dword [esp + 0x60], 0
jmp 0x684cfd
mov eax, dword [esp + 0xc4]
mov dword [esp], eax
call fcn.00648d90
mov dword [esp + 0xc8], 0x6c
mov dword [esp + 0xd4], esi
jmp 0x6850d2
cmp ecx, 6
jne 0x684cb9
mov bl, byte [esp + 0xc3]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe4]
jmp 0x684d2b
mov eax, 8
mov cl, 0x62
mov dword [esp + 0x60], ecx
mov bl, 0x29
mov ecx, dword [esp + 0x58]
movzx ecx, cl
cmp ecx, 0x31
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe4]
jne 0x684f3d
jmp 0x684858
mov al, 0x2a
mov dword [esp + 0x60], eax
mov bl, 0x29
mov eax, dword [esp + 0x58]
movzx eax, al
cmp eax, 0x31
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe4]
jne 0x684f3d
mov dword [esp + 0xe4], edx
mov dword [esp + 0xd4], ecx
mov ecx, 0xf
mov eax, 0x3f7
mov edx, dword [esp + 0x38]
add eax, dword [edx]
shr eax, 3
mov edx, 0x20408103
mul edx
shr edx, 4
mov dword [esp + 0x6c], edx
mov byte [esp + 0xc3], bl
cmp ecx, 0xa
je 0x6852d0
mov eax, 2
mov ebx, 0xf
movzx ecx, byte [esp + 0x8f]
cmp ecx, 0xe
jne 0x684e48
cmp eax, 2
jne 0x684f36
mov ebx, 7
mov byte [esp + 0x8f], 0xe
imul esi, dword [esp + 0xbc], 0x118
mov edi, dword [esp + 0xf4]
lea eax, [edi + esi]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x101
call fcn.007cd670
mov eax, dword [esp + 0xc4]
mov dword [edi + esi + 0x108], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
lea ecx, [edi + esi + 0x104]
mov dword [esp + 0x54], ecx
mov dword [edi + esi + 0x104], eax
lea eax, [eax - 0x200]
shr eax, 0xa
mov dword [esp + 0x70], eax
lea ecx, [edi + esi + 0x10c]
mov dword [esp + 0x50], ecx
mov dword [edi + esi + 0x10c], eax
mov esi, edi
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x31c]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x80], eax
jne 0x684051
cmp ebx, 7
jmp 0x684229
cmp ebx, 0xf
jne 0x684f10
mov ebx, 0x10
mov byte [esp + 0x8f], 0x72
imul esi, dword [esp + 0xbc], 0x118
mov edi, dword [esp + 0xf4]
lea eax, [edi + esi]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x101
call fcn.007cd670
mov eax, dword [esp + 0xc4]
mov dword [edi + esi + 0x108], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
lea ecx, [edi + esi + 0x104]
mov dword [esp + 0x54], ecx
mov dword [edi + esi + 0x104], eax
lea eax, [eax - 0x200]
shr eax, 0xa
mov dword [esp + 0x70], eax
lea ecx, [edi + esi + 0x10c]
mov dword [esp + 0x50], ecx
mov ecx, 7
mov dword [edi + esi + 0x10c], eax
mov esi, edi
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x31c]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xe0], eax
mov dword [esp + 0x80], eax
jne 0x683fb4
cmp ecx, 7
jmp 0x684229
mov esi, 0xffffffff
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xe4]
jmp 0x684b2f
mov bl, byte [esp + 0xc3]
mov esi, 0xffffffff
movzx eax, bl
cmp eax, 5
je 0x684f71
cmp eax, 0x78
jne 0x684ff0
mov byte [esp + 0xc3], bl
jmp 0x684fbc
mov bl, 0x78
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00648d90
add esi, 1
jb 0x684f60
mov dword [esp + 0xc8], 0x86
mov byte [esp + 0xc3], bl
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
jmp 0x6850d2
mov ebx, 8
mov byte [esp + 0xc3], 0x29
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00648d90
add esi, 1
jb 0x684fa0
mov dword [esp + 0xc8], 0x86
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe4], esi
cmp ebx, 7
jmp 0x684229
mov ebx, 0x15
mov byte [esp + 0xc3], 5
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00648d90
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xc8], 0x86
cmp ebx, 9
mov eax, dword [esp + 0xf0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xe4], esi
jne 0x6851a3
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], 0x1adfe4e3
lea esi, [esp + 0xf8]
mov dword [esp], esi
mov dword [esp + 8], 0x1e23de34
mov dword [esp + 4], 4
call fcn.007ca970
mov dword [esp + 0xfc], eax
mov ebx, dword [esp + 0x98]
lea eax, [ebx + 0x110]
mov edi, dword [esp + 0xf0]
lea ecx, [edi + 0x38]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp], ecx
mov dword [esp + 0x10], 0x10
mov dword [esp + 4], 0x10
call fcn.0067a8d0
test eax, eax
je 0x6850ec
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd4], edi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe4], esi
mov edx, dword [esp + 0xe8]
jmp 0x6851a3
mov esi, 0xffffffff
lea ecx, [edi + 8]
mov edx, edi
mov edi, dword [esp + 0xf4]
mov dword [esp + 0xe4], edi
jmp 0x685145
mov edx, dword [esp + 0x31c]
mov dword [ebx + 0x138], edx
mov dword [ebx + 0x13c], edi
mov edx, dword [esp + 0xf0]
mov dword [ebx + 0x130], edx
mov dword [ebx + 0x10c], ecx
xor edx, edx
mov dword [esp + 0xe4], 0
xor eax, eax
add esi, 1
jb 0x685110
mov dword [esp + 0xd4], edx
mov dword [esp + 0xc8], eax
mov edx, dword [esp + 0xe8]
mov esi, edi
jmp 0x6851a3
mov bl, byte [esp + 0xc3]
mov esi, dword [esp + 0xf4]
mov edx, dword [esp + 0xe8]
jmp 0x6847f6
mov eax, 3
mov bl, 0x3b
mov edi, dword [edx + 0x228]
dec edi
mov dword [esp + 0xe0], edi
add ecx, 1
jb 0x685180
mov byte [esp + 0x7b], bl
jmp 0x684226
mov bl, 0x46
mov eax, dword [esp + 0x318]
test eax, eax
je 0x6851d4
mov ecx, dword [esp + 0x98]
mov ecx, dword [ecx]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov edi, edx
call fcn.006719a0
mov edx, edi
mov dword [esp + 0x318], 0
mov dword [esp + 0xf4], esi
mov esi, 4
movzx eax, bl
cmp eax, 0x77
jne 0x68524b
mov edi, dword [esp + 0xd0]
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc4]
cmp esi, 4
jne 0x685344
mov dword [esp + 0xe8], edx
mov dword [esp + 0xc4], eax
mov byte [esp + 0xba], 0xb
cmp dword [esp + 0xec], 0
jne 0x685295
jmp 0x685383
mov dword [esp + 0xe8], edx
mov eax, 7
mov byte [esp + 0xba], 0xb
mov ecx, dword [esp + 0xd4]
test ecx, ecx
mov edi, dword [esp + 0xd0]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x64], ecx
je 0x68535e
mov esi, 0xffffffff
jmp 0x6852b4
mov ebx, 0xf
mov eax, dword [esp + 0xec]
mov dword [esp], eax
call fcn.004936c0
add esi, 1
jb 0x6852a0
mov dword [esp + 0xd0], edi
cmp ebx, 0xe
mov edi, dword [esp + 0xd0]
jne 0x685383
mov ebx, 8
mov byte [esp + 0xbb], 0x58
lea eax, [esp + 0x118]
mov dword [esp + 4], eax
mov esi, dword [esp + 0xf0]
mov dword [esp], esi
mov dword [esp + 8], 0x60
call fcn.007c51d0
mov edx, dword [esp + 0xe8]
mov eax, dword [edx]
mov dword [esp + 0xa8], eax
and eax, 0xffffff00
mov dword [esp + 0xc8], 0x6c
cmp eax, 0x46524700
mov dword [esp + 0xd4], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xe4], esi
je 0x684b6a
jmp 0x6851a3
mov dword [esp + 0xc4], eax
mov dword [esp + 0xd0], edi
mov esi, dword [esp + 0xf4]
jmp 0x684a44
cmp eax, 5
jne 0x68537c
mov ecx, 0xffffffff
mov edx, dword [esp + 0x48]
mov bl, byte [esp + 0x7b]
mov esi, dword [esp + 0xf4]
jmp 0x685195
mov edi, dword [esp + 0xd0]
mov eax, 9
movzx ecx, byte [esp + 0xba]
cmp ecx, 0xb
mov esi, dword [esp + 0xf4]
jne 0x6853c3
cmp dword [esp + 0x90], 0
je 0x6843e8
mov ecx, 0xc
mov byte [esp + 0xba], 0xb
mov dword [esp + 0xd0], edi
jmp 0x68434f
mov dword [esp + 0xd0], edi
mov edx, dword [esp + 0xe8]
cmp eax, 3
je 0x684bf9
cmp dword [esp + 0x90], 0
je 0x6843e8
mov dword [esp + 0xe8], edx
mov dword [esp + 0xf4], esi
mov ebx, 0x11
mov byte [esp + 0xba], 0x1e
cmp ebx, 0xf
jne 0x6843d9
jmp 0x684b36