Function at 0x686580
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa8
push ebx
push ebp
xor eax, eax
mov dword [esp + 0x74], 0
push esi
xor ecx, ecx
mov dword [esp + 0x8c], eax
cmp dword [esp + 0xd0], eax
push edi
mov edi, dword [esp + 0xbc]
setne byte [esp + 0x12]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x88], eax
mov eax, dword [edi]
mov esi, dword [edi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x8c], ecx
movsx ebx, word [eax + 0x22]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x58], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x5c], esi
mov dword [esp + 0x74], ebx
test cl, cl
js 0x686613
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], 1
jmp 0x68663c
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
test edx, edx
je 0x686634
mov edi, edi
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x686630
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x686620
mov dword [esp + 0x28], edx
movzx eax, word [edx + 0x32]
mov dword [esp + 0x70], eax
test ecx, 0x800
je 0x68696d
xor ecx, ecx
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
lea ebx, [ebx]
xor ebp, ebp
test ebx, ebx
jle 0x68691b
mov eax, dword [esp + 0xc0]
xor edi, edi
mov dword [esp + 0x54], edi
mov ebx, dword [eax + 4]
add ebx, edi
mov edi, dword [ebx + 4]
and edi, 0xf
je 0x6868f8
movsx eax, word [eax + 0x20]
cmp ebp, eax
je 0x6868f1
movzx eax, word [ebx + 0xe]
and eax, 0x60
je 0x6866ab
test ecx, ecx
jne 0x6866ab
inc edx
mov dword [esp + 0x18], edx
jmp 0x6868f1
cmp dword [esp + 0xe8], 0
mov esi, dword [esp + 0x5c]
je 0x6866d2
mov esi, dword [esp + 0xe8]
cmp dword [esi + ebp*4], 0
mov esi, dword [esp + 0x5c]
jge 0x6866d2
test eax, eax
je 0x6868f1
cmp byte [esp + 0xdc], 0xb
mov ecx, dword [esp + 0x20]
je 0x686702
movzx edi, byte [esp + 0xdc]
mov edx, dword [esp + 0x18]
cmp edi, 5
jne 0x68670c
test ecx, ecx
jne 0x6866fb
cmp word [ebx + 0xc], cx
jne 0x686718
mov edi, 2
jmp 0x686718
cmp edi, 0xb
jne 0x6866ec
mov edi, 2
test ecx, ecx
je 0x686718
test eax, eax
je 0x6868f1
push ebp
push dword [esp + 0xc4]
call fcn.0069c4c0
mov edx, dword [esp + 0xd8]
add esp, 8
cwde
inc edx
add edx, eax
lea eax, [edi - 1]
mov dword [esp + 0x24], edx
cmp eax, 4
ja case.0x686743.4
jmp dword [eax*4 + 0x6889fc]
push edx
push 0x33
push esi
call fcn.006a0a00
inc dword [esp + 0x38]
mov edi, eax
movzx eax, word [ebx + 0xc]
add esp, 0xc
test ax, ax
jne 0x686769
xor eax, eax
jmp 0x686794
mov ecx, dword [esp + 0xc0]
cmp byte [ecx + 0x2b], 0
je 0x68677a
xor eax, eax
jmp 0x686794
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x686785
xor eax, eax
jmp 0x686794
cmp dword [ecx], eax
jge 0x68678d
xor eax, eax
jmp 0x686794
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 - 0xc]
mov edx, dword [esp + 0x24]
push edx
push eax
push dword [esp + 0xc4]
call fcn.0067a5e0
mov edx, dword [esi + 0x74]
add esp, 0xc
test edi, edi
jns 0x6867b3
lea edi, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x6867c8
mov eax, 0x9b3e04
mov dword [eax + 8], edx
jmp 0x6868e9
mov eax, dword [esi + 0x70]
lea ecx, [edi + edi*4]
mov dword [eax + ecx*4 + 8], edx
lea eax, [eax + ecx*4]
jmp 0x6868e9
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x6867ea
mov eax, ecx
mov byte [eax + 0x15], 1
push dword [ebx]
mov eax, dword [esp + 0xc4]
push dword [eax]
push str._s._s
push dword [esp + 0x3c]
call fcn.0068de00
mov ecx, dword [esi + 0x74]
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x24]
cmp dword [esi + 0x78], ecx
jg 0x68682c
push edx
push edi
push 0x513
push 0x45
push esi
call fcn.00655560
add esp, 0x14
jmp 0x686857
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0x513
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x68686d
push ebx
push 0xfffffffffffffff9
push eax
call fcn.00642330
add esp, 0xc
jmp 0x68687f
mov eax, dword [esi + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4 - 0x13], 0xf9
mov dword [eax + ecx*4 - 4], ebx
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x6868e9
lea ecx, [eax + eax*4]
mov edx, 1
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x6868e9
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6868b7
push 0
push dword [esp + 0xe4]
push edx
push 0x32
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6868e9
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0x54]
inc ebp
mov ebx, dword [esp + 0x74]
add edi, 0x10
mov dword [esp + 0x54], edi
cmp ebp, ebx
jl 0x686677
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xbc]
test edx, edx
jne 0x686923
test eax, eax
je 0x68696d
test ecx, ecx
jne 0x68696d
mov ecx, 1
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x686660
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x60
je 0x686660
mov eax, dword [esp + 0xd0]
push ebp
inc eax
push eax
push edi
call fcn.006753b0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
jmp 0x686660
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x24], edx
test edx, edx
je 0x686c88
mov eax, dword [ecx + 0x20]
and eax, 0x200
or eax, 0
jne 0x686c88
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov al, byte [esp + 0xdc]
movzx ebp, al
cmp al, 0xb
jne 0x6869b8
mov ebp, 2
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [edx], ecx
jle 0x686c7d
mov ebx, dword [esp + 0xe8]
lea eax, [edx + 0xc]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], 0xfffd
lea esp, [esp]
mov edi, dword [eax - 4]
test ebx, ebx
je 0x686a75
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov word [esp + 0xa8], ax
mov dword [esp + 0x98], 0x634e60
mov dword [esp + 0xac], ebx
test edi, edi
je 0x686a5d
lea eax, [esp + 0x94]
push edi
push eax
call fcn.006c0960
mov ax, word [esp + 0xb0]
add esp, 8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
cmp byte [esp + 0xd8], 0
jne 0x686a6c
and ax, word [esp + 0x74]
test ax, ax
je 0x686c57
cmp byte [esp + 0x13], 0
jne 0x686a9a
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0069c2e0
add esp, 0xc
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0xbc]
dec dword [eax + 0x38]
mov ebx, dword [eax + 0x38]
test edi, edi
je 0x686ac7
push 0
push 0
push edi
push dword [esp + 0x3c]
call fcn.0063e440
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0xbc]
jmp 0x686ac9
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x57], 0
jne 0x686ae4
push 0x10
push ebx
push edi
push eax
call fcn.0067da50
mov ecx, dword [esp + 0x40]
add esp, 0x10
test edi, edi
je 0x686af2
push edi
push ecx
call fcn.0067d300
add esp, 8
cmp ebp, 4
jne 0x686b55
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x686b1a
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x686c25
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x686c25
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
cmp ebp, 5
jne 0x686b69
mov ebp, 2
mov ecx, dword [esp + 0xbc]
mov edi, dword [ecx + 8]
test edi, edi
jne 0x686b9a
cmp dword [ecx + 0x74], edi
jne 0x686b88
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x686b88
mov byte [ecx + 0x17], 1
push ecx
call fcn.006a14e0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
cmp ebp, 2
jne 0x686bac
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x686ba8
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x686bcb
push 0
push ebp
push 0x113
push 0x46
push edi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x686bfe
mov esi, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0x113
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push 0
push dword [esp + 0x58]
push edx
push edi
call fcn.006a0fe0
mov eax, dword [edi + 0x74]
add esp, 0x10
test eax, eax
jle 0x686c25
lea ecx, [eax + eax*4]
mov edx, 3
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0xc]
not ebx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x686c3f
push ebx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x686c48
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebx*4], eax
mov ebx, dword [esp + 0xe8]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
inc ecx
add eax, 0x14
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], eax
cmp ecx, dword [edx]
jl 0x6869e0
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0xc0]
mov ecx, dword [esp + 0x30]
mov dword [edi + 0x34], 0
mov edx, dword [esp + 0xec]
mov eax, dword [ebx + 8]
mov dword [esp + 0x54], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], eax
test edx, edx
je 0x686e3e
cmp dword [edx], 0
jne 0x686ce4
cmp byte [edx + 0x14], 0
jne 0x686cd7
xor eax, eax
mov byte [esp + 0xdc], 4
mov dword [esp + 0xec], eax
jmp 0x686e3e
mov byte [esp + 0xdc], 6
jmp 0x686e3e
test eax, eax
je 0x686e3e
xor edi, edi
mov edi, edi
mov eax, dword [eax + 0x14]
inc edi
test eax, eax
jne 0x686cf0
lea ebx, [edi + edi*4]
mov dword [esp + 0x54], 1
add ebx, ebx
mov dword [esp + 0x2c], edi
xor edx, edx
test ecx, ecx
je 0x686d1e
push edx
push ebx
push ecx
call fcn.00677570
add esp, 0xc
mov edx, eax
jmp 0x686d88
mov eax, ebx
or eax, edx
je 0x686d86
test edx, edx
ja 0x686d86
jb 0x686d32
cmp ebx, 0x7fffff00
jae 0x686d86
cmp dword [0x9a5720], edx
je 0x686d74
mov eax, dword [0x9b3ad8]
test eax, eax
je 0x686d4d
push eax
call dword [0x9a5770]
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.0065b4e0
mov eax, dword [0x9b3ad8]
add esp, 8
test eax, eax
je 0x686d6e
push eax
call dword [0x9a5778]
add esp, 4
mov edx, dword [esp + 0x40]
jmp 0x686d88
push ebx
call dword [0x9a5740]
add esp, 4
mov dword [esp + 0x18], eax
mov edx, eax
jmp 0x686d8c
xor edx, edx
mov dword [esp + 0x18], edx
test edx, edx
je 0x6889ee
push ebx
push 0
push edx
call sub.MSVCRT.dll_memset
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
je 0x6889ee
mov eax, dword [esp + 0xec]
lea ebp, [edx + edi*8]
mov esi, dword [esp + 0xc0]
xor ebx, ebx
mov edi, eax
mov dword [eax + 0x18], edx
cmp dword [edi], 0
je 0x686e0f
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x686e04
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x686dec
lea esp, [esp]
cmp eax, edx
je 0x686dec
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x686de0
cmp byte [ecx + ebp], 0
mov edx, dword [esp + 0x18]
jne 0x686e08
mov byte [ecx + ebp], 1
mov dword [edx + ebx*8], eax
mov dword [edx + ebx*8 + 4], ecx
inc ebx
jmp 0x686e08
mov edx, dword [esp + 0x18]
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x686dc4
mov eax, esi
xor ecx, ecx
mov esi, dword [esp + 0x5c]
mov eax, dword [eax + 8]
test eax, eax
je 0x686e37
lea edx, [edx + ebx*8]
cmp byte [ecx + ebp], 0
jne 0x686e2f
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x686e21
mov ebx, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0xbc]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0xb4], eax
mov eax, ecx
and eax, 0x6000
or eax, 0
jne 0x686e72
mov dword [esp + 0x80], eax
mov dword [esp + 0x4c], eax
jmp 0x686f36
and ecx, 0x2000
or ecx, 0
push 0
push 0
je 0x686eb6
push pe_nt_image_headers32
push ebx
push edi
call fcn.0069cd60
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x80], ebp
test ebp, ebp
jne 0x686ed5
push eax
push eax
push ebx
push edi
call fcn.00681580
add esp, 0x10
test eax, eax
jne 0x686ed5
mov dword [esp + 0x4c], eax
jmp 0x686f36
push ebx
push edi
mov dword [esp + 0x90], 0
call fcn.00681580
mov edx, eax
add esp, 0x10
mov dword [esp + 0x4c], edx
test edx, edx
je 0x686f36
inc dword [edi + 0x2c]
mov ecx, dword [esi + 0x74]
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x4c], edx
cmp dword [esi + 0x78], ecx
jg 0x686ef9
push 0
push edx
push 0
push 0x47
push esi
call fcn.00655560
add esp, 0x14
jmp 0x686f28
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], eax
cmp byte [esp + 0xd8], 0
je 0x68757e
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x68757e
dec dword [edi + 0x38]
mov al, byte [esp + 0xdc]
mov ebp, dword [edi + 0x38]
movzx ebx, byte [ebx + 0x2a]
mov dword [esp + 0x40], ebp
cmp al, 0xb
je 0x686f6e
movzx ebx, al
jmp 0x686f78
cmp ebx, 0xb
jne 0x686f78
mov ebx, 2
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x68701a
mov eax, ecx
lea esp, [esp]
cmp dword [eax], 0
je 0x686fa2
cmp dword [eax + 0x1c], 0
je 0x686fa2
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x686f90
mov dword [esp + 0x58], eax
test eax, eax
je 0x686fb9
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
cmp eax, ecx
je 0x687013
mov edx, dword [esi + 0x74]
mov dword [esp + 0x64], edx
cmp dword [esi + 0x78], edx
jg 0x686fe0
push 0
push 0
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
mov dword [esp + 0x64], eax
jmp 0x687013
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0xdc]
cmp ebx, 5
jne 0x687098
cmp al, bl
je 0x687098
mov eax, dword [esp + 0xc0]
cmp dword [eax + 8], 0
je 0x687098
cmp dword [esp + 0x64], 0
jne 0x687098
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x687054
push 0
push 0
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x68708e
mov edi, dword [esp + 0xbc]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [edx + 1]
mov dword [esp + 0x8c], eax
cmp byte [esp + 0x12], 0
je 0x68710f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6870c3
push dword [esp + 0xd4]
push ebp
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6870f8
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x68710f
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x68713a
push dword [esp + 0xd0]
push ebp
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.00655560
mov edx, dword [esp + 0xdc]
add esp, 0x14
jmp 0x687176
mov edi, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xc8]
lea ecx, [ecx + ecx*4]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0xbc]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0x10], 0
lea eax, [ebx - 1]
cmp eax, 5
ja case.default.0x687182
jmp dword [eax*4 + 0x688a10]
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x687249
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x68719e
mov eax, edi
push 0xffffffffffffffff
push 1
push 5
push 0
push 1
push dword [esp + 0xe4]
mov byte [eax + 0x14], 1
push dword [esp + 0xe4]
push edx
push dword [esp + 0xa0]
push dword [esp + 0xe4]
push edi
call fcn.00688c40
mov ecx, dword [esi + 0x74]
add esp, 0x2c
cmp dword [esi + 0x78], ecx
jg 0x687202
push 0
push 1
push ebx
push 0x55
push esi
call fcn.00655560
add esp, 0x14
mov dword [esp + 0x88], 1
mov dword [esp + 0x7c], 1
jmp 0x687453
lea eax, [ecx + 1]
mov dword [esp + 0x88], 1
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [esp + 0x7c], 1
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x687453
mov ecx, dword [esp + 0xc0]
cmp dword [ecx + 8], 0
je 0x687279
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x68725f
mov eax, edi
push 0xffffffffffffffff
push 0
push dword [esp + 0xd4]
mov byte [eax + 0x14], 1
push edx
push ecx
push edi
call fcn.00689030
add esp, 0x18
mov dword [esp + 0x7c], 1
jmp 0x687453
mov eax, dword [esp + 0xec]
push edx
push 0
push dword [esp + 0xc8]
push eax
push edi
call fcn.0069fd70
add esp, 0x14
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6872c4
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x687453
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x687453
mov ebx, 2
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x68733a
movsx ecx, ax
mov eax, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx]
push str._s._s
push dword [edi]
call fcn.0068de00
add esp, 0x10
mov dword [esp + 0x24], 0x613
jmp 0x687353
push dword [edx]
push str._s.rowid
push dword [edi]
call fcn.0068de00
add esp, 0xc
mov dword [esp + 0x24], 0xa13
mov edi, dword [edi + 8]
mov ebp, eax
test edi, edi
jne 0x68737f
mov ecx, dword [esp + 0xbc]
cmp dword [ecx + 0x74], edi
jne 0x687374
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x687374
mov byte [ecx + 0x17], 1
push ecx
call fcn.006a14e0
add esp, 4
mov edi, eax
cmp ebx, 2
jne 0x687398
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x687394
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x6873b6
push 0
push ebx
push dword [esp + 0x2c]
push 0x46
push edi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x6873e9
mov esi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 8], ebx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x6873ff
push ebp
push 0xfffffffffffffff9
push eax
call fcn.00642330
add esp, 0xc
jmp 0x687431
test edx, edx
jns 0x687407
mov edx, dword [edi + 0x74]
dec edx
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
jne 0x687424
test ebp, ebp
je 0x687431
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf9
jmp 0x687431
push 0xfffffffffffffff9
push ebp
push eax
push edi
call fcn.006ba360
add esp, 0x10
mov eax, dword [edi + 0x74]
mov ebp, dword [esp + 0x40]
test eax, eax
jle 0x68744c
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov edi, dword [esp + 0xbc]
mov ecx, dword [esi + 0xc]
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x68746d
push ebp
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x687476
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + ebp*4], eax
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x6874eb
cmp dword [esp + 0x58], ecx
je 0x6874eb
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x84], ecx
cmp dword [esi + 0x78], ecx
jg 0x6874b3
push 0
push 0
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
mov dword [esp + 0x84], eax
jmp 0x68757e
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x68757e
mov ebp, dword [esp + 0x8c]
test ebp, ebp
je 0x687585
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x90], ebx
cmp dword [esi + 0x78], ebx
jg 0x687523
push 0
push 0
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
mov dword [esp + 0x90], eax
jmp 0x687556
lea eax, [ebx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ebx + ebx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
lea ecx, [ebp - 1]
test ecx, ecx
jns 0x687563
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x687572
mov eax, 0x9b3e04
jmp 0x68757b
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xec]
cmp dword [esp + 0x54], 0
je 0x687597
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + 4]
mov ebx, dword [eax]
jmp 0x68759d
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x6885f5
lea ecx, [ecx]
mov eax, dword [esp + 0xc4]
cmp dword [eax + ebp*4], 0
je 0x688599
test ecx, ecx
je 0x687612
mov eax, ecx
cmp dword [eax], 0
je 0x6875d8
cmp dword [eax + 0x1c], ebx
je 0x6875d8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x6875c7
cmp dword [esp + 0x64], 0
mov dword [esp + 0x58], eax
je 0x687612
cmp eax, ecx
jne 0x687612
mov eax, dword [esp + 0x64]
mov ecx, eax
mov edx, dword [esi + 0x74]
test eax, eax
jns 0x6875f7
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x687606
mov eax, 0x9b3e04
jmp 0x68760f
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
dec dword [edi + 0x38]
cmp byte [esp + 0x13], 0
mov eax, dword [edi + 0x38]
mov dword [esp + 0x20], eax
jne 0x687641
mov eax, dword [esp + 0xd0]
inc eax
push eax
push dword [esp + 0xc4]
push esi
call fcn.0069c2e0
add esp, 0xc
mov byte [esp + 0x13], 1
add ebp, dword [esp + 0xcc]
cmp dword [ebx + 0x24], 0
mov dword [esp + 0x68], ebp
je 0x687717
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esi + 0x74]
mov edx, dword [eax + edx*4]
cmp dword [esi + 0x78], ecx
jg 0x68767e
push 0
push edx
push 0
push 0x4a
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6876b1
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0x4a
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0x24]
mov ebx, dword [edi]
test eax, eax
je 0x6876d9
push 0
push 0
push eax
push ebx
call fcn.0063e440
add esp, 0x10
mov edi, eax
jmp 0x6876db
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x6876f7
push 0x10
push dword [esp + 0x24]
push edi
push dword [esp + 0xc8]
call fcn.0067d620
add esp, 0x10
test edi, edi
je 0x687705
push edi
push ebx
call fcn.0067d300
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x14]
mov dword [edi + 0x34], 0
mov ecx, dword [esp + 0xc4]
xor edx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
inc eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], eax
cmp dx, word [ebx + 0x34]
jae 0x687904
xor ebx, ebx
mov ebp, eax
mov dword [esp + 0x38], ebx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
cmp ecx, 0xfffffffe
jne 0x6877be
or eax, 0xffffffff
sub eax, dword [esp + 0xd0]
mov dword [edi + 0x34], eax
mov eax, dword [edx + 0x28]
mov eax, dword [eax + ebx + 8]
mov ebx, dword [edi]
test eax, eax
je 0x687780
push 0
push 0
push eax
push ebx
call fcn.0063e440
add esp, 0x10
mov edi, eax
jmp 0x687782
xor edi, edi
cmp byte [ebx + 0x57], 0
jne 0x687799
push ebp
push edi
push dword [esp + 0xc4]
call fcn.0067a590
add esp, 0xc
test edi, edi
je 0x6877a7
push edi
push ebx
call fcn.0067d300
add esp, 8
mov edi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x34], 0
jmp 0x6878d7
cmp ecx, 0xffffffff
je 0x687886
mov eax, dword [esp + 0xc0]
movsx eax, word [eax + 0x20]
cmp ecx, eax
je 0x687886
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x68783c
test cx, cx
js 0x68783c
movsx ecx, cx
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x687813
mov eax, dword [eax + 4]
mov edi, ecx
add eax, 0xe
nop
test byte [eax], 0x20
jne 0x687806
inc edx
add eax, 0x10
dec ecx
jne 0x687800
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, edi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x687837
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, dx
add ax, di
movzx eax, ax
jmp 0x68783f
movzx eax, dx
jmp 0x68783f
movzx eax, cx
mov edx, dword [esp + 0xd0]
mov ecx, dword [esi + 0x74]
inc edx
cwde
add edx, eax
cmp dword [esi + 0x78], ecx
jg 0x68786a
push 0
push ebp
push edx
push 0x50
push esi
call fcn.00655560
mov edi, dword [esp + 0xd0]
add esp, 0x14
jmp 0x6878d7
mov edi, dword [esp + 0xbc]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x50
jmp 0x6878bf
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6878a5
push 0
push ebp
push dword [esp + 0xd8]
push 0x51
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6878d7
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x14]
add ebx, 0x14
mov ecx, dword [esp + 0x40]
inc ebp
inc ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], ecx
movzx eax, word [eax + 0x34]
cmp ecx, eax
jl 0x687744
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x1c]
movzx edi, word [ebx + 0x34]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x68792e
push edx
push edi
push eax
push 0x60
push esi
call fcn.00655560
add esp, 0x14
jmp 0x68795d
mov ebp, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x12], 0
mov edx, dword [esp + 0x28]
je 0x6879a5
cmp edx, ebx
jne 0x6879a5
cmp byte [esp + 0xd8], 0
jne 0x6879a5
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x687997
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x688595
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
jmp 0x688595
movzx ebx, byte [ebx + 0x36]
mov dword [esp + 0x60], ebx
test ebx, ebx
jne 0x6879d2
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x687997
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x688595
mov al, byte [esp + 0xdc]
cmp al, 0xb
je 0x6879e2
movzx ebx, al
jmp 0x6879ec
cmp ebx, 0xb
jne 0x6879f0
mov ebx, 2
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x687a0b
xor ebx, ebx
cmp byte [eax + 0x14], bl
setne bl
lea ebx, [ebx*2 + 4]
mov dword [esp + 0x60], ebx
cmp dword [esp + 0x1c], 0
jne 0x687a62
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x14], 0
jne 0x687a62
cmp edx, ecx
jne 0x687a62
cmp ebx, 5
jne 0x687a62
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x40], eax
lea eax, [ebx - 5]
jne 0x687a3e
test eax, eax
je 0x687a99
mov edi, dword [esp + 0xc0]
push 0
push 0
push pe_nt_image_headers32
push edi
push dword [esp + 0xcc]
call fcn.0069cd60
add esp, 0x14
test eax, eax
je 0x687aa0
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 0x74]
mov dword [esp + 0x3c], edx
movzx edi, word [eax + 0x32]
cmp dword [esi + 0x78], edx
jg 0x687afe
push dword [esp + 0x48]
push dword [esp + 0x24]
push ebp
push 0x1d
push esi
call fcn.00655560
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x687b31
mov edi, dword [esp + 0xc0]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x20]
and eax, 0x4000
mov dword [esp + 0x40], eax
mov eax, 0
jne 0x687abb
test eax, eax
je 0x687ad9
cmp dword [edi + 0x30], eax
jne 0x687a62
mov eax, dword [edi + 0x3c]
push 0
push dword [edi]
add eax, 0x38
push eax
call fcn.0063ff60
add esp, 0xc
cmp dword [eax + 8], 0
jne 0x687a62
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x687997
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x688595
mov ebx, dword [esp + 0x20]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x48]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x687b48
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x14]
cmp edi, dword [esp + 0x28]
jne 0x687b5c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], edx
jmp 0x687bbd
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0xbc]
cmp eax, 1
jne 0x687b8c
mov al, byte [edi + 0x13]
test al, al
jne 0x687b7b
inc dword [edi + 0x2c]
mov edx, dword [edi + 0x2c]
jmp 0x687bb5
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edx, dword [edi + eax*4 + 0x98]
jmp 0x687bb5
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x50], edx
cmp eax, ecx
jg 0x687ba8
add eax, edx
sub ecx, dword [esp + 0x70]
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], ecx
jmp 0x687bb9
mov eax, dword [edi + 0x2c]
lea edx, [eax + 1]
add eax, dword [esp + 0x70]
mov dword [edi + 0x2c], eax
mov dword [esp + 0x50], edx
mov edi, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
jne 0x687bcd
cmp ebx, 5
jne 0x687f92
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x80
jne 0x687ca7
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x687bfe
push 0
push edx
push ebp
push 0x8d
push esi
call fcn.00655560
mov edx, dword [esp + 0x64]
add esp, 0x14
jmp 0x687c29
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x8d
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x12], 0
je 0x687f92
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x687c55
push dword [esp + 0xd4]
push dword [esp + 0x24]
push edx
push 0x35
push esi
call fcn.00655560
add esp, 0x14
jmp 0x687c87
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x687f92
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x687f92
mov eax, dword [esp + 0x28]
cmp edi, eax
je 0x687d56
xor ecx, ecx
xor ebp, ebp
cmp cx, word [eax + 0x32]
jae 0x687d56
mov ebx, edx
movzx edx, word [edi + 0x34]
xor ecx, ecx
test edx, edx
jle 0x687ced
mov eax, dword [eax + 4]
movzx edi, word [eax + ebp*2]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x687ce0
cmp di, word [eax]
je 0x687d0e
inc ecx
add eax, 2
cmp ecx, edx
jl 0x687ce0
or eax, 0xffffffff
mov ecx, dword [esi + 0x74]
movsx edx, ax
cmp dword [esi + 0x78], ecx
jg 0x687d13
push ebx
push edx
push dword [esp + 0x70]
push 0x5d
push esi
call fcn.00655560
add esp, 0x14
jmp 0x687d3e
movzx eax, cx
jmp 0x687cf0
mov edi, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], ebx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x28]
inc ebp
mov edi, dword [esp + 0x14]
inc ebx
movzx eax, word [ecx + 0x32]
cmp ebp, eax
mov eax, ecx
jl 0x687cc3
cmp byte [esp + 0x12], 0
je 0x687f92
movzx ecx, word [eax + 0x32]
mov eax, dword [esi + 0x74]
add eax, ecx
mov dword [esp + 0x78], 0x34
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x48]
je 0x687d87
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x687f92
mov ecx, dword [esp + 0x28]
lea ecx, [ecx]
mov eax, dword [ecx + 0x20]
mov edi, dword [eax + ebx*4]
mov eax, dword [esp + 0xbc]
mov ecx, dword [eax]
mov bl, byte [ecx + 0x54]
mov bh, byte [ecx + 0xb1]
mov byte [esp + 0xb0], bl
test edi, edi
je 0x687e9b
movzx eax, bh
push eax
push edi
push ecx
call fcn.0063fdf0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x687de8
movzx eax, bl
lea eax, [eax + eax*4]
lea ebp, [ebp + eax*4]
add ebp, 0xffffffec
mov eax, dword [esp + 0xbc]
test bh, bh
jne 0x687e11
test ebp, ebp
je 0x687dfd
cmp dword [ebp + 0xc], 0
jne 0x687e11
push edi
push ebp
push dword [esp + 0xb8]
push eax
call fcn.006891d0
add esp, 0x10
mov ebp, eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ecx, dword [eax + 4]
movsx edx, word [ecx + ebx*2]
movzx ecx, word [eax + 0x32]
dec ecx
cmp ebx, ecx
jne 0x687e39
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], 0x35
mov eax, dword [esp + 0xc0]
test byte [eax + 0x1c], 0x20
je 0x687eac
test dx, dx
js 0x687eac
movsx ecx, dx
xor ebx, ebx
xor edi, edi
test ecx, ecx
jle 0x687e73
mov eax, dword [eax + 4]
mov ebx, ecx
add eax, 0xe
mov edi, edi
test byte [eax], 0x20
jne 0x687e66
inc edi
add eax, 0x10
dec ecx
jne 0x687e60
mov eax, dword [esp + 0xc0]
mov eax, dword [eax + 4]
mov ecx, ebx
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x20
je 0x687ea3
mov eax, dword [esp + 0xc0]
mov ax, word [eax + 0x24]
sub ax, di
add ax, bx
mov ebx, dword [esp + 0x24]
movzx eax, ax
jmp 0x687eaf
mov ebp, dword [ecx + 8]
jmp 0x687def
mov ebx, dword [esp + 0x24]
movzx eax, di
jmp 0x687eaf
movzx eax, dx
mov edi, dword [esp + 0xd4]
mov edx, dword [esi + 0x74]
inc edi
cwde
add edi, eax
cmp dword [esi + 0x78], edx
jg 0x687ee2
mov eax, dword [esp + 0x40]
add eax, ebx
push eax
push dword [esp + 0x3c]
push edi
push dword [esp + 0x84]
push esi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x687f1e
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x78]
mov byte [ecx], al
xor eax, eax
mov word [ecx + 2], ax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x40]
add eax, ebx
mov dword [ecx + 0xc], eax
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x687f34
push ebp
push 0xfffffffffffffffe
push eax
call fcn.00642330
add esp, 0xc
jmp 0x687f66
test edx, edx
jns 0x687f3c
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x687f5b
push 0xfffffffffffffffe
push ebp
push eax
push esi
call fcn.006ba360
add esp, 0x10
jmp 0x687f66
test ebp, ebp
je 0x687f66
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xfe
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x687f7d
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esp + 0x28]
inc ebx
mov dword [esp + 0x24], ebx
movzx eax, word [ecx + 0x32]
cmp ebx, eax
jl 0x687da0
mov ecx, dword [esp + 0x60]
lea eax, [ecx - 1]
cmp eax, 5
ja case.0x687fa2.5
jmp dword [eax*4 + 0x688a28]
push dword [esp + 0x14]
mov ebx, dword [esp + 0xc0]
push ecx
push ebx
call fcn.0069cf20
add esp, 0xc
jmp 0x688489
push dword [esp + 0x68]
mov eax, dword [esp + 0xf0]
push dword [esp + 0x18]
mov ebx, dword [esp + 0xc4]
push dword [esp + 0xc8]
push eax
push ebx
call fcn.0069fd70
add esp, 0x14
jmp 0x687ff3
mov ebx, dword [esp + 0xbc]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x688016
push 0
push dword [esp + 0xe4]
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x688489
mov edx, dword [esp + 0xe0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x688489
mov ebp, dword [esi + 0x74]
mov edi, dword [esp + 0x3c]
sub ebp, edi
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0xbc]
mov dword [esp + 0x40], ebp
test edx, edx
je 0x688081
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x688076
mov eax, ebx
inc dword [esp + 0x88]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x80], 0
je 0x6880eb
cmp byte [esp + 0x12], 0
je 0x6880eb
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6880b5
push 0
push 0
push dword [esp + 0xd0]
push 0xa6
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6880eb
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa6
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x18], eax
sete al
movzx eax, al
push eax
push 5
push 0
push dword [esp + 0x80]
push dword [esp + 0x64]
push dword [esp + 0xe4]
push dword [esp + 0xe4]
push dword [esp + 0xa0]
push dword [esp + 0xe4]
push ebx
call fcn.00688c40
add esp, 0x2c
cmp dword [esp + 0x80], 0
je 0x68819c
cmp byte [esp + 0x12], 0
je 0x68819c
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x688166
push 0
push 0
push dword [esp + 0xd0]
push 0xa7
push esi
call fcn.00655560
add esp, 0x14
jmp 0x68819c
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xa7
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x688481
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6881c2
push 0
push 1
push edx
push 0x55
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6881f5
mov edi, dword [esp + 0x3c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x55
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 1
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
mov dword [esp + 0x78], edx
cmp dword [esi + 0x78], edx
jg 0x688218
push 0
push 0
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
mov dword [esp + 0x78], eax
jmp 0x68824b
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x688269
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x688272
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x24], 0
je 0x6882da
mov edx, dword [esp + 0x48]
mov ecx, dword [esi + 0x74]
dec edx
cmp dword [esi + 0x78], ecx
jg 0x6882a7
push 0
push dword [esp + 0x38]
push edx
push 0x32
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6882da
mov ebp, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test ebp, ebp
jle 0x688446
mov ecx, edi
test edi, edi
jns 0x6882ec
mov ecx, dword [esi + 0x74]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x6882fb
mov eax, 0x9b3e04
jmp 0x688304
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov ebp, dword [eax + 8]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x38], edx
cmp cl, 0x8d
je 0x688425
movzx eax, cl
mov dword [esp + 0x24], eax
test byte [eax + 0x6ece40], 1
je 0x68833e
mov ebp, dword [esp + 0x34]
mov edx, dword [esi + 0x74]
shr ecx, 8
movsx ebx, cl
mov dword [esp + 0x60], ebx
cmp dword [esi + 0x78], edx
jg 0x68836a
push dword [esp + 0x38]
push ebp
push dword [esp + 0x84]
push eax
push esi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x6883a9
mov ebx, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4], bl
xor ebx, ebx
mov word [eax + ecx*4 + 2], bx
mov ebx, dword [esp + 0x7c]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + ecx*4 + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x6883c3
cmp ebx, 0xfffffff4
je 0x68840b
push edi
push ebx
push eax
call fcn.00642330
add esp, 0xc
jmp 0x68840b
test edx, edx
jns 0x6883cb
mov edx, dword [esi + 0x74]
dec edx
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
test ebx, ebx
jns 0x6883ff
cmp byte [eax + 1], 0
jne 0x6883ff
cmp ebx, 0xfffffffd
jne 0x6883eb
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
jmp 0x68840b
test edi, edi
je 0x68840b
mov dword [eax + 0x10], edi
mov byte [eax + 1], bl
cmp ebx, 0xfffffff4
jne 0x68840b
inc dword [edi + 0xc]
jmp 0x68840b
push ebx
push edi
push eax
push esi
call fcn.006ba360
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x688425
mov ecx, dword [esi + 0x70]
lea edx, [eax + eax*4]
mov ax, word [esp + 0x96]
mov word [ecx + edx*4 - 0x12], ax
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
dec ebp
inc edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
test ebp, ebp
jg 0x6882e2
mov ebx, dword [esp + 0xbc]
push dword [esp + 0x14]
push 2
push ebx
call fcn.0069cf20
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x688466
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x688475
mov eax, 0x9b3e04
jmp 0x68847e
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov dword [esp + 0x7c], 1
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x6884a7
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x6884b0
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x48]
je 0x6884e8
mov eax, dword [esp + 0x70]
cmp eax, 1
jne 0x6884dd
test ecx, ecx
je 0x6884e8
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x6884e8
movzx eax, al
mov dword [ebx + eax*4 + 0x98], ecx
inc byte [ebx + 0x13]
jmp 0x6884e8
cmp eax, dword [ebx + 0x1c]
jle 0x6884e8
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x58]
test eax, eax
je 0x688595
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x688595
mov eax, dword [eax + 0x10]
test eax, eax
je 0x688519
cmp dword [eax], 0
je 0x688519
cmp dword [eax + 0x1c], 0
jne 0x688595
mov edx, dword [esp + 0x64]
mov ecx, dword [esi + 0x74]
inc edx
cmp dword [esi + 0x78], ecx
jg 0x688538
push 0
push edx
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x688567
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esi + 0x74]
test ebx, ebx
jns 0x688571
lea ebx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x688580
mov eax, 0x9b3e04
jmp 0x688589
mov eax, dword [esi + 0x70]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], edx
mov dword [esp + 0x84], ecx
mov ebp, dword [esp + 0x1c]
cmp dword [esp + 0x54], 0
je 0x6885c8
mov eax, dword [esp + 0x74]
inc eax
mov ebp, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x1c], ebp
cmp ebp, dword [esp + 0x2c]
jge 0x6885f5
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + ebp*8]
lea eax, [eax + ebp*8]
mov ebp, dword [eax + 4]
mov dword [esp + 0x14], ebx
jmp 0x6885da
mov eax, dword [esp + 0x2c]
inc ebp
mov eax, dword [eax + 0x14]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x6885f5
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0xec]
jmp 0x6875b0
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x688675
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x68861a
push 0
push edx
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x688649
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x90]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x68865a
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x688669
mov eax, 0x9b3e04
jmp 0x688672
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
cmp dword [esp + 0x88], 0
je 0x688968
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x4c]
cmp dword [esi + 0x78], ecx
jg 0x6886a3
push 0
push dword [esp + 0x38]
push edx
push 0x14
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6886d2
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x14
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x6c]
jne 0x6888f8
cmp byte [esp + 0x12], 0
je 0x688758
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x68870c
push dword [esp + 0xd4]
push edi
push dword [esp + 0xd8]
push 0x35
push esi
call fcn.00655560
add esp, 0x14
jmp 0x688741
mov edx, dword [esp + 0xd0]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + ecx*4], 0x35
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x74]
test eax, eax
jle 0x688758
lea ecx, [eax + eax*4]
mov edx, 0x90
mov eax, dword [esi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x68877c
push dword [esp + 0xd0]
push edi
push dword [esp + 0xd0]
push 0x21
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6887b1
mov edx, dword [esp + 0xc8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xd0]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc0]
movzx eax, word [edx + 0x20]
test ax, ax
js 0x6887eb
movsx ecx, ax
mov eax, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
mov eax, dword [esp + 0xc0]
push dword [edx]
push str._s._s
push dword [eax]
call fcn.0068de00
add esp, 0x10
mov ebp, 0x613
jmp 0x688808
push dword [edx]
mov eax, dword [esp + 0xc0]
push str._s.rowid
push dword [eax]
call fcn.0068de00
add esp, 0xc
mov ebp, 0xa13
mov ecx, dword [esp + 0xbc]
mov ebx, eax
mov edi, dword [ecx + 8]
test edi, edi
jne 0x68883b
cmp dword [ecx + 0x74], edi
jne 0x688829
mov eax, dword [ecx]
test byte [eax + 0x50], 8
jne 0x688829
mov byte [ecx + 0x17], 1
push ecx
call fcn.006a14e0
mov ecx, dword [esp + 0xc0]
add esp, 4
mov edi, eax
mov eax, dword [ecx + 0x74]
test eax, eax
jne 0x688844
mov eax, ecx
mov byte [eax + 0x15], 1
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x688864
push 0
push 2
push ebp
push 0x46
push edi
call fcn.00655560
add esp, 0x14
mov edx, eax
jmp 0x688897
mov esi, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 2
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x6888ad
push ebx
push 0xfffffffffffffff9
push eax
call fcn.00642330
add esp, 0xc
jmp 0x6888df
test edx, edx
jns 0x6888b5
mov edx, dword [edi + 0x74]
dec edx
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
jne 0x6888d2
test ebx, ebx
je 0x6888df
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xf9
jmp 0x6888df
push 0xfffffffffffffff9
push ebx
push eax
push edi
call fcn.006ba360
add esp, 0x10
mov eax, dword [edi + 0x74]
test eax, eax
jle 0x688941
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [edi + 0x70]
mov word [eax + ecx*4 - 0x12], dx
jmp 0x688941
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x688912
push 0
push edi
push 0
push 0xb
push esi
call fcn.00655560
add esp, 0x14
jmp 0x688941
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x68895f
push edx
push esi
push ecx
call fcn.00667600
add esp, 0xc
jmp 0x688968
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov ebp, dword [esp + 0xc0]
test byte [ebp + 0x1c], 0x80
jne 0x6889e1
mov ecx, dword [esp + 0xc4]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0xd0]
movsx edi, word [ebp + 0x24]
inc ebx
mov edx, dword [ecx + eax*4]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x6889a7
push edx
push edi
push ebx
push 0x60
push esi
call fcn.00655560
add esp, 0x14
jmp 0x6889ce
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x60
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x13], 0
jne 0x6889e1
push 0
push ebp
push esi
call fcn.0069c2e0
add esp, 0xc
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x7c]
mov dword [eax], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret