Function at 0x61c4db4c
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14c
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x40], ecx
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0x7c]
mov edx, dword [edx]
mov dword [ebp - 0x94], edx
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x10c], ecx
mov ecx, 0x14
xor eax, eax
mov edi, dword [ebp - 0x10c]
rep stosb byte es:[edi], al
mov esi, dword [ebp + 8]
mov dword [ebp - 0x30], esi
test byte [edx + 0x3c], 0x20
je 0x61c4dba2
and bh, 0xfb
mov edi, dword [ebp - 0x8c]
mov al, byte [edi]
cmp al, 0x40
ja 0x61c50998
movzx edx, bx
mov dword [ebp - 0xbc], edx
and edx, 0x40
mov dword [ebp - 0x88], edx
jne 0x61c4dfa3
movzx eax, al
mov dword [ebp - 0xb4], eax
dec eax
imul eax, eax, 0x48
lea esi, [eax + 0x328]
lea edx, [esi + 0x48]
mov eax, dword [ebp - 0x94]
call fcn.61c0d9bc
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + 0x40], 0
jne 0x61c50606
mov edi, dword [ebp - 0x6c]
mov dword [edi + 0x40], 0xffffffff
mov dword [edi + 0x3c], 0xffffffff
mov al, byte [ebp - 0xb4]
mov byte [edi + 0x28], al
mov edx, dword [ebp - 0x7c]
mov dword [edi], edx
mov ecx, dword [ebp - 0x8c]
mov dword [edi + 4], ecx
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
mov edx, dword [ebp + 0xc]
mov dword [edi + 0xc], edx
mov eax, dword [ebp - 0xb8]
call fcn.61c1335c
mov dword [edi + 0x34], eax
mov word [edi + 0x22], bx
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ecx + 0x1d8]
mov dword [edi + 0x38], eax
mov dword [ebp - 0x38], edi
add edi, 0x148
mov dword [ebp - 0xac], edi
mov dword [ebp - 0x34], edi
mov eax, dword [ebp - 0x6c]
add eax, esi
mov dword [ebp - 0x2c], eax
lea edx, [eax + 0x34]
mov dword [eax + 0x2c], edx
mov word [eax + 0x28], 0
mov word [eax + 0x2a], 4
mov dword [eax + 0x24], 0
mov ebx, dword [ebp - 0x6c]
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x148], ebx
mov dword [ebx + 0x14c], 0
mov dword [ebx + 0x154], 0
mov dword [ebx + 0x158], 8
mov eax, ebx
add eax, 0x160
mov dword [ebx + 0x15c], eax
mov ecx, 0x48
mov edx, dword [ebp - 0x40]
mov eax, edi
call fcn.61c227a4
mov edx, 0xffffffff
mov eax, dword [ebp - 0x7c]
call fcn.61c42bb8
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x61c4dd3f
xor ebx, ebx
xor esi, esi
mov edi, dword [ebp - 0xb4]
nop
test edi, edi
je 0x61c4dd0b
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ebx]
mov edx, 3
call fcn.61c0f820
test eax, eax
je 0x61c4dd33
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [edx + 0x34]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + ebx]
mov dword [esp], 8
mov eax, dword [ebp - 0x7c]
call fcn.61c4b420
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x14]
lea eax, [ebx + ecx]
or byte [eax + 0x14], 4
inc esi
mov eax, dword [ebp - 0x34]
add ebx, 0x30
cmp dword [eax + 0xc], esi
jg 0x61c4dcf0
mov edx, dword [ebp - 0xb4]
test edx, edx
jne 0x61c4dd69
cmp dword [ebp + 8], 0
je 0x61c4dd56
mov ebx, dword [ebp - 0x6c]
mov byte [ebx + 0x24], 1
test dword [ebp - 0xbc], 0x400
je 0x61c4dd69
mov esi, dword [ebp - 0x6c]
mov byte [esi + 0x27], 1
mov edi, dword [ebp - 0x8c]
cmp byte [edi], 0
je 0x61c4dd9e
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx + 0x44]
mov ecx, edi
lea edx, [edx + eax*4 + 0x48]
xor esi, esi
nop
mov ebx, dword [ecx + 0x2c]
mov dword [edx], ebx
inc eax
mov ebx, dword [ebp - 0x6c]
mov dword [ebx + 0x44], eax
inc esi
add ecx, 0x40
add edx, 4
movzx ebx, byte [edi]
cmp ebx, esi
jg 0x61c4dd84
mov esi, dword [ebp - 0x6c]
mov ebx, dword [esi + 0x154]
dec ebx
js 0x61c4ddc6
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0x8c]
nop
mov ecx, ebx
mov edx, edi
mov eax, esi
call fcn.61c4c51c
dec ebx
jns 0x61c4ddb8
mov edi, dword [ebp - 0x94]
cmp byte [edi + 0x40], 0
jne 0x61c4dee8
mov eax, dword [ebp + 8]
test eax, eax
je 0x61c508df
mov eax, dword [ebp - 0xbc]
and eax, 0x400
mov dword [ebp - 0x78], eax
jne 0x61c4dfbc
cmp dword [ebp - 0xb4], 1
je 0x61c4fcf6
mov edi, dword [ebp - 0x38]
mov edx, dword [edi + 4]
mov dword [ebp - 0x40], edx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [ebp - 0x68], eax
movzx ecx, byte [edi + 0x28]
mov dword [ebp - 0x80], ecx
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 0x60], ebx
mov eax, ebx
add eax, 0x34
mov dword [ebx + 0x2c], eax
mov word [ebx + 0x28], 0
mov word [ebx + 0x2a], 4
mov dword [ebx + 0x24], 0
test ecx, ecx
je 0x61c4e039
mov esi, dword [ebp - 0x40]
add esi, 8
mov dword [ebp - 0x40], esi
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov al, byte [ebp - 0x54]
mov edx, dword [ebp - 0x60]
mov byte [edx + 0x10], al
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 0x24]
mov eax, dword [edi + 0x44]
test eax, eax
jle 0x61c4de9b
cmp edx, dword [edi + 0x48]
je 0x61c4fb85
xor ecx, ecx
jmp 0x61c4de96
cmp edx, dword [edi + ecx*4 + 0x48]
je 0x61c4df8d
inc ecx
cmp ecx, eax
jl 0x61c4de8c
xor eax, eax
xor edx, edx
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 0x20]
mov byte [ebp - 0x50], al
mov al, byte [ebp - 0x58]
or eax, dword [ebp - 0x50]
test al, 0xa
je 0x61c4dec1
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 0x10]
test byte [eax + 0x2c], 0x10
je 0x61c4df19
mov edx, ebx
mov ecx, esi
lea eax, [ebp - 0x38]
call fcn.61c22c28
test eax, eax
je 0x61c4df29
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
call fcn.61c08a7c
mov edi, dword [ebp - 0x6c]
mov eax, dword [edi + 0x38]
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x1d8], eax
mov edx, edi
mov eax, dword [ebp - 0x94]
call fcn.61c0e7d8
mov dword [ebp - 0x6c], 0
mov eax, dword [ebp - 0x6c]
add esp, 0x14c
pop ebx
pop esi
pop edi
leave
ret
mov edx, ebx
mov ecx, esi
lea eax, [ebp - 0x38]
call fcn.61c27d0c
test eax, eax
jne 0x61c4dedd
mov edx, ebx
mov ecx, esi
lea eax, [ebp - 0x38]
call fcn.61c284c0
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x84], ecx
test eax, eax
jne 0x61c4dedd
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0x40], 0
jne 0x61c4e039
inc dword [ebp - 0x54]
mov ecx, dword [ebp - 0x54]
cmp dword [ebp - 0x80], ecx
jle 0x61c4e039
mov ecx, dword [ebp - 0x48]
or ecx, edx
mov eax, dword [ebp - 0x84]
or eax, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
add dword [ebp - 0x40], 0x40
mov dl, byte [ebp - 0x50]
mov byte [ebp - 0x58], dl
jmp 0x61c4de68
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
jmp 0x61c4de9f
mov edx, 0x370
mov esi, 0x328
mov dword [ebp - 0xb4], 1
jmp 0x61c4dbe0
mov edx, dword [ebp + 8]
mov esi, dword [edx]
test esi, esi
jle 0x61c4e004
mov ecx, dword [edx + 8]
xor ebx, ebx
mov eax, dword [ecx]
test eax, eax
je 0x61c4dfec
mov edx, dword [eax + 4]
test dh, 0x10
je 0x61c4dfec
and edx, 0x40000
je 0x61c4e034
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax]
test eax, eax
jne 0x61c4dfd0
cmp byte [eax], 0x9a
jne 0x61c508bd
cmp word [eax + 0x20], 0
js 0x61c4e004
inc ebx
add ecx, 0x14
cmp ebx, esi
jl 0x61c4dfca
mov esi, dword [ebp - 0x8c]
cmp byte [esi], 1
je 0x61c4fe66
cmp dword [ebp + 8], 0
jne 0x61c4ddf5
mov edi, dword [ebp - 0x6c]
or word [edi + 0x22], 0x200
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
jmp 0x61c4ddf5
mov eax, dword [eax + 0xc]
jmp 0x61c4dfcc
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
call fcn.61c08a7c
xor edx, edx
mov eax, dword [ebp - 0x6c]
call fcn.61c29770
mov esi, dword [ebp - 0x94]
cmp byte [esi + 0x40], 0
jne 0x61c4dee8
mov ecx, dword [ebp - 0x6c]
cmp dword [ecx + 8], 0
je 0x61c50730
mov edx, dword [ecx + 0x20]
inc edx
movsx edx, dx
mov eax, ecx
call fcn.61c29770
mov ebx, dword [ebp - 0x94]
cmp byte [ebx + 0x40], 0
jne 0x61c4dee8
mov esi, dword [ebp - 0x6c]
cmp dword [esi + 8], 0
je 0x61c50730
mov edx, dword [ebp - 0x7c]
mov esi, dword [edx + 0x44]
test esi, esi
jne 0x61c4dee8
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + 0x40], 0
jne 0x61c4dee8
mov ebx, dword [ebp - 0x6c]
cmp byte [ebx + 0x28], 1
jbe 0x61c4e0cd
cmp dword [ebp + 0xc], 0
je 0x61c4e0cd
test byte [ecx + 0x3d], 4
je 0x61c5061b
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx]
movsx eax, word [ecx + 0x20]
add dword [edx + 0x1d8], eax
test byte [ebp - 0xbc], 4
je 0x61c4e0f5
mov edx, dword [ecx + 0x318]
test byte [edx + 0x25], 0x10
jne 0x61c4fe46
cmp dword [ebp - 0xb4], 0
jle 0x61c4e2b3
mov esi, dword [ebp - 0x6c]
add esi, 0x2e0
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x60], 0
mov edi, dword [ebp - 0xbc]
and edi, 0x10
mov dword [ebp - 0x50], edi
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x40]
movzx eax, byte [eax + 0x24]
mov dword [ebp - 0x48], eax
lea eax, [eax*4 + 1]
shl eax, 4
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx + 8]
mov dword [ebp - 0x54], eax
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x61c4e2a9
mov ebx, dword [ebp - 0x94]
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x61c4fb7e
mov eax, dword [ebx + 0x10]
cmp ecx, dword [eax + 0xc]
je 0x61c4fb7e
xor ebx, ebx
jmp 0x61c4e17e
mov edx, dword [eax + 0x1c]
add eax, 0x10
cmp ecx, edx
je 0x61c4e183
inc ebx
cmp ebx, edi
jl 0x61c4e174
mov eax, dword [ebp - 0x40]
mov edi, dword [eax + 0x38]
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx + 0x2c]
test dl, 2
jne 0x61c4e1a3
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x61c4fafd
mov eax, dword [edi + 0x24]
test ah, 2
je 0x61c4e221
mov edi, dword [edi + 0x1c]
cmp byte [esi + 0x25], 0
je 0x61c4e272
mov ecx, dword [ebp - 0x48]
lea eax, [ecx*4 + 1]
shl eax, 4
mov edx, dword [ebp - 0x8c]
mov eax, dword [eax + edx + 8]
mov eax, dword [eax + 8]
test eax, eax
je 0x61c508b5
cmp edi, eax
je 0x61c508b5
mov ecx, dword [ebp + 0x14]
jmp 0x61c4e1ec
cmp edi, eax
je 0x61c4e1f4
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x61c4e1e8
mov dword [esi + 0x40], ecx
mov edx, 0x33
mov eax, dword [ebp - 0x40]
mov dword [eax + 8], ecx
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x2c]
mov dword [esp], eax
mov eax, dword [ebp - 0xb8]
call fcn.61c13420
mov edx, edi
mov eax, dword [ebp - 0x7c]
call fcn.61c25e24
mov edx, ebx
mov eax, dword [ebp - 0x7c]
call fcn.61c42bb8
mov edx, dword [ebp - 0x48]
lea eax, [edx + edx + 1]
shl eax, 5
mov ebx, dword [ebp - 0x8c]
mov ecx, dword [eax + ebx + 0xc]
mov edx, dword [esi + 0x44]
test edx, edx
jle 0x61c4e25b
cmp ecx, dword [esi + 0x48]
je 0x61c4e25b
xor eax, eax
jmp 0x61c4e256
cmp ecx, dword [esi + eax*4 + 0x48]
je 0x61c4e25b
inc eax
cmp eax, edx
jl 0x61c4e250
inc dword [ebp - 0x60]
mov edi, dword [ebp - 0x60]
cmp dword [ebp - 0xb4], edi
jle 0x61c4e2b3
add dword [ebp - 0x40], 0x48
jmp 0x61c4e124
mov edx, dword [ebp + 0x14]
test edx, edx
je 0x61c4e290
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x61c4e290
mov ecx, dword [ebp + 0x14]
mov edx, 0x32
jmp 0x61c4e1fc
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + 0x48]
lea eax, [ecx + 1]
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x48], eax
mov edx, 0x32
jmp 0x61c4e1fc
mov ebx, 0xfff0bdc0
jmp 0x61c4e183
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 0x2c], eax
mov ebx, dword [ebp - 0x94]
cmp byte [ebx + 0x40], 0
jne 0x61c4dee8
cmp dword [ebp - 0xb4], 0
jle 0x61c4df0b
mov esi, dword [ebp - 0x7c]
add esi, 0x78
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x60], 0xffffffff
mov dword [ebp - 0x5c], 0xffffffff
nop
mov edi, dword [ebp - 0x54]
mov eax, dword [edi + 0x318]
test byte [eax + 0x25], 0x40
je 0x61c4e853
movzx eax, byte [edi + 0x304]
mov dword [ebp - 0x78], eax
shl eax, 6
mov edx, dword [ebp - 0x8c]
lea eax, [edx + eax + 8]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x7c]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x7c]
call fcn.61c13548
mov dword [ebp - 0xb0], eax
mov ebx, dword [ebp - 0x78]
lea eax, [ebx*4 + 1]
shl eax, 4
mov esi, dword [ebp - 0x8c]
mov eax, dword [eax + esi + 8]
mov dword [ebp - 0x74], eax
mov edi, dword [ebp - 0x6c]
mov ebx, dword [edi + 0x15c]
mov eax, dword [edi + 0x154]
lea eax, [eax + eax*2]
shl eax, 4
lea eax, [ebx + eax]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x318]
mov dword [ebp - 0x70], eax
cmp ebx, dword [ebp - 0x48]
jae 0x61c504fd
xor edi, edi
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
xor esi, esi
jmp 0x61c4e3c0
mov dword [ebp - 0x88], edi
add ebx, 0x30
cmp dword [ebp - 0x48], ebx
jbe 0x61c4e426
mov edi, dword [ebp - 0x88]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x58]
mov eax, ebx
call fcn.61c08938
test eax, eax
je 0x61c4e3ac
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x3f
jle 0x61c4ece0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0x80000000
mov edx, esi
test dl, dl
je 0x61c4ed01
mov eax, dword [ebp - 0x40]
and eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3c]
and edx, dword [ebp - 0x4c]
or edx, eax
je 0x61c4ed3f
mov dword [ebp - 0x88], edi
mov esi, 1
add ebx, 0x30
cmp dword [ebp - 0x48], ebx
ja 0x61c4e3ba
mov esi, dword [ebp - 0x88]
mov eax, esi
mov edx, dword [ebp - 0x4c]
not edx
mov ecx, dword [ebp - 0x50]
not ecx
mov dword [ebp - 0xc8], ecx
or edx, 0x80000000
mov dword [ebp - 0xc4], edx
mov ebx, dword [ebp - 0x70]
mov word [ebx + 0x28], ax
mov word [ebx + 0x18], ax
mov dword [ebx + 0x24], 0x4241
mov eax, dword [ebp - 0x78]
shl eax, 6
add eax, dword [ebp - 0x8c]
mov edi, dword [eax + 0x3c]
mov edx, dword [ebp - 0xc8]
and edx, dword [eax + 0x38]
mov dword [ebp - 0xd8], edx
mov ecx, dword [ebp - 0xc4]
and ecx, edi
mov dword [ebp - 0xd4], ecx
mov eax, dword [ebp - 0x74]
movsx ebx, word [eax + 0x26]
mov dword [ebp - 0x40], ebx
cmp ebx, 0x3f
jle 0x61c4edc6
mov dword [ebp - 0x40], 0x3f
xor ecx, ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x88], esi
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd4]
lea esi, [esi]
mov ebx, eax
mov esi, edx
shrd ebx, esi, cl
shr esi, cl
test cl, 0x20
je 0x61c4e4ce
mov ebx, esi
xor esi, esi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], esi
mov ebx, dword [ebp - 0x50]
and ebx, 1
cmp ebx, 1
sbb dword [ebp - 0x88], 0xffffffff
inc ecx
cmp ecx, dword [ebp - 0x40]
jne 0x61c4e4bc
mov ebx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x88]
test edi, edi
js 0x61c4f77a
mov edi, dword [ebp - 0x70]
mov dword [edi + 0x24], 0x4241
lea edx, [esi + 1]
movsx edx, dx
lea eax, [ebp - 0x1c]
mov dword [esp], eax
xor ecx, ecx
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx]
call fcn.61c0db7c
mov dword [ebp - 0x68], eax
test eax, eax
je 0x61c4e843
mov dword [edi + 0x1c], eax
mov dword [eax], str.auto_index
mov edi, dword [ebp - 0x74]
mov dword [eax + 0xc], edi
mov eax, dword [ebp - 0x6c]
mov ebx, dword [eax + 0x15c]
cmp dword [ebp - 0x48], ebx
jbe 0x61c4fdc2
xor edi, edi
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x70], edi
jmp 0x61c4e585
xor esi, esi
mov edi, 0x80000000
mov edx, dword [ebp - 0x50]
and edx, esi
mov eax, dword [ebp - 0x4c]
and eax, edi
or eax, edx
je 0x61c4e5c7
add ebx, 0x30
cmp dword [ebp - 0x48], ebx
jbe 0x61c4e632
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov edx, dword [ebp - 0x58]
mov eax, ebx
call fcn.61c08938
test eax, eax
je 0x61c4e579
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x3f
jg 0x61c4e564
mov edi, ecx
shr edi, 5
and edi, 1
mov esi, edi
xor esi, 1
shl esi, cl
shl edi, cl
mov edx, dword [ebp - 0x50]
and edx, esi
mov eax, dword [ebp - 0x4c]
and eax, edi
or eax, edx
jne 0x61c4e579
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x70]
mov word [eax + edx*2], cx
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x7c]
call fcn.61c270b0
mov edx, dword [ebp - 0x68]
mov edx, dword [edx + 0x20]
mov dword [ebp - 0xa4], edx
test eax, eax
je 0x61c4f7fd
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
or eax, esi
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x4c]
or edx, edi
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0xa4]
mov dword [edi + esi*4], ecx
inc esi
mov dword [ebp - 0x70], esi
add ebx, 0x30
cmp dword [ebp - 0x48], ebx
ja 0x61c4e585
mov esi, dword [ebp - 0xa8]
mov edi, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x40]
test ebx, ebx
jle 0x61c4fdd8
xor ecx, ecx
mov ebx, dword [ebp - 0x68]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x58], esi
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xd4]
lea esi, [esi]
mov ebx, eax
mov esi, edx
shrd ebx, esi, cl
shr esi, cl
test cl, 0x20
je 0x61c4e67e
mov ebx, esi
xor esi, esi
and ebx, 1
je 0x61c4e695
mov ebx, dword [ebp - 0x48]
mov word [ebx + edi*2], cx
mov esi, dword [ebp - 0x50]
mov dword [esi + edi*4], str.BINARY
inc edi
inc ecx
cmp ecx, dword [ebp - 0x40]
jne 0x61c4e66c
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x78]
shl eax, 6
mov edx, dword [ebp - 0x8c]
mov ecx, dword [edx + eax + 0x3c]
test ecx, ecx
js 0x61c4f783
mov edx, dword [ebp - 0x48]
mov word [edx + edi*2], 0xffff
mov ecx, dword [ebp - 0x50]
mov dword [ecx + edi*4], str.BINARY
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0x48]
mov edi, dword [ebp - 0x54]
mov dword [edi + 0x2e8], eax
inc eax
mov dword [ebx + 0x48], eax
mov ecx, dword [edi + 0x2e8]
inc esi
mov dword [esp], esi
mov edx, 0x34
mov eax, dword [ebp - 0x80]
call fcn.61c13590
mov edx, dword [ebp - 0x68]
mov eax, ebx
call fcn.61c25e24
mov ecx, dword [edi + 0x2e4]
mov edx, 0x67
mov eax, dword [ebp - 0x80]
call fcn.61c1352c
mov esi, eax
mov al, byte [ebx + 0x13]
test al, al
jne 0x61c4f723
mov eax, dword [ebp - 0x7c]
mov ebx, dword [eax + 0x4c]
inc ebx
mov dword [eax + 0x4c], ebx
mov edi, dword [ebp - 0x54]
mov ecx, dword [edi + 0x2e4]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x7c]
call fcn.61c4bca8
mov ecx, dword [edi + 0x2e8]
mov dword [esp], ebx
mov edx, 0x69
mov eax, dword [ebp - 0x80]
call fcn.61c13590
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 4]
test eax, eax
je 0x61c4e78a
mov edx, dword [edx + 0x20]
lea edx, [edx + edx*4 - 5]
mov byte [eax + edx*4 + 3], 0x10
mov edi, dword [ebp - 0x54]
mov ecx, dword [edi + 0x2e4]
lea eax, [esi + 1]
mov dword [esp], eax
mov edx, 9
mov eax, dword [ebp - 0x80]
call fcn.61c13590
mov edx, dword [ebp - 0x80]
mov eax, dword [edx + 4]
test eax, eax
je 0x61c4e7bc
mov edx, dword [edx + 0x20]
lea edx, [edx + edx*4 - 5]
mov byte [eax + edx*4 + 3], 3
mov edi, dword [ebp - 0x80]
mov eax, dword [edi + 0x20]
cmp esi, eax
jae 0x61c4e7d3
mov ecx, dword [edi + 4]
lea edx, [esi + esi*4]
mov dword [ecx + edx*4 + 8], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ecx + 0x18]
dec eax
mov dword [edx + 0x64], eax
test ebx, ebx
je 0x61c4e81c
mov esi, dword [ebp - 0x7c]
mov cl, byte [esi + 0x13]
cmp cl, 7
ja 0x61c4e81c
mov edx, dword [ebp - 0xfc]
xor eax, eax
jmp 0x61c4e7f9
add edx, 0x18
cmp ebx, dword [edx + 0x10]
je 0x61c504ee
inc eax
cmp eax, 0xa
jne 0x61c4e7f6
movzx eax, cl
mov edx, dword [ebp - 0x7c]
mov dword [edx + eax*4 + 0x1c], ebx
inc ecx
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x80]
mov edx, dword [ecx + 0x18]
mov ebx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x20]
cmp dword [ebp - 0xb0], eax
jae 0x61c4e83f
mov esi, ebx
mov ebx, dword [ebx + 4]
mov edi, dword [ebp - 0xb0]
lea ecx, [edi + edi*4]
mov dword [ebx + ecx*4 + 8], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x64], eax
mov eax, dword [ebp - 0x94]
cmp byte [eax + 0x40], 0
jne 0x61c4dee8
mov edx, dword [ebp - 0x84]
lea eax, [edx + edx*8]
mov ecx, dword [ebp - 0x6c]
lea eax, [ecx + eax*8 + 0x2e0]
mov dword [ebp - 0x40], eax
mov ebx, dword [ebp - 0xbc]
mov dword [esp + 8], ebx
mov esi, dword [ebp - 0x54]
movzx eax, byte [esi + 0x304]
mov dword [esp + 4], eax
mov dword [esp], edx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x7c]
call fcn.61c1d7c4
mov edi, dword [ebp - 0xb8]
mov eax, dword [edi + 0x20]
mov dword [esi + 0x300], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov edx, dword [eax + 8]
mov dword [ebp - 0x50], edx
mov ecx, dword [eax]
mov dword [ebp - 0xb0], ecx
mov ebx, dword [esi + 0x318]
mov esi, dword [ebp - 0x6c]
mov esi, dword [esi + 4]
mov dword [ebp - 0x70], esi
mov edi, dword [ebp - 0x54]
movzx edi, byte [edi + 0x304]
mov dword [ebp - 0x78], edi
lea eax, [edi + edi + 1]
shl eax, 5
mov eax, dword [eax + esi + 0xc]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx + 0x44]
test eax, eax
jle 0x61c4e913
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [edx + 0x48]
je 0x61c4fbd0
xor ecx, ecx
mov edx, dword [ebp - 0x58]
mov esi, dword [ebp - 0x6c]
jmp 0x61c4e90e
cmp edx, dword [esi + ecx*4 + 0x48]
je 0x61c4ed9c
inc ecx
cmp ecx, eax
jl 0x61c4e904
mov dword [ebp - 0xa0], 0xffffffff
mov dword [ebp - 0x9c], 0xffffffff
mov eax, dword [ebp - 0xa0]
and eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x320], eax
mov eax, dword [ebp - 0x9c]
and eax, dword [ebp - 0x5c]
mov dword [edx + 0x324], eax
mov edi, dword [ebp - 0x6c]
mov esi, dword [edi + 0x18]
mov edi, dword [edi + 0x1c]
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], edi
test byte [ebx + 0x24], 0x40
jne 0x61c4ed84
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x50]
call fcn.61c1335c
mov esi, eax
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x2f0], eax
mov dword [edx + 0x2ec], eax
mov eax, dword [ebp - 0x50]
call fcn.61c1335c
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x2f8], eax
cmp byte [ecx + 0x304], 0
je 0x61c4e9b6
mov edi, dword [ebp - 0x78]
lea eax, [edi + edi + 1]
shl eax, 5
mov edx, dword [ebp - 0x70]
test byte [edx + eax + 8], 8
jne 0x61c4f750
mov eax, dword [ebp - 0x78]
shl eax, 6
mov edx, dword [ebp - 0x70]
movzx edi, byte [eax + edx + 0x29]
test edi, 4
jne 0x61c4ef23
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov cl, byte [ebp - 0x84]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x61c4e9ea
mov eax, edx
xor edx, edx
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x68], ecx
mov edx, dword [ebx + 0x24]
test dh, 4
je 0x61c4ee6f
movzx edi, word [ebx + 0x28]
mov esi, dword [ebp - 0x48]
inc dword [esi + 0x70]
lea eax, [edi + 2]
mov dword [ebp - 0x88], eax
mov edx, dword [esi + 0x40]
mov dword [ebp - 0x78], edx
cmp eax, dword [esi + 0x3c]
jg 0x61c4f736
add eax, edx
mov dword [esi + 0x40], eax
mov ecx, dword [ebp - 0x88]
sub dword [esi + 0x3c], ecx
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ecx + 0x2ec]
mov dword [ebp - 0x74], ecx
test edi, edi
je 0x61c4ea9d
xor esi, esi
mov eax, dword [ebp - 0x78]
add eax, 2
mov dword [ebp - 0x70], eax
jmp 0x61c4ea76
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x68]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x48]
call fcn.61c4d980
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x2f0]
mov dword [ebp - 0x74], eax
inc esi
cmp edi, esi
jle 0x61c4ea9d
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x61c4ea71
mov ecx, dword [ebp - 0x70]
add ecx, esi
test byte [edx + 0x12], 1
jne 0x61c4ea4c
mov eax, dword [edx]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 0x48]
call fcn.61c49bd0
inc esi
cmp edi, esi
jg 0x61c4ea76
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebp - 0x78]
mov dword [esp], edx
mov edx, 0x17
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov eax, dword [ebp - 0x78]
inc eax
mov dword [esp], eax
mov ecx, edi
mov edx, 0x17
mov eax, dword [ebp - 0x50]
call fcn.61c13590
cmp byte [ebx + 0x1c], 1
sbb eax, eax
and eax, 9
sub eax, 0xb
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x78]
mov dword [esp + 4], ecx
mov esi, dword [ebp - 0x74]
mov dword [esp], esi
mov ecx, dword [ebp - 0x58]
mov edx, 0xe
mov eax, dword [ebp - 0x50]
call fcn.61c1d038
mov byte [ebx + 0x1c], 0
test edi, edi
je 0x61c4eb3e
xor ecx, ecx
mov esi, dword [ebp - 0x40]
jmp 0x61c4eb16
inc ecx
cmp edi, ecx
jle 0x61c4eb3e
cmp ecx, 0x10
je 0x61c4eb3e
movzx eax, word [ebx + 0x1e]
sar eax, cl
test al, 1
je 0x61c4eb0c
mov eax, dword [ebx + 0x2c]
mov edx, dword [eax + ecx*4]
mov eax, esi
mov dword [ebp - 0x108], ecx
call fcn.61c089a8
mov ecx, dword [ebp - 0x108]
inc ecx
cmp edi, ecx
jg 0x61c4eb11
mov edi, dword [ebp - 0x54]
mov byte [edi + 0x305], 0x8d
mov eax, dword [ebp - 0x58]
mov dword [edi + 0x308], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x20]
mov dword [edi + 0x30c], eax
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x48]
call fcn.61c0722c
mov eax, dword [ebp - 0x48]
call fcn.61c44084
mov dword [ebp - 0x70], 0
mov esi, dword [ebp - 0x6c]
mov ebx, dword [esi + 0x15c]
mov esi, dword [esi + 0x154]
test esi, esi
jle 0x61c4edd4
mov edi, dword [ebp - 0x54]
jmp 0x61c4ebab
mov eax, dword [ebp - 0x6c]
mov byte [eax + 0x26], 1
dec esi
test esi, esi
jle 0x61c4ebf8
add ebx, 0x30
movzx eax, byte [ebx + 0x14]
test al, 6
jne 0x61c4eba3
mov eax, dword [edi + 0x320]
and eax, dword [ebx + 0x28]
mov edx, dword [edi + 0x324]
and edx, dword [ebx + 0x2c]
or edx, eax
jne 0x61c4eb9c
mov edx, dword [ebx]
mov eax, dword [edi + 0x2e0]
test eax, eax
je 0x61c4ebdb
test byte [edx + 4], 1
je 0x61c4eba3
mov dword [esp], 8
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x48]
call fcn.61c4b420
or byte [ebx + 0x14], 4
dec esi
test esi, esi
jg 0x61c4eba8
nop
mov edx, dword [ebp - 0x6c]
mov ebx, dword [edx + 0x15c]
mov ecx, dword [edx + 0x154]
mov dword [ebp - 0x40], ecx
test ecx, ecx
jg 0x61c4ec25
jmp 0x61c4edd4
dec dword [ebp - 0x40]
mov esi, dword [ebp - 0x40]
test esi, esi
jle 0x61c4edd4
add ebx, 0x30
movzx eax, byte [ebx + 0x14]
test al, 6
jne 0x61c4ec14
cmp word [ebx + 0x12], 0x402
jne 0x61c4ec14
mov esi, dword [ebp - 0x58]
cmp esi, dword [ebx + 8]
jne 0x61c4ec14
mov edi, dword [ebp - 0x54]
mov edi, dword [edi + 0x2e0]
test edi, edi
jne 0x61c4ec14
mov eax, dword [ebx]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov esi, dword [ebp - 0x60]
mov edi, dword [ebp - 0x5c]
mov dword [esp], esi
mov dword [esp + 4], edi
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xac]
call fcn.61c27524
mov esi, eax
test eax, eax
je 0x61c4ec14
test byte [eax + 0x14], 4
jne 0x61c4ec14
mov edx, 0x30
mov eax, dword [ebp - 0xb0]
call fcn.61c023c4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x61c4ec14
mov esi, dword [esi]
mov edi, eax
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x74]
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0x68]
mov dword [edx + 0xc], eax
mov dword [esp], 8
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x48]
call fcn.61c4b420
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb0]
call fcn.61c021a4
jmp 0x61c4ec14
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov edx, esi
test dl, dl
jne 0x61c4e3ff
mov esi, dword [ebp - 0x74]
mov edx, dword [esi + 4]
lea eax, [ecx + ecx*2]
mov eax, dword [edx + eax*8]
mov dword [esp + 0xc], eax
mov eax, dword [esi]
mov dword [esp + 8], eax
mov dword [esp + 4], str.automatic_index_on__s__s_
mov dword [esp], 0x11c
call sym.sqlite3.dll_sqlite3_log
mov eax, dword [ebp - 0x40]
and eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3c]
and edx, dword [ebp - 0x4c]
or edx, eax
jne 0x61c4e413
lea eax, [edi + 1]
mov dword [ebp - 0x88], eax
mov ecx, eax
mov edx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x7c]
mov eax, dword [esi]
call fcn.61c227f8
test eax, eax
jne 0x61c4e843
mov edx, dword [ebp - 0x70]
mov eax, dword [edx + 0x2c]
mov dword [eax + edi*4], ebx
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x4c]
or edi, dword [ebp - 0x3c]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edi
mov esi, 1
jmp 0x61c4e3b2
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax + 0x22]
shr eax, 5
xor eax, 1
and eax, 1
mov dword [ebp - 0x74], eax
jmp 0x61c4e968
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov esi, eax
not esi
mov dword [ebp - 0xa0], esi
mov edi, edx
not edi
mov dword [ebp - 0x9c], edi
jmp 0x61c4e927
test ebx, ebx
jg 0x61c4e4a2
jmp 0x61c4e4f3
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ecx + 0x2e0]
test ebx, ebx
jne 0x61c4ef87
mov edx, dword [ebp - 0x70]
test edx, edx
je 0x61c4ee28
mov ebx, dword [ebp - 0x48]
mov cl, byte [ebx + 0x13]
cmp cl, 7
ja 0x61c4ee28
mov edx, ebx
add edx, 0x78
xor eax, eax
mov ebx, dword [ebp - 0x70]
jmp 0x61c4ee07
add edx, 0x18
cmp ebx, dword [edx + 0x10]
je 0x61c4f932
inc eax
cmp eax, 0xa
jne 0x61c4ee04
movzx eax, cl
mov edi, dword [ebp - 0x70]
mov esi, dword [ebp - 0x48]
mov dword [esi + eax*4 + 0x1c], edi
inc ecx
mov byte [esi + 0x13], cl
nop
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x320]
mov edx, dword [edx + 0x324]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx + 0x2f8]
mov ebx, dword [ebp - 0x6c]
mov dword [ebx + 0x30], eax
inc dword [ebp - 0x84]
add ecx, 0x48
mov dword [ebp - 0x54], ecx
mov esi, dword [ebp - 0x84]
cmp dword [ebp - 0xb4], esi
jg 0x61c4e308
jmp 0x61c4df0b
test dh, 1
je 0x61c4f01f
test dl, 5
je 0x61c4f01f
mov ecx, dword [ebp - 0x48]
mov al, byte [ecx + 0x13]
test al, al
jne 0x61c4fba4
mov eax, dword [ecx + 0x4c]
inc eax
mov dword [ebp - 0x70], eax
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0x2c]
mov edi, dword [ebp - 0x70]
mov dword [esp + 8], edi
mov edx, dword [ebp - 0x68]
mov dword [esp + 4], edx
mov dword [esp], 0
mov ecx, dword [ebp - 0x40]
mov edx, dword [eax]
mov eax, dword [ebp - 0x48]
call fcn.61c4d980
mov ebx, eax
mov ecx, dword [ebp - 0x54]
mov esi, dword [ecx + 0x2f0]
mov dword [esp], esi
mov ecx, eax
mov edx, 0x23
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov dword [esp + 4], ebx
mov dword [esp], esi
mov ecx, dword [ebp - 0x58]
mov edx, 0x41
mov eax, dword [ebp - 0x50]
call fcn.61c13420
mov ecx, 1
mov edx, ebx
mov eax, dword [ebp - 0x48]
call fcn.61c07158
mov dword [esp], ebx
mov ecx, 0xffffffff
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
call fcn.61c07030
mov ebx, dword [ebp - 0x54]
mov byte [ebx + 0x305], 0x97
jmp 0x61c4eb7d
mov ecx, dword [ebp - 0x78]
lea eax, [ecx*4 + 1]
shl eax, 4
mov ebx, dword [eax + edx + 0x14]
mov ecx, dword [eax + edx + 0x10]
dec ecx
mov dword [esp], ebx
mov edx, 0x17
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov ecx, ebx
mov edx, 0x14
mov eax, dword [ebp - 0x50]
call fcn.61c1352c
mov edi, dword [ebp - 0x54]
mov dword [edi + 0x30c], eax
lea ecx, [ebx + 1]
mov dword [esp], esi
mov edx, 0x29
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov byte [edi + 0x305], 0x10
mov dword [ebp - 0x70], 0
jmp 0x61c4eb7d
mov ebx, dword [ebp - 0x50]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x2fc], eax
mov eax, dword [ecx + 0x2e0]
mov dword [esp], eax
mov ecx, 1
mov edx, 0x17
mov eax, ebx
call fcn.61c13590
mov eax, dword [ebp - 0x48]
call fcn.61c07108
mov esi, dword [ebp - 0x6c]
mov ebx, dword [esi + 0x15c]
mov ecx, dword [esi + 0x154]
test ecx, ecx
jle 0x61c4ede5
xor esi, esi
mov edi, dword [ebp - 0x6c]
jmp 0x61c4efe4
inc esi
cmp esi, dword [edi + 0x154]
jge 0x61c4ede5
add ebx, 0x30
movzx eax, byte [ebx + 0x14]
test al, 6
jne 0x61c4efd4
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x320]
and eax, dword [ebx + 0x28]
mov edx, dword [edx + 0x324]
and edx, dword [ebx + 0x2c]
or edx, eax
jne 0x61c4efd4
mov dword [esp], 8
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebx]
mov eax, dword [ebp - 0x48]
call fcn.61c4b420
or byte [ebx + 0x14], 4
jmp 0x61c4efd4
mov eax, dword [ebx + 0x24]
and eax, 0x102
cmp eax, 0x102
je 0x61c4f93b
test dh, 2
je 0x61c4f7d5
mov esi, dword [ebx + 0x18]
mov word [ebp - 0xec], si
mov byte [ebp - 0x1c], 0
mov edi, dword [ebx + 0x1c]
mov dword [ebp - 0xe4], edi
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x2e8]
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0x6c]
test byte [edx + 0x22], 1
je 0x61c4f074
cmp byte [edx + 0x24], 0
jne 0x61c4fe20
xor eax, eax
mov dword [ebp - 0xf4], 0
movzx ecx, word [ebp - 0xec]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebx + 0x24]
test cl, 0x20
jne 0x61c4fcd7
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xe0], 0
and ecx, 0x10
jne 0x61c4fcc1
mov dword [ebp - 0xdc], 0
mov edi, dword [ebp - 0x48]
mov edi, dword [edi + 8]
mov dword [ebp - 0x90], edi
mov edx, dword [ebp - 0x54]
mov edx, dword [edx + 0x318]
mov dword [ebp - 0xa8], edx
mov si, word [edx + 0x1a]
mov edx, dword [edx + 0x1c]
mov edi, dword [ebp - 0x48]
mov ecx, dword [edi + 0x4c]
lea edi, [ecx + 1]
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x70], edi
mov edi, dword [ebp - 0xa8]
movzx edi, word [edi + 0x18]
mov dword [ebp - 0xcc], edi
add eax, edi
mov dword [ebp - 0xe8], eax
add ecx, eax
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x4c], ecx
mov eax, dword [ebp - 0x90]
call fcn.61c07d38
mov edx, eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx]
call fcn.61c102f4
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x61c5086f
test si, si
jne 0x61c4fbef
xor esi, esi
cmp dword [ebp - 0xcc], esi
jle 0x61c4f251
mov eax, dword [ebp - 0x48]
add eax, 0x78
mov dword [ebp - 0xf8], eax
lea edx, [esi*4]
mov dword [ebp - 0x78], edx
mov ecx, dword [ebp - 0xc0]
add ecx, esi
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x100], ebx
nop
mov ebx, dword [ebp - 0xa8]
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebp - 0x78]
mov edi, dword [eax + edx]
mov ecx, dword [ebp - 0x70]
lea ebx, [esi + ecx]
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x40]
mov edx, edi
mov eax, dword [ebp - 0x48]
call fcn.61c4d980
cmp ebx, eax
je 0x61c4f22a
cmp dword [ebp - 0xe8], 1
jne 0x61c4f690
mov edx, dword [ebp - 0x70]
test edx, edx
je 0x61c4f71b
mov edx, dword [ebp - 0x48]
mov dl, byte [edx + 0x13]
mov byte [ebp - 0x129], dl
cmp dl, 7
ja 0x61c4f71b
mov edx, dword [ebp - 0xf8]
xor ecx, ecx
mov dword [ebp - 0x118], eax
mov bl, byte [ebp - 0x129]
jmp 0x61c4f1f2
add edx, 0x18
mov eax, dword [ebp - 0x70]
cmp eax, dword [edx + 0x10]
je 0x61c505f4
inc ecx
cmp ecx, 0xa
jne 0x61c4f1ef
mov eax, dword [ebp - 0x118]
mov byte [ebp - 0x129], bl
movzx edx, bl
mov ebx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x48]
mov dword [ecx + edx*4 + 0x1c], ebx
mov bl, byte [ebp - 0x129]
inc ebx
mov byte [ecx + 0x13], bl
mov dword [ebp - 0x70], eax
test byte [edi + 0x12], 0x81
je 0x61c4f6af
inc esi
add dword [ebp - 0x78], 4
inc dword [ebp - 0x88]
cmp dword [ebp - 0xcc], esi
jg 0x61c4f178
mov ebx, dword [ebp - 0x100]
mov ecx, dword [ebp - 0xc0]
test ecx, ecx
je 0x61c4f26d
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xa4]
mov al, byte [ecx + edx]
mov byte [ebp - 0x1c], al
mov esi, dword [ebp - 0x54]
mov esi, dword [esi + 0x2f0]
mov dword [ebp - 0x78], esi
mov edi, dword [ebp - 0xe4]
mov dx, word [edi + 0x32]
cmp word [ebp - 0xec], dx
jae 0x61c4f2a8
mov eax, dword [edi + 0x1c]
mov ecx, dword [ebp - 0xa4]
cmp byte [eax + ecx], 0
sete al
movzx eax, al
cmp dword [ebp - 0x68], eax
je 0x61c50a3f
cmp dword [ebp - 0x68], 0
je 0x61c4f2bb
cmp word [ebp - 0xec], dx
je 0x61c50965
mov edx, dword [ebp - 0xe0]
test edx, edx
je 0x61c5092f
mov edx, dword [ebp - 0xe0]
movzx eax, word [edx + 0x12]
test al, 0x28
setne al
movzx edi, al
mov eax, dword [ebp - 0xdc]
test eax, eax
je 0x61c50920
mov ecx, dword [ebp - 0xdc]
movzx eax, word [ecx + 0x12]
test al, 0x28
setne al
movzx eax, al
mov dword [ebp - 0xa8], eax
mov esi, dword [ebp - 0xe0]
test esi, esi
je 0x61c508f9
mov esi, dword [ebp - 0xe0]
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x88], eax
mov esi, dword [ebp - 0x70]
add esi, dword [ebp - 0xa4]
mov ecx, esi
mov edx, eax
mov eax, dword [ebp - 0x48]
call fcn.61c49bd0
mov eax, dword [ebp - 0x78]
mov dword [esp], eax
mov ecx, esi
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x50]
call fcn.61c13624
cmp dword [ebp - 0xc0], 0
je 0x61c4f38c
mov esi, dword [ebp - 0xc0]
add esi, dword [ebp - 0xa4]
movsx edx, byte [esi]
mov eax, dword [ebp - 0x88]
call fcn.61c07824
cmp al, 0x62
je 0x61c50a79
movsx edx, byte [esi]
mov eax, dword [ebp - 0x88]
call fcn.61c06e84
test eax, eax
jne 0x61c4fe3e
mov esi, dword [ebp - 0xa4]
inc esi
shl edi, 1
add edi, 4
mov edx, dword [ebp - 0xc0]
mov dword [esp], edx
mov ecx, esi
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x48]
call fcn.61c1e168
mov ecx, dword [ebp - 0x68]
movzx edx, byte [edi + ecx + 0x61c8c9e7]
mov dword [esp + 8], esi
mov esi, dword [ebp - 0x70]
mov dword [esp + 4], esi
mov edi, dword [ebp - 0x78]
mov dword [esp], edi
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x50]
call fcn.61c1ddd8
mov ecx, dword [ebp - 0xdc]
test ecx, ecx
je 0x61c5087d
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x88], eax
mov edi, dword [ebp - 0xa4]
add edi, esi
mov ecx, dword [ebp - 0x48]
add ecx, 0x78
xor eax, eax
mov dword [ebp - 0xcc], ebx
mov edx, dword [ecx + eax + 0x10]
cmp edi, edx
jg 0x61c4f450
jl 0x61c4f450
cmp byte [ecx + eax + 8], 0
je 0x61c4f448
mov ebx, dword [ebp - 0x48]
mov bl, byte [ebx + 0x13]
mov byte [ebp - 0x90], bl
cmp bl, 7
ja 0x61c4f443
movzx esi, bl
mov ebx, dword [ebp - 0x48]
mov dword [ebx + esi*4 + 0x1c], edx
mov dl, byte [ebp - 0x90]
inc edx
mov byte [ebx + 0x13], dl
mov byte [ecx + eax + 8], 0
mov dword [ecx + eax + 0x10], 0
add eax, 0x18
cmp eax, 0xf0
jne 0x61c4f40d
mov ebx, dword [ebp - 0xcc]
mov ecx, edi
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x48]
call fcn.61c49bd0
mov esi, dword [ebp - 0x78]
mov dword [esp], esi
mov ecx, edi
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x50]
call fcn.61c13624
movsx edx, byte [ebp - 0x1c]
mov eax, dword [ebp - 0x88]
call fcn.61c07824
cmp al, 0x62
je 0x61c4f4b0
movsx edx, byte [ebp - 0x1c]
mov eax, dword [ebp - 0x88]
call fcn.61c06e84
test eax, eax
je 0x61c50a81
mov esi, dword [ebp - 0xa4]
inc esi
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb0]
call fcn.61c021a4
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x20]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x30c], eax
mov eax, 1
mov edx, dword [ebp - 0x68]
inc edx
imul eax, edx
movzx edx, byte [eax + 0x61c8c9e4]
cmp edx, 0x97
je 0x61c4f530
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x70]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x78]
mov dword [esp], ecx
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x50]
call fcn.61c1ddd8
mov esi, dword [ebp - 0x50]
mov edx, dword [esi + 4]
test edx, edx
je 0x61c4f530
mov eax, dword [esi + 0x20]
dec eax
imul eax, eax, 0x14
mov edi, dword [ebp - 0xa8]
cmp dword [ebp - 0x68], edi
setne byte [edx + eax + 3]
mov edx, dword [ebp - 0x48]
mov al, byte [edx + 0x13]
test al, al
jne 0x61c4fbdc
mov esi, dword [edx + 0x4c]
inc esi
mov dword [edx + 0x4c], esi
mov edi, dword [ebx + 0x24]
test edi, 0x30
je 0x61c4f5c1
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0xa4]
movsx edx, word [eax + ecx*2]
test edx, edx
js 0x61c4f5c1
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 4]
imul eax, edx, 0x18
cmp byte [eax + ecx + 0x14], 0
jne 0x61c4f5c1
cmp word [ebp - 0xec], 0
jne 0x61c4f58c
and edi, 0x20
jne 0x61c4f5c1
mov dword [esp + 4], esi
mov edi, dword [ebp - 0xa4]
mov dword [esp], edi
mov ecx, dword [ebp - 0xf0]
mov edx, 0x2b
mov eax, dword [ebp - 0x50]
call fcn.61c13420
mov eax, dword [ebp - 0x80]
mov dword [esp], eax
mov ecx, esi
mov edx, 0x4c
mov eax, dword [ebp - 0x50]
call fcn.61c13590
test esi, esi
je 0x61c4f5f9
mov edx, dword [ebp - 0x48]
mov cl, byte [edx + 0x13]
cmp cl, 7
ja 0x61c4f5f9
mov eax, edx
add eax, 0x78
xor edx, edx
jmp 0x61c4f5dc
add eax, 0x18
cmp esi, dword [eax + 0x10]
je 0x61c509bf
inc edx
cmp edx, 0xa
jne 0x61c4f5d9
movzx eax, cl
mov edi, dword [ebp - 0x48]
mov dword [edi + eax*4 + 0x1c], esi
inc ecx
mov byte [edi + 0x13], cl
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x40]
call fcn.61c089a8
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x40]
call fcn.61c089a8
mov edx, dword [ebp - 0x74]
test edx, edx
jne 0x61c4f8e5
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0xc]
test byte [eax + 0x2c], 0x20
jne 0x61c4f807
mov ecx, dword [ebp - 0x48]
mov al, byte [ecx + 0x13]
test al, al
jne 0x61c50a63
mov eax, dword [ecx + 0x4c]
inc eax
mov dword [ebp - 0x70], eax
mov dword [ecx + 0x4c], eax
mov edi, dword [ebp - 0x70]
mov dword [esp], edi
mov ecx, dword [ebp - 0xf0]
mov edx, 0x6b
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov dword [esp], edi
or ecx, 0xffffffff
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
call fcn.61c07030
mov dword [esp], edi
mov ecx, dword [ebp - 0x58]
mov edx, 0x3d
mov eax, dword [ebp - 0x50]
call fcn.61c13590
jmp 0x61c4f8ec
mov dword [esp], ebx
mov ecx, eax
mov edx, 0x1f
mov eax, dword [ebp - 0x90]
call fcn.61c13590
test byte [edi + 0x12], 0x81
jne 0x61c4f234
mov eax, dword [edi]
mov ebx, dword [eax + 0x10]
mov ecx, dword [ebp - 0x70]
add ecx, esi
mov edi, dword [ebp - 0x40]
mov eax, dword [edi + 0xc]
mov dword [esp], eax
mov edx, ebx
mov eax, dword [ebp - 0x90]
call fcn.61c13624
mov edi, dword [ebp - 0xc0]
test edi, edi
je 0x61c4f234
mov eax, dword [ebp - 0x88]
movsx edx, byte [eax]
mov eax, ebx
call fcn.61c07824
cmp al, 0x62
je 0x61c4fb91
mov ecx, dword [ebp - 0x88]
movsx edx, byte [ecx]
mov eax, ebx
call fcn.61c06e84
test eax, eax
je 0x61c4f234
mov eax, dword [ebp - 0x88]
mov byte [eax], 0x62
jmp 0x61c4f234
mov dword [ebp - 0x70], eax
jmp 0x61c4f22a
dec eax
mov edx, dword [ebp - 0x7c]
mov byte [edx + 0x13], al
movzx eax, al
mov ebx, dword [edx + eax*4 + 0x1c]
jmp 0x61c4e727
mov esi, dword [ebp - 0x48]
mov eax, dword [esi + 0x4c]
lea edx, [eax + 1]
mov dword [ebp - 0x78], edx
add eax, dword [ebp - 0x88]
mov dword [esi + 0x4c], eax
jmp 0x61c4ea2e
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + 0x4c]
inc eax
mov dword [ecx + 0x4c], eax
mov edi, dword [ebp - 0x54]
mov dword [edi + 0x2e0], eax
mov dword [esp], eax
xor ecx, ecx
mov edx, 0x17
mov eax, dword [ebp - 0x50]
call fcn.61c13590
jmp 0x61c4e9b6
lea esi, [ebx + esi - 0x3f]
jmp 0x61c4e4fb
mov ecx, dword [ebp - 0x74]
cmp word [ecx + 0x26], 0x3f
jle 0x61c4e6b6
lea ecx, [edi + edi]
mov ebx, dword [ebp - 0x68]
add ecx, dword [ebx + 4]
lea ebx, [edi*4]
mov eax, dword [ebp - 0x68]
add ebx, dword [eax + 0x20]
mov eax, 0x3f
mov dword [ebp - 0x40], esi
mov esi, dword [ebp - 0x74]
nop
mov word [ecx], ax
mov dword [ebx], str.BINARY
inc edi
inc eax
add ecx, 2
add ebx, 4
movsx edx, word [esi + 0x26]
cmp eax, edx
jl 0x61c4f7b4
mov esi, dword [ebp - 0x40]
jmp 0x61c4e6b6
and dh, 0x20
jne 0x61c50134
and edi, 8
je 0x61c50825
mov esi, dword [ebp - 0x54]
mov byte [esi + 0x305], 0x97
mov dword [ebp - 0x70], 0
jmp 0x61c4eb7d
mov ecx, str.BINARY
jmp 0x61c4e5fa
mov edi, dword [eax + 8]
test edi, edi
jne 0x61c4f817
jmp 0x61c4f821
mov edi, dword [edi + 0x14]
test edi, edi
je 0x61c4f821
mov al, byte [edi + 0x37]
and eax, 3
cmp al, 2
jne 0x61c4f810
movzx eax, word [edi + 0x32]
mov edx, dword [ebp - 0x48]
mov edx, dword [edx + 0x40]
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x48]
cmp eax, dword [ecx + 0x3c]
jg 0x61c50982
lea edx, [eax + edx]
mov dword [ecx + 0x40], edx
sub dword [ecx + 0x3c], eax
xor eax, eax
cmp word [edi + 0x32], 0
je 0x61c4f8c4
mov esi, dword [ebp - 0x74]
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x40], 0
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x40]
mov cx, word [eax + edx*2]
mov esi, dword [ebp - 0xe4]
movzx edx, word [esi + 0x34]
test edx, edx
je 0x61c4f893
mov esi, dword [esi + 4]
cmp cx, word [esi]
je 0x61c500d7
xor eax, eax
jmp 0x61c4f88e
cmp cx, word [esi + eax*2]
je 0x61c500d9
inc eax
cmp edx, eax
jg 0x61c4f884
mov eax, 0xffffffff
mov edx, dword [ebp - 0x70]
mov dword [esp + 4], edx
mov dword [esp], eax
mov ecx, dword [ebp - 0xf0]
mov edx, 0x2b
mov eax, dword [ebp - 0x50]
call fcn.61c13420
inc dword [ebp - 0x40]
movzx eax, word [edi + 0x32]
inc dword [ebp - 0x70]
cmp dword [ebp - 0x40], eax
jl 0x61c4f859
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x74]
mov dword [esp + 4], ecx
mov esi, dword [ebp - 0x80]
mov dword [esp], esi
mov ecx, dword [ebp - 0x58]
mov edx, 0x3f
mov eax, dword [ebp - 0x50]
call fcn.61c1ddd8
mov dword [ebp - 0x70], 0
test byte [ebx + 0x25], 0x10
je 0x61c4fbba
mov edi, dword [ebp - 0x54]
mov byte [edi + 0x305], 0x97
mov esi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x308], esi
movzx eax, word [ebx + 0x26]
and eax, 1
mov byte [ecx + 0x306], al
test byte [ebx + 0x24], 0xf
jne 0x61c4eb7d
mov byte [ecx + 0x307], 1
jmp 0x61c4eb7d
mov byte [edx + 8], 1
jmp 0x61c4ee28
test dl, 0x20
jne 0x61c4fdc9
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x70], 0
and dl, 0x10
je 0x61c4f95d
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x68], 0
je 0x61c4f96b
mov eax, edi
mov edi, dword [ebp - 0x70]
mov dword [ebp - 0x70], eax
test edi, edi
je 0x61c50756
mov byte [ebp - 0x24], 0x3c
mov byte [ebp - 0x23], 0x3a
mov byte [ebp - 0x22], 0x39
mov byte [ebp - 0x21], 0x3b
mov ebx, dword [edi]
mov edx, dword [ebx + 0x10]
lea ecx, [ebp - 0x20]
mov eax, dword [ebp - 0x48]
call fcn.61c4b2ac
mov dword [ebp - 0x74], eax
movzx eax, byte [ebx]
movzx edx, byte [ebp + eax - 0x74]
mov eax, dword [ebp - 0x74]
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
call fcn.61c13420
mov ecx, 1
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x48]
call fcn.61c07158
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x61c4f9fe
mov ecx, dword [ebp - 0x48]
mov bl, byte [ecx + 0x13]
cmp bl, 7
ja 0x61c4f9fe
mov eax, ecx
add eax, 0x78
xor ecx, ecx
cmp edx, dword [eax + 0x10]
je 0x61c50a9b
inc ecx
cmp ecx, 0xa
je 0x61c4f9f0
add eax, 0x18
jmp 0x61c4f9dc
movzx eax, bl
mov ecx, dword [ebp - 0x48]
mov dword [ecx + eax*4 + 0x1c], edx
inc ebx
mov byte [ecx + 0x13], bl
mov edx, edi
mov eax, dword [ebp - 0x40]
call fcn.61c089a8
cmp dword [ebp - 0x70], 0
je 0x61c508d3
mov edi, dword [ebp - 0x70]
mov ebx, dword [edi]
mov eax, dword [ebp - 0x48]
mov edi, dword [eax + 0x4c]
inc edi
mov dword [eax + 0x4c], edi
mov edx, dword [ebx + 0x10]
mov ecx, edi
call fcn.61c49bd0
mov al, byte [ebx]
cmp al, 0x52
je 0x61c4fffd
cmp al, 0x50
je 0x61c4fffd
cmp dword [ebp - 0x68], 1
sbb ebx, ebx
and ebx, 0xfffffffe
add ebx, 0x52
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x40]
call fcn.61c089a8
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x20]
mov al, byte [ebp - 0x68]
neg eax
add eax, 9
mov ecx, dword [ebp - 0x54]
mov byte [ecx + 0x305], al
mov eax, dword [ebp - 0x58]
mov dword [ecx + 0x308], eax
mov dword [ecx + 0x30c], edx
cmp ebx, 0x97
je 0x61c50112
mov edx, dword [ebp - 0x48]
mov al, byte [edx + 0x13]
test al, al
jne 0x61c5011e
mov eax, dword [edx + 0x4c]
inc eax
mov dword [ebp - 0x70], eax
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 0x70]
mov dword [esp], eax
mov ecx, dword [ebp - 0x58]
mov edx, 0x62
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov edx, dword [ebp - 0x70]
mov dword [esp], edx
or ecx, 0xffffffff
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x48]
call fcn.61c07030
mov ecx, dword [ebp - 0x70]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov ecx, edi
mov edx, ebx
mov eax, dword [ebp - 0x50]
call fcn.61c13420
mov ebx, dword [ebp - 0x50]
mov edx, dword [ebx + 4]
test edx, edx
je 0x61c4eb7d
mov eax, dword [ebx + 0x20]
dec eax
imul eax, eax, 0x14
mov byte [eax + edx + 3], 0x6b
jmp 0x61c4eb7d
mov eax, dword [edi + 0x24]
test ah, 4
je 0x61c5051a
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x3c]
test eax, eax
je 0x61c4fb33
mov edx, eax
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [eax]
je 0x61c4fb35
mov edx, ecx
jmp 0x61c4fb2c
cmp edx, dword [eax]
je 0x61c50a5c
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x61c4fb24
xor edx, edx
mov ecx, dword [ebp - 0x48]
lea eax, [ecx + ecx + 1]
shl eax, 5
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 0xc], 0xfffffff6
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], 0
mov ecx, eax
mov edx, 0x8b
mov eax, dword [ebp - 0xb8]
call fcn.61c1d038
mov eax, dword [edi + 0x24]
jmp 0x61c4e1a6
xor ebx, ebx
jmp 0x61c4e183
mov eax, 1
xor edx, edx
jmp 0x61c4de9f
mov edi, dword [ebp - 0x88]
mov byte [edi], 0x62
mov edx, 0x62
jmp 0x61c4f6fe
dec eax
mov esi, dword [ebp - 0x48]
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x1c]
mov dword [ebp - 0x70], eax
jmp 0x61c4ee99
mov al, byte [ebp - 0x68]
neg eax
add eax, 9
mov edx, dword [ebp - 0x54]
mov byte [edx + 0x305], al
jmp 0x61c4f900
mov eax, 1
xor edx, edx
jmp 0x61c4edad
dec eax
mov ecx, dword [ebp - 0x48]
mov byte [ecx + 0x13], al
movzx eax, al
mov esi, dword [ecx + eax*4 + 0x1c]
jmp 0x61c4f545
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + 0x2e8]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x68], 0
jne 0x61c4fdef
mov ecx, dword [ebp - 0x78]
mov edx, 0x67
mov eax, dword [ebp - 0x90]
call fcn.61c1352c
mov edx, 0x10
mov eax, dword [ebp - 0x90]
call fcn.61c1349c
mov edi, eax
movzx esi, si
mov edx, 0x3c
mov dword [esp + 8], esi
mov ecx, dword [ebp - 0x88]
mov dword [esp + 4], ecx
mov dword [esp], 0
mov ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x90]
call fcn.61c1ddd8
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x2f4], eax
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x20]
cmp edi, edx
jae 0x61c4fc7e
mov ecx, dword [ecx + 4]
imul eax, edi, 0x14
mov dword [eax + ecx + 8], edx
mov ecx, dword [ebp - 0x90]
mov edx, dword [ecx + 0x20]
mov edi, dword [ebp - 0x90]
mov eax, dword [edi + 0x18]
dec edx
mov dword [eax + 0x64], edx
test esi, esi
jle 0x61c4f14c
xor edi, edi
mov eax, dword [ebp - 0x88]
add eax, edi
mov dword [esp + 4], eax
mov dword [esp], edi
mov ecx, dword [ebp - 0x78]
mov edx, 0x2b
mov eax, dword [ebp - 0x90]
call fcn.61c13420
inc edi
cmp edi, esi
jl 0x61c4fc95
jmp 0x61c4f140
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0xdc], eax
mov eax, 1
jmp 0x61c4f0bc
mov eax, dword [ebx + 0x2c]
mov esi, dword [ebp - 0xa4]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0xe0], eax
mov edx, esi
inc edx
mov eax, 1
jmp 0x61c4f0a9
mov edi, dword [ebp - 0x38]
test byte [edi + 0x22], 0x20
jne 0x61c4fff2
mov ecx, dword [edi + 4]
mov dword [ebp - 0x40], ecx
mov esi, dword [ecx + 0x18]
test byte [esi + 0x2c], 0x10
jne 0x61c4de0b
cmp dword [ecx + 0x40], 0
jne 0x61c4de0b
mov ebx, dword [ecx + 0x2c]
mov dword [ebp - 0x48], ebx
lea eax, [edi + 0x148]
mov dword [ebp - 0x60], eax
mov ebx, dword [ebp - 0x2c]
mov dword [ebx + 0x24], 0
mov word [ebx + 0x1a], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
or ecx, 0xffffffff
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x60]
call fcn.61c27524
mov edx, eax
test eax, eax
je 0x61c50ac0
mov dword [ebx + 0x24], 0x1101
mov eax, dword [ebx + 0x2c]
mov dword [eax], edx
mov word [ebx + 0x28], 1
mov word [ebx + 0x18], 1
mov word [ebx + 0x14], 0x21
mov word [ebx + 0x16], 1
mov dword [edi + 0x318], ebx
mov eax, dword [edi + 0x44]
xor ecx, ecx
jmp 0x61c4fdb5
mov esi, dword [ebp - 0x48]
cmp esi, dword [edi + ecx*4 + 0x48]
je 0x61c50b55
inc ecx
cmp ecx, eax
jl 0x61c4fda7
xor eax, eax
xor edx, edx
jmp 0x61c50b66
xor edi, edi
jmp 0x61c4e63b
mov eax, dword [ebx + 0x2c]
mov edi, dword [eax]
mov ecx, 1
jmp 0x61c4f948
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 4]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x68]
mov edx, dword [edx + 0x20]
mov dword [ebp - 0x50], edx
jmp 0x61c4e69e
mov ecx, eax
mov edx, 0x64
mov eax, dword [ebp - 0x90]
call fcn.61c1352c
mov edx, 0x10
mov eax, dword [ebp - 0x90]
call fcn.61c1349c
mov edi, eax
movzx esi, si
mov edx, 0x39
jmp 0x61c4fc32
cmp si, word [edi + 0x32]
jae 0x61c4f074
mov eax, 1
mov dword [ebp - 0xf4], 1
jmp 0x61c4f080
mov byte [esi], 0x62
jmp 0x61c4f38c
mov byte [ecx + 0x25], 1
mov ebx, dword [ebp - 0x8c]
mov eax, dword [ebx + 0x18]
test byte [eax + 0x2c], 0x20
jne 0x61c4e0f5
and dword [edx + 0x24], 0xffffffbf
jmp 0x61c4e0f5
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x58], edi
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x80], eax
mov edx, dword [ebp + 0xc]
mov esi, dword [edx]
test esi, esi
jle 0x61c4feb9
mov ecx, dword [edx + 8]
xor ebx, ebx
mov eax, dword [ecx]
nop
test eax, eax
je 0x61c4fea8
mov edx, dword [eax + 4]
test dh, 0x10
je 0x61c4fea8
and edx, 0x40000
je 0x61c500c8
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax]
test eax, eax
jne 0x61c4fe88
cmp byte [eax], 0x9a
je 0x61c500df
inc ebx
add ecx, 0x14
cmp ebx, esi
jl 0x61c4fe80
mov eax, dword [ebp - 0x80]
mov edi, dword [eax + 8]
test edi, edi
je 0x61c4e013
mov dword [ebp - 0x40], edi
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x40]
cmp byte [edx + 0x36], 0
je 0x61c4ffdc
cmp word [edx + 0x32], 0
je 0x61c500f6
mov dword [ebp - 0x54], 0
jmp 0x61c4ff03
inc dword [ebp - 0x54]
mov ecx, dword [ebp - 0x40]
movzx eax, word [ecx + 0x32]
cmp dword [ebp - 0x54], eax
jge 0x61c4ffd3
mov ecx, dword [ebp - 0x54]
shl ecx, 1
mov dword [ebp - 0x48], ecx
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 4]
movsx eax, word [eax + ecx]
mov dword [ebp - 0x60], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], 2
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
mov ecx, eax
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xac]
call fcn.61c27524
test eax, eax
jne 0x61c4fef0
mov eax, dword [esi + 0x20]
mov edi, dword [ebp - 0x54]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x84], eax
mov edi, dword [ebx]
test edi, edi
jle 0x61c4ffcc
xor esi, esi
xor edi, edi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x68], edi
nop
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x70]
mov edx, dword [eax + ecx]
test edx, edx
je 0x61c500d0
mov ecx, dword [edx + 4]
test ch, 0x10
je 0x61c500d0
mov eax, edx
mov esi, dword [ebp - 0x70]
mov edi, dword [ebp - 0x68]
jmp 0x61c4ffa4
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax]
test eax, eax
je 0x61c4ffb3
mov ecx, dword [eax + 4]
test ch, 0x10
je 0x61c4ffb3
and ecx, 0x40000
jne 0x61c4ff90
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x61c4ff9c
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x68], edi
cmp byte [eax], 0x9a
je 0x61c50010
inc dword [ebp - 0x68]
add dword [ebp - 0x70], 0x14
mov edi, dword [ebp - 0x68]
cmp edi, dword [ebx]
jl 0x61c4ff68
mov ecx, dword [ebp - 0x40]
movzx eax, word [ecx + 0x32]
cmp eax, dword [ebp - 0x54]
je 0x61c500f6
mov esi, dword [ebp - 0x40]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x40], esi
test esi, esi
jne 0x61c4fecd
jmp 0x61c4e013
mov edx, dword [edi + 4]
mov dword [ebp - 0x40], edx
jmp 0x61c4de0b
cmp dword [ebp - 0x68], 1
sbb ebx, ebx
and ebx, 2
add ebx, 0x51
jmp 0x61c4fa49
mov esi, dword [ebp - 0x40]
mov esi, dword [esi + 4]
mov ecx, dword [eax + 0x20]
mov edi, dword [ebp - 0x48]
cmp cx, word [esi + edi]
jne 0x61c4ffbe
mov esi, dword [ebp - 0x58]
cmp esi, dword [eax + 0x1c]
jne 0x61c4ffbe
mov eax, dword [ebp - 0x7c]
call fcn.61c26fac
test eax, eax
je 0x61c4ffbe
mov eax, dword [eax]
mov ecx, dword [ebp - 0x84]
mov dl, byte [eax]
test dl, dl
je 0x61c50094
movzx edx, dl
movzx edi, byte [ecx]
mov dl, byte [edx + 0x61c88c20]
cmp dl, byte [edi + 0x61c88c20]
jne 0x61c4ffbe
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x50], edx
mov edi, dword [ebp - 0x68]
mov esi, ebx
jmp 0x61c50081
movzx ebx, bl
movzx edx, byte [ecx]
mov bl, byte [ebx + 0x61c88c20]
cmp bl, byte [edx + 0x61c88c20]
jne 0x61c50102
inc eax
inc ecx
mov bl, byte [eax]
test bl, bl
jne 0x61c50069
mov dword [ebp - 0x68], edi
mov ebx, esi
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x70], esi
movzx eax, byte [ecx]
cmp byte [eax + 0x61c88c20], 0
jne 0x61c4ffbe
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
imul eax, dword [ebp - 0x60], 0x18
cmp byte [eax + edx + 0x14], 0
jne 0x61c4fef0
mov edx, dword [ebp - 0x40]
movzx eax, word [edx + 0x32]
jmp 0x61c4ffd3
mov eax, dword [eax + 0xc]
jmp 0x61c4fe84
mov eax, edx
jmp 0x61c4ffb9
xor eax, eax
cwde
jmp 0x61c4f898
mov edi, dword [ebp - 0x58]
cmp edi, dword [eax + 0x1c]
jne 0x61c4feb1
cmp word [eax + 0x20], 0
jns 0x61c4feb1
mov ebx, dword [ebp - 0x6c]
mov byte [ebx + 0x27], 1
jmp 0x61c4ddf5
mov dword [ebp - 0x68], edi
mov ebx, esi
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x70], ecx
jmp 0x61c4ffbe
mov dword [ebp - 0x70], 0
jmp 0x61c4eb7d
dec eax
mov ecx, dword [ebp - 0x48]
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x1c]
mov dword [ebp - 0x70], eax
jmp 0x61c4fa9e
mov edi, dword [ebp - 0x48]
mov edi, dword [edi + 0x48]
mov dword [ebp - 0xcc], edi
mov eax, edi
inc eax
mov edx, dword [ebp - 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [edx + 0x4c]
inc eax
mov dword [ebp - 0xa4], eax
mov dword [edx + 0x4c], eax
mov eax, dword [ebp - 0x50]
call fcn.61c1335c
mov dword [ebp - 0xdc], eax
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x88], ecx
mov ebx, dword [ebp - 0x54]
mov byte [ebx + 0x305], 0x12
mov esi, dword [ebp - 0xa4]
mov dword [ebx + 0x308], esi
mov edi, dword [ebp - 0x6c]
mov al, byte [edi + 0x28]
cmp al, 1
ja 0x61c50775
mov ebx, dword [ebp - 0x6c]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x68], ebx
mov esi, dword [ebp - 0x6c]
test byte [esi + 0x22], 8
je 0x61c509ea
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xa8], 0
mov ecx, dword [ebp - 0xa4]
mov dword [esp], ecx
xor ecx, ecx
mov edx, 0x17
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov dword [ebp - 0xe8], eax
xor ebx, ebx
mov esi, dword [ebp - 0x6c]
cmp dword [esi + 0x154], 1
jle 0x61c50252
xor edi, edi
xor esi, esi
mov eax, edi
mov edx, dword [ebp - 0x6c]
add eax, dword [edx + 0x15c]
mov edx, dword [eax]
cmp dword [ebp - 0x90], eax
je 0x61c50223
test byte [edx + 4], 1
jne 0x61c50223
test byte [eax + 0x14], 0x10
jne 0x61c50223
test word [eax + 0x12], 0xfff
jne 0x61c50a1c
inc esi
add edi, 0x30
mov ecx, dword [ebp - 0x6c]
cmp esi, dword [ecx + 0x154]
jl 0x61c501f6
test ebx, ebx
je 0x61c50252
mov dword [esp + 4], 0
mov dword [esp], ebx
xor ecx, ecx
mov edx, 0x48
mov eax, dword [ebp - 0x48]
call fcn.61c20300
mov ebx, eax
mov esi, dword [ebp - 0x88]
cmp dword [esi + 0xc], 0
jle 0x61c50aa4
mov dword [ebp - 0x74], 0
mov dword [ebp - 0xe0], 0
xor edi, edi
xor esi, esi
mov eax, dword [ebp - 0x78]
lea eax, [eax*4 + 1]
shl eax, 4
mov dword [ebp - 0xe4], eax
jmp 0x61c502b3
test esi, esi
jne 0x61c50410
mov edi, dword [eax + 0x1c]
mov eax, dword [ebp - 0x78]
call fcn.61c13794
inc esi
add dword [ebp - 0x74], 0x30
mov eax, dword [ebp - 0x88]
cmp esi, dword [eax + 0xc]
jge 0x61c50420
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x88]
add eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [eax + 8]
je 0x61c502cd
test byte [eax + 0x13], 2
je 0x61c5029f
mov ecx, dword [eax]
test ebx, ebx
je 0x61c502de
test byte [ecx + 4], 1
jne 0x61c502de
mov dword [ebx + 0xc], ecx
mov ecx, ebx
mov eax, dword [ebp - 0xcc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xf0
mov dword [esp + 4], 0
mov dword [esp], 0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
call fcn.61c4db4c
mov dword [ebp - 0x78], eax
test eax, eax
je 0x61c5029f
mov ecx, eax
add ecx, 0x2e0
mov dword [esp + 8], 0
mov edx, dword [ebp - 0x54]
movzx eax, byte [edx + 0x304]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x84]
mov dword [esp], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x48]
call fcn.61c1d7c4
mov edx, dword [ebp - 0x6c]
test byte [edx + 0x22], 8
jne 0x61c503c7
mov ecx, dword [ebp - 0x88]
mov eax, dword [ecx + 0xc]
dec eax
mov dword [ebp - 0xec], 0xffffffff
cmp esi, eax
je 0x61c5036a
mov dword [ebp - 0xec], esi
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0x70]
mov edx, dword [ecx + eax + 8]
mov dword [esp + 8], 0
mov eax, dword [ebp - 0xc0]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x58]
mov dword [esp], ecx
or ecx, 0xffffffff
mov eax, dword [ebp - 0x48]
call fcn.61c43fb0
mov edx, dword [ebp - 0xec]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x20]
add eax, 2
mov dword [esp], eax
mov ecx, dword [ebp - 0xa8]
mov edx, 0x7a
mov eax, dword [ebp - 0x50]
call fcn.61c1ddd8
mov eax, dword [ebp - 0xdc]
mov dword [esp], eax
mov ecx, dword [ebp - 0xa4]
mov edx, 0x11
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov edx, dword [ebp - 0x78]
cmp byte [edx + 0x26], 0
je 0x61c503f6
mov dword [ebp - 0xe0], 1
mov ecx, dword [ebp - 0x78]
mov eax, dword [ecx + 0x318]
test byte [eax + 0x25], 2
jne 0x61c5028c
xor edi, edi
jmp 0x61c50297
cmp dword [eax + 0x1c], edi
je 0x61c50297
xor edi, edi
jmp 0x61c50297
mov edx, dword [ebp - 0x54]
mov dword [edx + 0x310], edi
test edi, edi
je 0x61c50439
mov ecx, dword [ebp - 0xcc]
mov dword [edx + 0x2e8], ecx
test ebx, ebx
je 0x61c50451
mov dword [ebx + 0xc], 0
mov edx, ebx
mov eax, dword [ebp - 0xb0]
call fcn.61c0e514
mov ebx, dword [ebp - 0x50]
mov edx, dword [ebx + 0x20]
cmp dword [ebp - 0xe8], edx
jae 0x61c5046d
mov ecx, dword [ebx + 4]
imul eax, dword [ebp - 0xe8], 0x14
mov dword [eax + ecx + 4], edx
mov esi, dword [ebp - 0x54]
mov eax, dword [esi + 0x2ec]
mov dword [esp], eax
xor ecx, ecx
mov edx, 0x10
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov edi, dword [ebp - 0x50]
mov edx, dword [edi + 0x18]
mov ecx, dword [ebp - 0xdc]
xor ecx, 0xffffffff
js 0x61c504a6
mov eax, dword [edx + 0x60]
test eax, eax
je 0x61c504a6
mov ebx, dword [edi + 0x20]
mov dword [eax + ecx*4], ebx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x20]
dec eax
mov dword [edx + 0x64], eax
mov ebx, dword [ebp - 0x6c]
cmp byte [ebx + 0x28], 1
jbe 0x61c504c7
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xb0]
call fcn.61c021a4
cmp dword [ebp - 0xe0], 0
jne 0x61c50112
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x40]
call fcn.61c089a8
mov dword [ebp - 0x70], 0
jmp 0x61c4eb7d
mov byte [edx + 8], 1
mov edi, dword [ebp - 0x80]
mov edx, dword [edi + 0x18]
jmp 0x61c4e81c
mov dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0xc4], 0xffffffff
xor eax, eax
xor esi, esi
jmp 0x61c4e44a
and dl, 0x10
jne 0x61c4e1a6
test al, 0x40
jne 0x61c509c8
cmp dword [ebp - 0x50], 0
jne 0x61c509c8
mov edx, 0x32
cmp byte [esi + 0x25], 0
je 0x61c5055c
mov edx, dword [ebp - 0x48]
lea eax, [edx + edx + 1]
shl eax, 5
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x3c], eax
mov edx, 0x33
mov ecx, dword [ebp - 0x48]
lea eax, [ecx + ecx + 1]
shl eax, 5
mov ecx, dword [ebp - 0x8c]
mov eax, dword [eax + ecx + 0xc]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x54]
mov dword [esp], edx
mov ecx, ebx
mov edx, eax
mov eax, dword [ebp - 0x7c]
call fcn.61c25e50
cmp byte [esi + 0x25], 0
jne 0x61c4e1a3
mov ecx, dword [ebp - 0x54]
cmp word [ecx + 0x26], 0x3f
jg 0x61c4e1a3
mov eax, dword [ebp - 0x54]
test byte [eax + 0x2c], 0x20
jne 0x61c4e1a3
mov eax, dword [ebp - 0x48]
shl eax, 6
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ecx + eax + 0x3c]
mov eax, dword [ecx + eax + 0x38]
xor ecx, ecx
mov dword [ebp - 0x54], ebx
jmp 0x61c505cd
shrd eax, edx, 1
shr edx, 1
inc ecx
mov ebx, edx
or ebx, eax
jne 0x61c505c6
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp - 0xb8]
mov edx, dword [eax + 0x20]
dec edx
mov dword [esp], 0xfffffff2
call fcn.61c1cf3c
mov eax, dword [edi + 0x24]
jmp 0x61c4e1a6
mov eax, dword [ebp - 0x118]
mov byte [edx + 8], 1
mov dword [ebp - 0x70], eax
jmp 0x61c4f22a
mov edx, eax
mov eax, ecx
call fcn.61c021a4
mov dword [ebp - 0x6c], 0
jmp 0x61c4df0b
add ebx, 0x44
mov edx, dword [ebp + 0xc]
mov eax, ebx
call fcn.61c088c8
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x48], edx
mov edx, dword [ebp - 0x30]
test edx, edx
je 0x61c50642
mov eax, ebx
call fcn.61c088c8
or dword [ebp - 0x54], eax
or dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x6c]
mov al, byte [eax + 0x28]
mov byte [ebp - 0x40], al
cmp al, 1
jbe 0x61c4e0cd
movzx eax, al
dec eax
imul eax, eax, 0x48
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ecx + eax + 0x318]
mov ebx, dword [ecx + 4]
mov dword [ebp - 0x60], ebx
movzx eax, byte [edx + 0x10]
lea eax, [eax + eax + 1]
shl eax, 5
test byte [ebx + eax + 8], 8
je 0x61c4e0cd
mov ebx, dword [ebp - 0x78]
test ebx, ebx
jne 0x61c50691
test byte [edx + 0x25], 0x10
je 0x61c4e0cd
mov esi, dword [edx + 8]
mov edi, dword [edx + 0xc]
mov eax, dword [ebp - 0x54]
and eax, esi
mov edx, dword [ebp - 0x48]
and edx, edi
or edx, eax
jne 0x61c4e0cd
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x14]
mov edx, dword [edx + 0xc]
lea ebx, [edx + edx*2]
shl ebx, 4
lea ebx, [eax + ebx]
cmp eax, ebx
jae 0x61c506dd
nop
mov edx, dword [eax + 0x28]
and edx, esi
mov ecx, dword [eax + 0x2c]
and ecx, edi
or ecx, edx
je 0x61c506d6
mov edx, dword [eax]
test byte [edx + 4], 1
je 0x61c50727
add eax, 0x30
cmp ebx, eax
ja 0x61c506c0
dec byte [ebp - 0x40]
mov al, byte [ebp - 0x40]
mov edx, dword [ebp - 0x6c]
mov byte [edx + 0x28], al
dec dword [ebp - 0xb4]
cmp al, 1
jbe 0x61c4e0cd
movzx eax, byte [ebp - 0x40]
lea eax, [eax + eax*8 - 9]
mov esi, dword [ebp - 0x6c]
mov edx, dword [esi + eax*8 + 0x318]
movzx eax, byte [edx + 0x10]
lea eax, [eax + eax + 1]
shl eax, 5
mov edi, dword [ebp - 0x60]
test byte [edi + eax + 8], 8
jne 0x61c50680
jmp 0x61c4e0cd
cmp ebx, eax
jbe 0x61c506dd
jmp 0x61c4e0cd
mov edi, dword [ebp - 0x94]
test byte [edi + 0x1a], 2
je 0x61c4e096
mov eax, dword [ebp - 0x6c]
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], 0xffffffff
jmp 0x61c4e096
cmp dword [ebp - 0x68], 1
sbb edx, edx
and edx, 3
add edx, 0x64
mov dword [esp], esi
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
call fcn.61c13590
jmp 0x61c4fa08
movzx eax, al
lea ebx, [eax - 1]
sub ebx, dword [ebp - 0x84]
mov edx, ebx
shl edx, 6
add edx, 0x48
mov eax, dword [ebp - 0xb0]
call fcn.61c023c4
mov dword [ebp - 0x68], eax
test eax, eax
je 0x61c4ee3d
lea eax, [ebx + 1]
mov edx, dword [ebp - 0x68]
mov byte [edx + 1], al
mov byte [edx], al
mov edx, dword [ebp - 0x68]
add edx, 8
mov eax, dword [ebp - 0x78]
shl eax, 6
mov ecx, dword [ebp - 0x70]
lea esi, [ecx + eax + 8]
mov ecx, 0x10
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x6c]
mov esi, dword [esi + 4]
mov dword [ebp - 0xc0], esi
test ebx, ebx
jle 0x61c501a5
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x68]
add edi, 0x48
mov dword [ebp - 0x74], edi
mov dword [ebp - 0xa8], 1
movzx eax, byte [edx + 0x6c]
shl eax, 6
mov ecx, dword [ebp - 0xc0]
lea esi, [ecx + eax + 8]
mov edi, dword [ebp - 0x74]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
inc dword [ebp - 0xa8]
add edx, 0x48
add dword [ebp - 0x74], 0x40
cmp ebx, dword [ebp - 0xa8]
jge 0x61c507f0
jmp 0x61c501a5
mov edi, dword [ebp - 0x68]
mov al, byte [edi + 0x61c8c9e2]
mov edx, dword [ebp - 0x54]
mov byte [edx + 0x305], al
mov ecx, dword [ebp - 0x58]
mov dword [edx + 0x308], ecx
movzx edx, byte [edi + str.gd_t_b]
mov dword [esp], esi
mov eax, dword [ebp - 0x50]
call fcn.61c13590
inc eax
mov ebx, dword [ebp - 0x54]
mov dword [ebx + 0x30c], eax
mov byte [ebx + 0x307], 1
mov dword [ebp - 0x70], 0
jmp 0x61c4eb7d
mov edi, dword [ebp - 0x48]
mov eax, dword [edi]
mov byte [eax + 0x40], 1
jmp 0x61c4f135
mov edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb0]
call fcn.61c021a4
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 0x20]
mov edi, dword [ebp - 0x54]
mov dword [edi + 0x30c], eax
xor eax, eax
cmp word [ebp - 0xec], 0
setne al
mov esi, dword [ebp - 0xa4]
jmp 0x61c4f4dc
mov ecx, dword [ebp + 0x14]
jmp 0x61c4e1f4
mov ecx, dword [ebp - 0x6c]
mov dword [ecx + 8], 0
mov dword [ebp + 8], 0
jmp 0x61c4e004
xor edi, edi
mov ebx, 0x97
jmp 0x61c4fa54
mov ebx, dword [ebp - 0xbc]
and ebx, 0x400
mov dword [ebp - 0x78], ebx
je 0x61c4ddf5
jmp 0x61c4e004
cmp dword [ebp - 0xf4], 0
jne 0x61c50939
xor eax, eax
cmp word [ebp - 0xec], 0
setne al
shl eax, 2
lea edi, [eax + edi*2]
mov esi, dword [ebp - 0xa4]
jmp 0x61c4f398
mov dword [ebp - 0xa8], 1
jmp 0x61c4f301
mov edi, 1
jmp 0x61c4f2db
mov eax, dword [ebp - 0x70]
add eax, dword [ebp - 0xa4]
mov dword [esp], eax
xor ecx, ecx
mov edx, 0x1a
mov eax, dword [ebp - 0x50]
call fcn.61c13590
mov esi, dword [ebp - 0xa4]
inc esi
mov edi, 4
jmp 0x61c4f398
mov eax, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xdc], eax
jmp 0x61c4f2bb
mov esi, dword [ebp - 0x48]
mov edx, dword [esi + 0x4c]
lea ecx, [edx + 1]
mov dword [ebp - 0x74], ecx
add eax, edx
mov dword [esi + 0x4c], eax
jmp 0x61c4f843
mov dword [esp + 8], 0x40
mov dword [esp + 4], str.at_most__d_tables_in_a_join
mov eax, dword [ebp - 0x7c]
mov dword [esp], eax
call fcn.61c16dd0
mov dword [ebp - 0x6c], 0
jmp 0x61c4df0b
mov byte [eax + 8], 1
jmp 0x61c4f5f9
mov edx, dword [ebp - 0x54]
mov ecx, dword [edx + 0x20]
mov eax, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], 0
mov edx, ebx
mov eax, dword [ebp - 0x7c]
call fcn.61c13280
jmp 0x61c4e1a3
mov edi, dword [ebp - 0x48]
mov eax, dword [edi + 0x4c]
lea edx, [eax + 1]
mov dword [ebp - 0xa8], edx
add eax, 2
mov dword [ebp - 0xc0], eax
mov dword [edi + 0x4c], eax
mov dword [esp], edx
xor ecx, ecx
mov edx, 0x1a
mov eax, dword [ebp - 0x50]
call fcn.61c13590
jmp 0x61c501c6
xor ecx, ecx
mov eax, dword [ebp - 0xb0]
call fcn.61c1efe4
mov ecx, eax
mov edx, ebx
mov eax, dword [ebp - 0xb0]
call fcn.61c1fe44
mov ebx, eax
jmp 0x61c50223
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xdc], eax
jmp 0x61c4f2bb
mov edx, eax
jmp 0x61c4fb35
dec eax
mov esi, dword [ebp - 0x48]
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x1c]
mov dword [ebp - 0x70], eax
jmp 0x61c4f64b
mov byte [esi], 0x62
jmp 0x61c4f376
lea eax, [ebp - 0x1c]
mov dword [esp], eax
mov ecx, 1
mov edx, edi
mov eax, dword [ebp - 0x48]
call fcn.61c1e168
jmp 0x61c4f4b0
mov byte [eax + 8], 1
jmp 0x61c4f9fe
mov edi, dword [ebp - 0x54]
mov dword [edi + 0x310], 0
mov dword [ebp - 0xe0], 0
jmp 0x61c50439
mov esi, dword [esi + 8]
test esi, esi
je 0x61c50ad8
cmp byte [esi + 0x36], 0
je 0x61c50ad3
cmp dword [esi + 0x24], 0
je 0x61c50af1
mov esi, dword [esi + 0x14]
jmp 0x61c50ac3
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x61c4fd94
mov edi, dword [ebp - 0x38]
mov ebx, dword [edi + 4]
mov dword [ebp - 0x40], ebx
jmp 0x61c4de0b
mov ax, word [esi + 0x32]
mov dword [ebp - 0x54], 0
cmp ax, 4
ja 0x61c50ad3
movzx eax, ax
cmp dword [ebp - 0x54], eax
jge 0x61c50b9c
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x54]
movsx ecx, word [eax + edx*2]
mov dword [esp + 0xc], esi
mov dword [esp + 8], 2
mov dword [esp], 0
mov dword [esp + 4], 0
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x60]
call fcn.61c27524
test eax, eax
je 0x61c50b98
mov edx, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0x54]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [ebp - 0x54], ecx
mov ax, word [esi + 0x32]
jmp 0x61c50b02
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov eax, dword [ebp - 0x48]
mov dword [edi + 0x2e4], eax
mov word [edi + 0x20], 1
cmp dword [edi + 8], 0
je 0x61c50b85
mov byte [edi + 0x24], 1
test byte [edi + 0x23], 4
je 0x61c4e089
mov byte [edi + 0x27], 1
jmp 0x61c4e089
movzx eax, word [esi + 0x32]
cmp eax, dword [ebp - 0x54]
jne 0x61c50ad3
mov dword [ebx + 0x24], 0x1201
test byte [esi + 0x37], 0x20
jne 0x61c50c58
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x68], eax
mov edx, dword [ebp - 0x40]
mov edx, dword [edx + 0x3c]
mov dword [ebp - 0x84], edx
movzx eax, word [esi + 0x34]
dec eax
mov dword [ebp - 0x60], eax
shl eax, 1
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
cmp dword [ebp - 0x60], 0xffffffff
je 0x61c50c41
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x50]
movsx eax, word [eax + ecx]
mov dword [ebp - 0x58], eax
test eax, eax
js 0x61c50c38
cmp eax, 0x3e
jg 0x61c50c38
mov cl, byte [ebp - 0x58]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
mov ecx, dword [ebp - 0x40]
or ecx, eax
mov eax, dword [ebp - 0x3c]
or eax, edx
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], edx
dec dword [ebp - 0x60]
sub dword [ebp - 0x50], 2
jmp 0x61c50be6
mov edx, dword [ebp - 0x40]
not edx
mov eax, dword [ebp - 0x3c]
not eax
and edx, dword [ebp - 0x68]
and eax, dword [ebp - 0x84]
or eax, edx
jne 0x61c50c5f
mov dword [ebx + 0x24], 0x1241
mov edx, dword [ebp - 0x54]
mov word [ebx + 0x28], dx
mov word [ebx + 0x18], dx
mov dword [ebx + 0x1c], esi
mov word [ebx + 0x14], 0x27
mov eax, dword [ebx + 0x24]
jmp 0x61c50adb