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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x128
xor eax, eax
mov dword [esp + 0x74], edx
push esi
mov esi, dword [ebp + 0xc]
xorps xmm0, xmm0
push edi
mov edi, ecx
mov dword [esp + 0xb8], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0xa4], 0
mov dword [esp + 0x60], 0
mov edx, dword [edi]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc0], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], eax
movlpd qword [esp + 0xc8], xmm0
mov dword [esp + 0x70], edx
cmp dword [edi + 0x24], eax
jne 0x628b80
cmp byte [edx + 0x51], al
jne 0x628b80
mov edx, dword [esp + 0x7c]
call fcn.006036d0
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x628b7d
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x34], 0xfff0bdc0
test ecx, ecx
je 0x626b5c
mov eax, dword [edi]
xor edx, edx
mov dword [esp + 0x34], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x626b5c
nop dword [eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x626b50
mov dword [esp + 0x34], edx
lea eax, [esp + 0xbc]
mov edx, esi
push eax
push dword [ebp + 8]
mov ecx, edi
push 0x7f
call fcn.00625e60
add esp, 0xc
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0xc]
mov edx, esi
mov ecx, edi
mov dword [esp + 0x84], eax
call fcn.005fe590
test eax, eax
jne 0x628b7d
push dword [esp + 0xbc]
mov edx, esi
mov ecx, edi
call fcn.00603760
add esp, 4
test eax, eax
jne 0x628b7d
mov eax, dword [edi + 0x28]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa0], eax
lea ecx, [eax + 1]
mov dword [edi + 0x28], ecx
test byte [esi + 0x24], 0x80
mov dword [esp + 0x94], ecx
jne 0x626bda
mov dword [esp + 0x44], 0
jmp 0x626bfd
mov ecx, dword [esi + 8]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x626bfd
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x626bf5
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x626be5
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 8]
xor edx, edx
mov dword [esp + 0x74], edx
test ecx, ecx
je 0x626c42
mov edx, dword [esp + 0x94]
xor esi, esi
cmp dword [esp + 0x44], ecx
mov eax, edx
mov edi, dword [esp + 0x18]
cmovne eax, dword [esp + 0x1c]
inc edx
inc esi
mov dword [esp + 0x1c], eax
mov dword [edi + 0x28], edx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x626c13
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x626c68
mov edx, dword [ecx + 0x20]
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov dword [edi + 0x28], ecx
mov ecx, dword [esp + 0x7c]
push 0
mov dword [ecx + 0x34], eax
movsx eax, word [esi + 0x2a]
mov ecx, dword [esp + 0x74]
add eax, edx
lea eax, [eax*4 + 6]
add eax, edx
push eax
call fcn.005b5d30
mov ecx, eax
add esp, 8
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x628b7d
movsx eax, word [esi + 0x2a]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x8c], ecx
call fcn.006e9470
mov eax, dword [esp + 0x80]
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x2a]
jge 0x626d04
mov edi, dword [esp + 0x38]
nop word [eax + eax]
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [esi + 0x2a]
cmp ecx, eax
jl 0x626cf0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x114], eax
mov eax, dword [edi + 8]
movlpd qword [esp + 0x11c], xmm0
mov dword [esp + 0x124], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x110], edi
mov dword [esp + 0x118], ecx
mov dword [esp + 0x128], 0x200
mov dword [esp + 0x10], eax
test eax, eax
jne 0x626d7c
cmp dword [edi + 0x74], eax
jne 0x626d69
mov eax, dword [edi]
test byte [eax + 0x4c], 8
jne 0x626d69
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.005d64e0
mov dword [esp + 0x10], eax
test eax, eax
je 0x628b70
mov ecx, dword [ebp + 8]
xor esi, esi
xor al, al
mov byte [esp + 0x2f], 0
mov byte [esp + 0x23], al
mov dword [esp + 0x48], esi
cmp dword [ecx], esi
jle 0x626f82
lea edi, [ecx + 4]
mov dword [esp + 0x50], edi
nop
mov edx, dword [edi]
lea ecx, [esp + 0x110]
call fcn.005eb0f0
test eax, eax
jne 0x628b70
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x28], ecx
movsx eax, word [eax + 0x2a]
test eax, eax
jle 0x626e73
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov dword [esp + 0x98], eax
mov dword [esp + 0x58], eax
nop
mov edx, dword [eax]
mov edi, dword [edi + 4]
mov dword [esp + 0xa8], edx
sub edi, edx
nop
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x626e32
test eax, eax
jne 0x626e44
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
movsx eax, word [eax + 0x28]
cmp ecx, eax
jne 0x626eb6
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov byte [esp + 0x23], 1
mov eax, dword [edi]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x38]
mov dword [eax + ecx*4], esi
jmp 0x626e73
movzx ecx, byte [eax + 0x792808]
movzx eax, byte [esi + 0x792808]
sub ecx, eax
jne 0x626e47
inc edx
jmp 0x626df0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x58]
inc ecx
mov edi, dword [esp + 0x50]
add eax, 0x14
movsx edx, word [esi + 0x2a]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x58], eax
cmp ecx, edx
jl 0x626de0
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
movsx eax, word [eax + 0x2a]
cmp ecx, eax
jl 0x626f06
cmp dword [esp + 0x44], 0
jne 0x626fd2
mov ecx, dword [edi + 4]
call fcn.005eda90
test eax, eax
je 0x626fd2
mov eax, dword [edi]
or esi, 0xffffffff
mov byte [esp + 0x23], 1
mov edx, str.ROWID
mov dword [esp + 0xa4], eax
jmp 0x626f22
cmp dword [esp + 0x44], 0
mov edx, dword [esp + 0x98]
je 0x626ee4
lea eax, [ecx + ecx*4]
test byte [edx + eax*4 + 0x10], 1
je 0x626ee4
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov byte [esp + 0x2f], 1
mov dword [eax + ecx*4], esi
jmp 0x626e73
lea eax, [ecx + ecx*4]
test byte [edx + eax*4 + 0x10], 0x60
jne 0x626fb5
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*4], esi
jmp 0x626e73
mov esi, dword [esp + 0x28]
test ecx, ecx
jns 0x626f15
mov edx, str.ROWID
jmp 0x626f22
mov eax, dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, 0x17
push dword [eax]
call fcn.005fa470
add esp, 0xc
cmp eax, 1
je 0x628b70
cmp eax, 2
jne 0x626f63
mov eax, dword [esp + 0x38]
mov dword [eax + esi*4], 0xffffffff
mov esi, dword [esp + 0x48]
add edi, 0x14
mov eax, dword [ebp + 8]
inc esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edi
cmp esi, dword [eax]
jl 0x626da0
mov al, byte [esp + 0x23]
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x2f]
add dl, al
mov byte [esp + 0x50], dl
test byte [ecx + 0x24], 0x60
je 0x6270c8
movzx eax, word [ecx + 0x2a]
nop
xor edx, edx
xor edi, edi
xor esi, esi
mov dword [esp + 0x58], edx
cmp di, ax
jge 0x6270c4
jmp 0x627004
push dword [esp + 0xa8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x20]
call fcn.005b9110
add esp, 0xc
jmp 0x628b70
mov ecx, dword [ebp + 8]
lea eax, [esi + esi*4]
mov esi, dword [esp + 0x18]
push dword [ecx + eax*4 + 8]
push str.no_such_column:__s
push esi
call fcn.005b9110
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x628b70
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
cmp dword [eax + esi*4], 0
jge 0x6270a3
mov eax, dword [ecx + 4]
test byte [eax + edi + 0x10], 0x60
je 0x6270a3
mov edx, dword [eax + edi + 4]
xorps xmm0, xmm0
mov eax, dword [esp + 0x38]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xe8], 0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xd4], 0x60dd10
mov dword [esp + 0xe8], eax
test edx, edx
je 0x62706d
lea ecx, [esp + 0xd0]
call fcn.005e8720
mov ecx, dword [esp + 0x14]
cmp byte [esp + 0x23], 0
mov ax, word [esp + 0xe4]
jne 0x627084
mov edx, 0xfffd
and ax, dx
test ax, ax
je 0x62709f
mov eax, dword [esp + 0x38]
mov edx, 1
mov dword [esp + 0x58], edx
mov dword [eax + esi*4], 0x1869f
jmp 0x6270a3
mov edx, dword [esp + 0x58]
movzx eax, word [ecx + 0x2a]
inc esi
mov ecx, eax
add edi, 0x14
cwde
cmp esi, eax
jl 0x627000
mov eax, ecx
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x626fa0
mov dl, byte [esp + 0x50]
cmp dword [ecx + 0x38], 0
je 0x6270d6
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x6270f0
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x7c]
mov dword [esi + 0x40], eax
movzx eax, dl
mov dword [esi + 0x44], ecx
mov esi, dword [esp + 0x14]
mov edx, esi
mov ecx, dword [esp + 0x18]
push eax
push dword [esp + 0x3c]
mov dword [esp + 0xa0], eax
call fcn.0060ab70
add esp, 8
mov ecx, eax
cmp dword [ebp + 0x10], 5
mov edx, 1
mov eax, dword [esp + 0x88]
cmove eax, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x88], eax
xor edi, edi
mov esi, dword [esi + 8]
mov dword [esp + 0x30], edi
test esi, esi
je 0x6272db
mov edi, dword [esp + 0x80]
inc edi
mov dword [esp + 0x28], edi
nop dword [eax + eax]
cmp byte [esp + 0x50], 0
jne 0x627454
cmp ecx, 1
jg 0x627454
cmp esi, dword [esp + 0x44]
je 0x627454
mov edx, dword [esi + 0x24]
test edx, edx
je 0x6271e6
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0xd0]
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xd4], 0x60dd10
mov dword [esp + 0xe8], eax
call fcn.005e8720
cmp byte [esp + 0x23], 0
mov ax, word [esp + 0xe4]
jne 0x6271dd
mov ecx, 0xfffd
and ax, cx
test ax, ax
jne 0x627454
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0xa8], ecx
cmp ax, word [esi + 0x32]
jae 0x6272ae
mov dword [esp + 0x58], ecx
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x62721c
mov edx, dword [esp + 0x38]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x62728b
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x108], 0
movq qword [esp + 0x100], xmm0
mov edx, dword [eax + ecx + 4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xf4], 0x60dd10
mov dword [esp + 0x108], eax
test edx, edx
je 0x627268
lea ecx, [esp + 0xf0]
call fcn.005e8720
cmp byte [esp + 0x23], 0
mov cx, word [esp + 0x104]
jne 0x62727f
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x58]
setne al
test eax, eax
jne 0x627424
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x58], ecx
cmp edi, eax
jl 0x627201
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0x28]
mov byte [edi], 0
mov eax, dword [esp + 0x30]
inc edi
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], edi
mov dword [edx + eax*4], ecx
inc eax
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
test esi, esi
jne 0x627160
mov edi, eax
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x78]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x88], 0
je 0x62730d
mov eax, dword [esp + 0x74]
inc eax
push eax
push 1
push dword [esp + 0x88]
call fcn.006e9470
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x62731e
mov eax, dword [esp + 0x10]
or dword [eax + 0x98], 0x10
cmp dword [esp + 0x64], 0
jne 0x627331
cmp dword [esp + 0x48], 0
mov byte [esp + 0x5f], 0
je 0x627336
mov byte [esp + 0x5f], 1
mov eax, dword [esi + 0x74]
test eax, eax
mov ecx, dword [esp + 0x34]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x54]
test edx, eax
jne 0x627366
bts edx, ecx
mov dword [esi + 0x54], edx
cmp ecx, 1
jne 0x627366
mov ecx, esi
call fcn.006020d0
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x18]
bts eax, ecx
mov dword [esi + 0x50], eax
mov al, byte [esp + 0x5f]
or byte [esi + 0x14], al
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x38], 0
jne 0x6273fc
mov eax, dword [esp + 0x78]
mov ecx, dword [edx + 0x2c]
inc ecx
cmp byte [esp + 0x2f], 0
mov dword [esp + 0x54], ecx
mov eax, dword [eax + edi*4]
mov dword [esp + 0x4c], eax
mov dword [edx + 0x2c], ecx
mov dword [esp + 0x24], ecx
jne 0x6273b4
cmp dword [esp + 0x64], 0
jne 0x6273b4
mov eax, dword [esp + 0x48]
test eax, eax
je 0x6273cb
lea eax, [ecx + 1]
mov dword [esp + 0x8c], eax
movsx eax, word [esi + 0x2a]
add ecx, eax
mov eax, dword [esp + 0x48]
mov dword [edx + 0x2c], ecx
cmp byte [esp + 0x50], 0
jne 0x6273dd
cmp dword [esp + 0x64], 0
jne 0x6273dd
test eax, eax
je 0x6273e9
lea eax, [ecx + 1]
mov dword [esp + 0x54], eax
mov ecx, eax
mov dword [edx + 0x2c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x90], eax
movsx eax, word [esi + 0x2a]
add eax, ecx
mov dword [edx + 0x2c], eax
cmp dword [esp + 0x84], 0
je 0x627474
mov ecx, dword [edx + 0xf4]
mov eax, dword [esi]
mov dword [esp + 0xc4], edx
mov dword [esp + 0xa8], ecx
mov dword [edx + 0xf4], eax
jmp 0x627490
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
cmp dword [ebp + 0x10], 0xb
mov dword [edx + 0x2c], eax
jne 0x627467
cmp byte [esi + 0x36], 5
jne 0x627467
mov dword [esp + 0x88], 1
jmp 0x627467
mov edx, dword [esp + 0x18]
inc dword [edx + 0x2c]
movzx eax, word [esi + 0x34]
mov ecx, dword [edx + 0x2c]
add eax, ecx
mov dword [edx + 0x2c], eax
test ecx, ecx
jne 0x6272b5
jmp 0x6272b2
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xa8], eax
je 0x6274ab
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, esi
push 0
push 0
push dword [ebp + 0xc]
call fcn.00603840
add esp, 0x10
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x110]
call fcn.005eb0f0
test eax, eax
jne 0x628b58
cmp dword [esi + 0x38], eax
je 0x6274f4
push dword [ebp + 0x10]
mov edx, dword [esp + 0x80]
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x40]
push dword [esp + 0xb0]
push dword [ebp + 8]
push esi
call fcn.00628bc0
add esp, 0x18
jmp 0x628b58
mov edx, dword [esp + 0x18]
dec dword [edx + 0x38]
mov eax, dword [edx + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x62759b
cmp dword [edx + 0x78], 0
jne 0x62759b
cmp byte [edx + 0x12], 0
jne 0x62759b
cmp dword [ebp + 0x1c], 0
mov esi, dword [esp + 0x10]
jne 0x62759f
inc dword [edx + 0x2c]
mov ecx, dword [esi + 0x6c]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x9c], eax
cmp dword [esi + 0x70], ecx
jg 0x62755f
push 0
push eax
push 0
mov edx, 0x45
mov ecx, esi
call fcn.005d6700
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x62759f
mov edi, dword [esp + 0x9c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x45
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x62759f
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 0x80
jne 0x62769b
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6275d0
push dword [esp + 0x24]
mov edx, 0x48
mov ecx, esi
push dword [esp + 0x50]
push 0
call fcn.005d6700
add esp, 0xc
jmp 0x627603
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [ebp + 0x1c], 0
je 0x6277da
mov edx, dword [esp + 0x18]
push 0x10
push dword [esp + 0x38]
mov esi, 1
mov dword [esp + 0x60], 0
push dword [ebp + 0xc]
mov dword [esp + 0x3c], esi
push edx
call fcn.005f3480
mov eax, dword [esp + 0xbc]
add esp, 0x10
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc8], 0
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x24], 0x80
jne 0x627961
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x6278b7
mov ecx, dword [esp + 0x10]
mov edx, 0x7f
push 0
push dword [esp + 0x28]
push eax
call fcn.005d6700
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x6278ea
mov eax, dword [esp + 0x44]
movzx esi, word [eax + 0x32]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x68], esi
movsx esi, si
lea ecx, [eax + 1]
inc eax
add eax, esi
mov dword [esp + 0x3c], ecx
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x40], eax
mov dword [edx + 0x2c], eax
jne 0x627611
mov eax, dword [edx + 0x28]
mov dword [esp + 0x60], eax
inc eax
mov dword [edx + 0x28], eax
lea edx, [esi - 1]
mov eax, dword [esp + 0x10]
add edx, ecx
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x6276fc
push edx
push dword [esp + 0x40]
mov edx, 0x48
mov ecx, eax
push 0
call fcn.005d6700
add esp, 0xc
jmp 0x627735
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x3c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0xc0], edx
cmp dword [ecx + 0x70], edx
jg 0x627765
push 0
push esi
push dword [esp + 0x68]
mov edx, 0x64
call fcn.005d6700
add esp, 0xc
mov dword [esp + 0xc0], eax
jmp 0x627798
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, eax
mov edx, dword [esp + 0x44]
mov esi, dword [eax + 8]
call fcn.006029a0
mov edx, eax
test edx, edx
je 0x6277da
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x6277c8
push edx
mov edx, 0xfffffff7
call fcn.005d6f20
add esp, 4
jmp 0x6277da
mov eax, dword [esi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov ecx, dword [esp + 0x18]
mov eax, 0x1004
cmp byte [ecx + 0x12], 0
jne 0x62780e
cmp dword [esp + 0x64], 0
jne 0x62780e
cmp dword [esp + 0x48], 0
jne 0x62780e
cmp byte [esp + 0x50], 0
jne 0x62780e
cmp dword [esp + 0x88], 0
mov edx, 0x100c
cmove eax, edx
push dword [esp + 0x94]
mov edx, dword [esp + 0x80]
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.006388f0
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x58], ecx
test ecx, ecx
je 0x628b58
movzx esi, byte [ecx + 0x2e]
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x30]
and ecx, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0xc8], ecx
cmp esi, 1
je 0x627658
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x1c]
mov byte [ecx + 0x14], 1
cmp esi, 2
jne 0x62765c
test edx, edx
js 0x62765c
cmp edx, eax
je 0x62765c
mov ecx, dword [esp + 0x80]
mov eax, edx
sub eax, dword [esp + 0xa0]
xor edx, edx
cmp byte [eax + ecx], dl
cmovne esi, edx
mov dword [esp + 0x30], esi
jmp 0x627658
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x7f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x627af3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x78]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [ecx + edi*4], eax
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x627929
push esi
push edx
push dword [esp + 0x54]
mov edx, 0x93
mov ecx, edi
call fcn.005d6700
add esp, 0xc
jmp 0x627af7
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x627af7
mov eax, dword [esp + 0x68]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x62799e
nop
mov eax, dword [esp + 0x3c]
mov edx, ecx
mov ecx, dword [esp + 0x10]
add eax, esi
push eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push dword [esp + 0x24]
call fcn.005f06a0
mov ecx, dword [esp + 0x20]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x627970
mov esi, dword [esp + 0x30]
test esi, esi
je 0x6279fa
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x6279e6
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp byte [ecx + 0x51], 0
jne 0x6279e6
mov eax, dword [eax + 0x68]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.005d6f20
mov word [esi], 0xad
add esp, 4
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xb4], edi
mov dword [esp + 0x40], eax
jmp 0x627af3
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
call fcn.0060b920
mov ecx, dword [esp + 0x10]
mov esi, eax
mov dword [esp + 0x68], esi
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x627a33
push dword [esp + 0x40]
mov edx, 0x5b
push edi
push dword [esp + 0x44]
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x627a6a
mov esi, dword [esp + 0x3c]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
push edi
push esi
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.005d7190
mov edx, dword [esi + 0x6c]
add esp, 8
cmp dword [esi + 0x70], edx
jg 0x627aa1
push dword [esp + 0x3c]
mov edx, 0x82
mov ecx, esi
push dword [esp + 0x44]
push dword [esp + 0x68]
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x627ad8
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x82
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x627aef
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp dword [ebp + 0x1c], 0
jne 0x627f63
cmp esi, 2
je 0x627b0f
mov ecx, dword [esp + 0x58]
call fcn.006394f0
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x627c3c
mov edx, dword [esp + 0x30]
xor esi, esi
test edx, edx
je 0x627b67
mov eax, dword [esp + 0x6c]
test eax, eax
js 0x627b42
sub eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x80]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0xb0]
test ecx, ecx
js 0x627b6e
mov edi, dword [esp + 0x80]
mov eax, ecx
sub eax, dword [esp + 0xa0]
mov byte [eax + edi], 0
mov edi, dword [esp + 0x10]
jmp 0x627b6e
mov ecx, dword [esp + 0xb0]
cmp edx, 2
jne 0x627bd8
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x74]
setns al
sub ecx, eax
test ecx, ecx
jle 0x627bd8
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x627ba5
push 0
push 0
push 0
mov edx, 0x11
mov ecx, edi
call fcn.005d6700
add esp, 0xc
mov esi, eax
jmp 0x627bd8
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x11
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 [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0
push 0
push dword [esp + 0x88]
push dword [esp + 0xac]
push 0
push 0x61
call fcn.00610030
add esp, 0x18
test esi, esi
je 0x627c31
mov edx, dword [edi + 0x6c]
lea ecx, [edx - 1]
cmp esi, ecx
jne 0x627c11
mov dword [edi + 0x6c], ecx
jmp 0x627c31
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x627c20
mov eax, 0x87e714
jmp 0x627c2e
mov eax, dword [edi + 0x68]
test esi, esi
cmovns ecx, esi
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x84]
test esi, esi
je 0x627d64
test eax, eax
jne 0x627cee
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x6c], eax
je 0x627cee
cmp dword [esp + 0xb0], eax
je 0x627cee
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x627c8f
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, edi
push dword [esp + 0x38]
push eax
call fcn.005d6700
mov edi, dword [esp + 0x40]
add esp, 0xc
mov edx, eax
jmp 0x627cc6
mov esi, dword [esp + 0x40]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x627cf2
mov eax, dword [esp + 0x10]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xb4]
mov eax, dword [eax + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x627cf2
mov edi, dword [esp + 0x34]
cmp esi, 1
je 0x627d05
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x44], 0
mov edx, dword [esp + 0x24]
cmovne edx, dword [esp + 0x40]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x627d3c
push 0
push dword [esp + 0x38]
mov edi, esi
push edx
mov edx, 0x32
mov ecx, edi
call fcn.005d6700
add esp, 0xc
jmp 0x627f67
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x32
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x627f5b
cmp dword [esp + 0x44], 0
je 0x627eab
mov eax, dword [esp + 0x18]
dec dword [eax + 0x38]
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x28], esi
cmp dword [edi + 0x70], ecx
jg 0x627da4
push 0
push dword [esp + 0x38]
mov edx, 0x25
mov ecx, edi
push dword [esp + 0x68]
call fcn.005d6700
mov edx, dword [esp + 0x6c]
add esp, 0xc
jmp 0x627ddb
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0xb8], ecx
cmp dword [edi + 0x70], ecx
jg 0x627e09
push 0
push dword [esp + 0x44]
mov ecx, edi
push edx
mov edx, 0x7e
call fcn.005d6700
add esp, 0xc
mov dword [esp + 0xb8], eax
jmp 0x627e38
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x627e5c
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x24]
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x627e8f
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x627f63
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
jmp 0x627f5b
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x28], esi
cmp dword [edi + 0x70], esi
jg 0x627ede
push dword [esp + 0x24]
mov edx, 0x2a
mov ecx, edi
push dword [esp + 0x38]
push dword [esp + 0x54]
call fcn.005d6700
mov edx, dword [esp + 0x30]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x28], esi
jmp 0x627f15
mov edx, dword [esp + 0x4c]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x2a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x627f34
push edx
push esi
push dword [esp + 0x24]
mov edx, 0x20
mov ecx, edi
call fcn.005d6700
add esp, 0xc
jmp 0x627f63
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x10]
cmp byte [esp + 0x23], 0
je 0x628050
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x18]
mov ecx, esi
push edx
mov edx, dword [esp + 0xa8]
call fcn.005f0dc0
mov edx, dword [esp + 0x58]
mov edi, eax
add esp, 4
cmp edi, edx
je 0x627fff
mov esi, dword [esi + 8]
test esi, esi
je 0x627fff
mov eax, dword [esp + 0xa4]
mov ecx, dword [esi + 0x6c]
mov edx, dword [eax + 4]
and edx, 0x200000
neg edx
sbb edx, edx
add edx, 0x4e
cmp dword [esi + 0x70], ecx
jg 0x627fd3
push 0
push dword [esp + 0x58]
mov ecx, esi
push edi
call fcn.005d6700
mov edx, dword [esp + 0x60]
add esp, 0xc
jmp 0x627fff
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edi
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], edx
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x628021
push 0
push 0
push edx
mov edx, 0xf
mov ecx, edi
call fcn.005d6700
add esp, 0xc
jmp 0x628050
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xf
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
cmp byte [esp + 0x2f], 0
jne 0x6280a5
cmp dword [esp + 0x48], 0
jne 0x6280ac
cmp dword [esp + 0x64], 0
je 0x6281f4
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x68]
push dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 3
push 0
push dword [ebp + 8]
call fcn.006269b0
or esi, eax
xor ecx, ecx
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x68], esi
xor esi, esi
cmp cx, word [eax + 0x2a]
jge 0x628190
xor edi, edi
jmp 0x6280c4
cmp dword [esp + 0x48], 0
je 0x628069
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
call fcn.0060aa80
mov esi, eax
jmp 0x62806b
mov eax, dword [esp + 0x14]
mov edx, esi
mov ecx, eax
call fcn.005fb990
movsx edx, ax
add edx, dword [esp + 0x8c]
cmp dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x6c], edx
je 0x628162
cmp esi, 0x20
jge 0x6280fa
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x68], eax
jne 0x628162
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test byte [eax + edi + 0x10], 1
jne 0x628162
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x628127
push 0
push edx
push 0
mov edx, 0x48
mov ecx, eax
call fcn.005d6700
jmp 0x628175
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x6c], eax
mov eax, edx
mov edx, dword [esp + 0x6c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x48
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 0x628178
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
push esi
push dword [esp + 0x24]
call fcn.005f06a0
add esp, 0xc
mov eax, dword [esp + 0x14]
inc esi
add edi, 0x14
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x6280c0
mov edi, dword [esp + 0x10]
cmp byte [esp + 0x23], 0
jne 0x6281f4
cmp dword [esp + 0x44], 0
jne 0x6281f4
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x6281c1
push 0
push dword [esp + 0x58]
mov edx, 0x4d
mov ecx, edi
push dword [esp + 0x2c]
call fcn.005d6700
add esp, 0xc
jmp 0x6281f4
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp + 0x10]
mov edx, dword [esp + 0x68]
push dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 1
push 1
push dword [ebp + 8]
call fcn.006269b0
mov ecx, dword [esp + 0xa4]
xor edx, edx
mov dword [esp + 0x50], eax
xor edi, edi
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x4c], edi
mov esi, ecx
cmp dx, word [eax + 0x2a]
mov edx, dword [esp + 0x3c]
jge 0x628335
xor ecx, ecx
mov dword [esp + 0x6c], ecx
nop
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x628271
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x628451
push 0
push esi
push 0
mov edx, 0x48
mov ecx, eax
call fcn.005d6700
add esp, 0xc
jmp 0x628307
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
movzx eax, word [eax + ecx + 0x10]
test al, 0x60
je 0x628290
test al, 0x20
lea eax, [esi - 1]
cmove eax, esi
mov esi, eax
jmp 0x62830b
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x62840d
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
push esi
mov eax, dword [ecx + eax*4 + 4]
mov edx, eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x90], eax
call fcn.005f0dc0
add esp, 4
mov dword [esp + 0x68], eax
cmp eax, esi
je 0x628307
mov edi, dword [esp + 0x18]
mov edi, dword [edi + 8]
test edi, edi
je 0x628303
mov edx, dword [esp + 0x8c]
mov ecx, dword [edi + 0x6c]
mov edx, dword [edx + 4]
and edx, 0x200000
neg edx
sbb edx, edx
add edx, 0x4e
cmp dword [edi + 0x70], ecx
jg 0x6283d2
push 0
push esi
push eax
mov ecx, edi
call fcn.005d6700
add esp, 0xc
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x14]
inc edi
add dword [esp + 0x6c], 0x14
inc esi
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x4c], edi
movsx eax, word [eax + 0x2a]
cmp edi, eax
mov eax, dword [esp + 0x14]
jl 0x628240
mov ecx, dword [esp + 0x90]
test byte [eax + 0x24], 0x60
je 0x62834e
mov edx, ecx
mov ecx, dword [esp + 0x18]
push eax
call fcn.0060bc00
mov eax, dword [esp + 0x18]
add esp, 4
test byte [esp + 0xbc], 1
je 0x6285ee
push dword [esp + 0x90]
mov edi, dword [esp + 0x14]
mov edx, eax
mov ecx, edi
call fcn.0060ba10
mov esi, dword [esp + 0x2c]
add esp, 4
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
push esi
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push dword [esp + 0x20]
push 1
push dword [ebp + 8]
push 0x7f
call fcn.00626920
mov edx, dword [edi + 0x6c]
add esp, 0x1c
cmp dword [esp + 0x44], 0
mov eax, dword [edi + 0x70]
je 0x628508
cmp eax, edx
jg 0x6284b5
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x24]
call fcn.005d6700
add esp, 0xc
mov edx, eax
jmp 0x6284e8
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 0x10], 0
mov word [eax + 2], cx
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
jmp 0x628303
test dword [esp + 0xbc], 1
je 0x62848f
cmp edi, 0x1f
jg 0x62848f
mov eax, 1
mov ecx, edi
shl eax, cl
test edx, eax
jne 0x62848f
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x628451
push 0
push esi
push 0
mov edx, 0x48
mov ecx, eax
call fcn.005d6700
add esp, 0xc
jmp 0x628307
mov edi, dword [esp + 0x10]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x4c]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4], 0x48
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x62830b
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
push edi
push dword [esp + 0x24]
call fcn.005f06a0
add esp, 0xc
mov dword [esp + 0xc8], 0
jmp 0x628307
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x628555
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xb4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x628555
cmp eax, edx
jg 0x628526
push dword [esp + 0x24]
mov edx, 0x20
mov ecx, edi
push esi
push dword [esp + 0x24]
call fcn.005d6700
add esp, 0xc
jmp 0x628555
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x90]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x2a]
jge 0x6285d5
mov dword [esp + 0x8c], ecx
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0x10]
test al, 0x60
je 0x62858b
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x6285ba
mov eax, dword [esp + 0x38]
cmp dword [eax + esi*4], 0
jge 0x6285ba
movsx eax, word [edx + 0x28]
cmp esi, eax
je 0x6285ba
mov ecx, dword [esp + 0x10]
push edi
push esi
push dword [esp + 0x24]
call fcn.005f06a0
mov ecx, dword [esp + 0x98]
add esp, 0xc
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 0x2a]
inc esi
add ecx, 0x14
inc edi
mov dword [esp + 0x8c], ecx
cmp esi, eax
jl 0x628573
mov eax, dword [esp + 0x90]
test byte [edx + 0x24], 0x60
mov esi, dword [esp + 0x18]
je 0x6285f6
push edx
mov edx, eax
mov ecx, esi
call fcn.0060bc00
add esp, 4
jmp 0x6285f2
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x84], 0
mov edi, dword [esp + 0x28]
jne 0x6288de
push 0
push dword [esp + 0x3c]
lea eax, [esp + 0x90]
mov ecx, esi
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x64]
push dword [esp + 0x3c]
push dword [esp + 0x70]
push dword [esp + 0xb4]
push dword [esp + 0x40]
push dword [esp + 0xa0]
call fcn.0060dd50
add esp, 0x2c
cmp dword [esp + 0x88], 0
jne 0x628657
cmp byte [esp + 0x50], 0
je 0x62873c
cmp dword [esp + 0x44], 0
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x6c]
mov eax, dword [ecx + 0x70]
je 0x6286e5
cmp eax, esi
jg 0x62868a
push dword [esp + 0x40]
mov edx, 0x1d
push edi
push dword [esp + 0x24]
call fcn.005d6700
add esp, 0xc
mov esi, eax
jmp 0x6286bd
mov edx, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x62873c
mov edx, dword [esp + 0xb4]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x628740
cmp eax, esi
jg 0x628707
push dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov edx, 0x20
push edi
push dword [esp + 0x24]
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x628740
mov edx, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x20
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x628744
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x48], 0
je 0x628769
push dword [esp + 0x98]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x3c]
push 0
push edx
mov edx, dword [esp + 0x24]
call fcn.0060a4c0
add esp, 0x10
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push dword [esp + 0x7c]
push dword [esp + 0x9c]
push dword [esp + 0x28]
call fcn.00604f90
add esp, 0x10
cmp dword [esp + 0xc8], 0
je 0x6287e8
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x6287b5
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x87
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x6287e8
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x87
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 + 0x48]
cmp edx, 1
jg 0x6287f8
cmp byte [esp + 0x50], 0
je 0x628850
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x62881d
push 0
push 0
push dword [esp + 0x24]
mov edx, 0x7a
mov ecx, esi
call fcn.005d6700
mov edx, dword [esp + 0x54]
add esp, 0xc
jmp 0x628850
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test edx, edx
je 0x628875
push dword [esp + 0x98]
mov edx, dword [esp + 0x18]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x5c]
push 0
call fcn.0060a4c0
add esp, 0x10
mov esi, dword [esp + 0x30]
xor eax, eax
mov edx, dword [esp + 0x14]
cmp esi, 2
mov ecx, dword [esp + 0x18]
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x84]
push dword [esp + 0x64]
push dword [esp + 0xa8]
push dword [esp + 0x34]
call fcn.0060fd80
add esp, 0x1c
cmp dword [esp + 0x48], 0
je 0x6288e2
push dword [esp + 0x98]
mov edx, dword [esp + 0x18]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x2c]
push dword [ebp + 8]
call fcn.0060b6e0
add esp, 0x10
jmp 0x6288e2
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x628947
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x6c]
cmp dword [edx + 0x70], ecx
jg 0x628911
mov ecx, dword [esp + 0x10]
mov edx, 0x52
push 0
push 1
push eax
call fcn.005d6700
add esp, 0xc
jmp 0x628947
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x9c]
mov dword [eax + ecx*4], 0x52
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 [esp + 0x64]
mov ecx, dword [esp + 0x18]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x2c]
push dword [esp + 0x20]
push 2
push dword [ebp + 8]
push 0x7f
call fcn.00626920
add esp, 0x1c
cmp esi, 1
je 0x628a88
cmp esi, 2
mov esi, dword [esp + 0x10]
jne 0x6289b9
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x6289a2
push edi
mov edx, esi
call fcn.005d6c70
mov ecx, dword [esp + 0x5c]
add esp, 4
call fcn.006394f0
jmp 0x628a8c
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0x58]
call fcn.006394f0
jmp 0x628a8c
cmp dword [esp + 0x44], 0
je 0x628a49
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x6289de
push edi
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x6289e7
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x628a11
mov edx, dword [esp + 0xb8]
mov ecx, esi
push 0
push edx
push dword [esp + 0x68]
mov edx, 5
call fcn.005d6700
add esp, 0xc
jmp 0x628a8c
mov edx, dword [esp + 0x60]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb8]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x628a8c
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x628a67
push 0
push edi
push 0
mov edx, 0xb
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x628a8c
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edi
jmp 0x628a37
mov esi, dword [esp + 0x10]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x34]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x628aaa
push edx
mov edx, esi
call fcn.005d6c70
add esp, 4
jmp 0x628ab3
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x12], 0
jne 0x628ad6
cmp dword [eax + 0x78], 0
jne 0x628ad6
cmp dword [ebp + 0x1c], 0
jne 0x628ad6
cmp dword [eax + 0x70], 0
je 0x628ad6
mov ecx, eax
call fcn.0060bf00
mov edx, dword [esp + 0x9c]
test edx, edx
je 0x628b58
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x628aff
push 0
push 1
push edx
mov edx, 0x50
mov ecx, esi
call fcn.005d6700
add esp, 0xc
jmp 0x628b2e
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov dword [eax + ecx*4], 0x50
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, 1
mov ecx, esi
call fcn.005d8500
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x628b58
mov ecx, dword [esi + 0x74]
mov edx, str.rows_updated
push 0
push 1
push 0xffffffffffffffff
call fcn.005d5a20
add esp, 0xc
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x628b70
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0xf4], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x70]
call fcn.005b5a40
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
call fcn.00601ab0
mov eax, dword [ebp + 8]
test eax, eax
je 0x628b9f
mov ecx, dword [esp + 0x70]
mov edx, eax
call fcn.005ed500
test esi, esi
je 0x628bae
mov ecx, dword [esp + 0x70]
mov edx, esi
call fcn.005ec4f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret