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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
xor eax, eax
mov dword [esp + 0x24], edx
push esi
mov esi, ecx
mov dword [esp + 0xac], 0
xor edx, edx
mov dword [esp + 0xc], esi
push edi
xorps xmm0, xmm0
mov dword [esp + 0x1c], edx
mov edi, dword [esi]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], eax
movq qword [esp + 0xb8], xmm0
mov dword [esp + 0x30], edi
cmp dword [esi + 0x24], eax
jne 0x100857d2
cmp byte [edi + 0x51], al
jne 0x100857d2
mov edx, dword [esp + 0x2c]
call fcn.10064350
mov edi, eax
mov dword [esp + 0xc], edi
test edi, edi
je 0x100857cc
mov ecx, dword [edi + 0x48]
mov dword [esp + 0x54], 0xfff0bdc0
test ecx, ecx
je 0x100836bc
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x54], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x100836bc
jmp 0x100836b0
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x100836b0
mov dword [esp + 0x54], edx
lea eax, [esp + 0xb4]
mov edx, edi
push eax
push dword [ebp + 8]
mov ecx, esi
push 0x7f
call fcn.10082a00
mov dword [esp + 0x48], eax
add esp, 0xc
xor eax, eax
mov edx, edi
cmp dword [edi + 0xc], eax
mov ecx, esi
setne al
mov dword [esp + 0xa4], eax
call fcn.1005f7a0
test eax, eax
jne 0x100857cc
push dword [esp + 0xb4]
mov edx, edi
mov ecx, esi
call fcn.10064460
add esp, 4
test eax, eax
jne 0x100857cc
mov eax, dword [esi + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0x9c], eax
lea edx, [eax + 1]
mov dword [esi + 0x28], edx
test byte [edi + 0x24], 0x80
mov dword [esp + 0x94], edx
jne 0x1008373f
mov dword [esp + 0x44], 0
jmp 0x1008374a
mov ecx, edi
call fcn.1005d2f0
mov dword [esp + 0x44], eax
mov eax, dword [edi + 8]
xor ecx, ecx
mov dword [esp + 0x98], ecx
test eax, eax
je 0x10083782
mov edi, dword [esp + 0x14]
mov edi, edi
cmp dword [esp + 0x44], eax
cmove edi, edx
inc edx
mov dword [esi + 0x28], edx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x10083760
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
mov dword [esp + 0x98], ecx
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x100837a4
mov eax, dword [edx + 0x1c]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [edi + 0x2a]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
mov ecx, dword [esp + 0x34]
push eax
call fcn.10019540
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
je 0x100857ce
movsx eax, word [edi + 0x2a]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x70], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x80], ecx
call sub.MSVCR120.dll_memset
mov eax, dword [esp + 0xa4]
add esp, 0xc
mov ecx, dword [esp + 0x74]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [edi + 0x2a]
jge 0x10083844
mov esi, dword [esp + 0x1c]
jmp 0x10083830
mov dword [esi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [edi + 0x2a]
cmp ecx, eax
jl 0x10083830
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x1c]
movdqa xmmword [esp + 0x100], xmm0
mov dword [esp + 0x104], eax
mov eax, dword [esi + 8]
movdqa xmmword [esp + 0x110], xmm0
mov dword [esp + 0x100], esi
mov dword [esp + 0x108], ecx
mov dword [esp + 0x118], 0x200
mov dword [esp + 8], eax
test eax, eax
jne 0x100838af
cmp dword [esi + 0x74], eax
jne 0x1008389c
mov eax, dword [esi]
test byte [eax + 0x4c], 8
jne 0x1008389c
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.10039b20
mov dword [esp + 8], eax
test eax, eax
je 0x10083ba8
mov ecx, dword [ebp + 8]
xor al, al
mov byte [esp + 0x37], 0
mov byte [esp + 0x1b], al
mov dword [esp + 0x50], 0
cmp dword [ecx], 0
jle 0x10083a78
lea esi, [ecx + 4]
mov dword [esp + 0x24], esi
jmp 0x100838e0
mov edx, dword [esi]
lea ecx, [esp + 0x100]
call fcn.1004e2d0
test eax, eax
jne 0x10083ba8
mov edx, dword [esp + 0xc]
xor edi, edi
movsx eax, word [edx + 0x2a]
test eax, eax
jle 0x100839c8
mov eax, dword [edx + 4]
mov dword [esp + 0x90], eax
mov dword [esp + 0x80], eax
lea esp, [esp]
mov esi, dword [esi + 4]
mov edx, dword [eax]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x10083953
test ecx, ecx
jne 0x10083965
mov edx, dword [esp + 0xc]
movsx eax, word [edx + 0x28]
cmp edi, eax
jne 0x1008398c
mov esi, dword [esp + 0x24]
mov byte [esp + 0x1b], 1
mov eax, dword [esi]
mov dword [esp + 0x7c], eax
jmp 0x100839bd
movzx eax, byte [eax + 0x100baa20]
movzx ecx, byte [ecx + 0x100baa20]
sub ecx, eax
jne 0x10083968
inc edx
jmp 0x10083927
mov edx, dword [esp + 0xc]
inc edi
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x24]
add eax, 0x14
mov dword [esp + 0x80], eax
movsx ecx, word [edx + 0x2a]
cmp edi, ecx
jge 0x100839c8
jmp 0x10083920
cmp dword [esp + 0x44], 0
mov ecx, dword [esp + 0x90]
je 0x100839ab
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 1
je 0x100839ab
mov byte [esp + 0x37], 1
jmp 0x100839b9
lea eax, [edi + edi*4]
test byte [ecx + eax*4 + 0x10], 0x60
jne 0x10083b8e
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov dword [ecx + edi*4], eax
movsx eax, word [edx + 0x2a]
cmp edi, eax
jl 0x10083a00
cmp dword [esp + 0x44], 0
jne 0x10083bb1
mov ecx, dword [esi + 4]
call fcn.10050f60
test eax, eax
je 0x10083bb1
mov eax, dword [esi]
or edi, 0xffffffff
mov byte [esp + 0x1b], 1
mov edx, str.ROWID
mov dword [esp + 0x7c], eax
jmp 0x10083a14
test edi, edi
jns 0x10083a0b
mov edx, str.ROWID
jmp 0x10083a14
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push edx
mov edx, 0x17
push dword [eax]
call fcn.1005ba70
add esp, 0xc
cmp eax, 1
je 0x10083ba8
cmp eax, 2
jne 0x10083a55
mov eax, dword [esp + 0x1c]
mov dword [eax + edi*4], 0xffffffff
mov edi, dword [esp + 0x50]
add esi, 0x14
mov ecx, dword [ebp + 8]
inc edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x24], esi
cmp edi, dword [ecx]
jl 0x100838e0
mov edi, dword [esp + 0xc]
mov al, byte [esp + 0x1b]
mov dl, byte [esp + 0x37]
add dl, al
test byte [edi + 0x24], 0x60
mov byte [esp + 0x4c], dl
je 0x10083b80
lea esp, [esp]
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x24], ecx
cmp ax, word [edi + 0x2a]
jge 0x10083b7c
xor edi, edi
jmp 0x10083ab0
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x10083b5c
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
test byte [eax + edi + 0x10], 0x60
je 0x10083b5c
mov edx, dword [eax + edi + 4]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0xd8], 0
movdqa xmmword [esp + 0xc0], xmm0
movq qword [esp + 0xd0], xmm0
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x24]
mov word [esp + 0xd4], ax
mov dword [esp + 0xc4], 0x1006d690
test edx, edx
je 0x10083b34
lea ecx, [esp + 0xc0]
call fcn.1004bd50
mov ax, word [esp + 0xd4]
mov ecx, dword [esp + 0x24]
cmp byte [esp + 0x1b], 0
jne 0x10083b43
mov edx, 0xfffd
and ax, dx
test ax, ax
je 0x10083b5c
mov eax, dword [esp + 0x1c]
mov ecx, 1
mov dword [esp + 0x24], ecx
mov dword [eax + esi*4], 0x1869f
mov eax, dword [esp + 0xc]
inc esi
add edi, 0x14
movsx eax, word [eax + 0x2a]
cmp esi, eax
jl 0x10083ab0
mov edi, dword [esp + 0xc]
test ecx, ecx
jne 0x10083a90
mov dl, byte [esp + 0x4c]
cmp dword [edi + 0x38], 0
je 0x10083bde
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x10083bf8
mov eax, dword [edx + 4]
lea ecx, [edi + edi*4]
push dword [eax + ecx*4]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x18]
call fcn.1001c650
add esp, 0xc
mov edx, dword [esp + 0x1c]
jmp 0x100857ce
mov eax, dword [esp + 0x50]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x10]
lea eax, [eax + eax*4]
push dword [ecx + eax*4 + 8]
push str.no_such_column:__s
push esi
call fcn.1001c650
mov edx, dword [esp + 0x28]
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x100857ce
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x2c]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x44], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x10083c2f
movzx eax, dl
mov ecx, edi
mov edx, dword [esp + 0x1c]
push eax
call fcn.1006b0d0
add esp, 4
mov dword [esp + 0x5c], eax
mov ecx, eax
jmp 0x10083c35
xor ecx, ecx
mov dword [esp + 0x5c], ecx
cmp dword [ebp + 0x10], 5
mov edx, 1
mov eax, dword [esp + 0x78]
cmove eax, edx
xor edi, edi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], edi
mov esi, dword [eax + 8]
test esi, esi
je 0x10083df5
mov edi, edi
cmp byte [esp + 0x4c], 0
jne 0x10083fe5
cmp ecx, 1
jg 0x10083fe5
cmp esi, dword [esp + 0x44]
je 0x10083fe5
mov edx, dword [esi + 0x24]
test edx, edx
je 0x10083cf8
xorps xmm0, xmm0
mov dword [esp + 0xd8], 0
xor eax, eax
movq qword [esp + 0xd0], xmm0
mov word [esp + 0xd4], ax
lea ecx, [esp + 0xc0]
mov eax, dword [esp + 0x1c]
movdqa xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xc4], 0x1006d690
mov dword [esp + 0xd8], eax
call fcn.1004bd50
cmp byte [esp + 0x1b], 0
mov cx, word [esp + 0xd4]
jne 0x10083ce8
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x10083fe5
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x80], ecx
cmp ax, word [esi + 0x32]
jae 0x10083dcd
xor edx, edx
mov dword [esp + 0x24], edx
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x10083d30
mov edx, dword [esp + 0x1c]
xor ecx, ecx
cwde
cmp dword [edx + eax*4], ecx
setge cl
jmp 0x10083da6
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x1c]
movdqa xmmword [esp + 0xe0], xmm0
movq qword [esp + 0xf0], xmm0
mov edx, dword [eax + edx + 4]
xor eax, eax
mov dword [esp + 0xf8], 0
mov word [esp + 0xf4], ax
mov dword [esp + 0xe4], 0x1006d690
mov dword [esp + 0xf8], ecx
test edx, edx
je 0x10083d8f
lea ecx, [esp + 0xe0]
call fcn.1004bd50
mov ax, word [esp + 0xf4]
cmp byte [esp + 0x1b], 0
jne 0x10083d9e
mov ecx, 0xfffd
and ax, cx
xor ecx, ecx
test ax, ax
setne cl
mov edx, dword [esp + 0x24]
test ecx, ecx
jne 0x10083fb8
movzx eax, word [esi + 0x32]
inc edi
add edx, 0x14
mov dword [esp + 0x24], edx
cmp edi, eax
jl 0x10083d15
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x74]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x70]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x28], edi
test esi, esi
jne 0x10083c60
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov dword [edx + edi*4], eax
cmp dword [esp + 0x78], 0
je 0x10083e28
mov eax, dword [esp + 0x98]
inc eax
push eax
push 1
push dword [esp + 0x7c]
call sub.MSVCR120.dll_memset
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ecx + 0x12], 0
jne 0x10083e39
mov eax, dword [esp + 8]
or dword [eax + 0x98], 0x20
cmp dword [esp + 0x3c], 0
jne 0x10083e52
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x80], 0
je 0x10083e5d
mov dword [esp + 0x80], 1
mov eax, dword [ecx + 0x74]
mov edx, ecx
test eax, eax
mov esi, ecx
mov ecx, dword [esp + 0x54]
mov edi, 1
cmovne edx, eax
cmovne esi, eax
shl edi, cl
mov eax, dword [edx + 0x54]
test edi, eax
jne 0x10083e8f
or eax, edi
mov dword [edx + 0x54], eax
cmp ecx, 1
jne 0x10083e8f
mov ecx, edx
call fcn.10062a00
or dword [esi + 0x50], edi
mov eax, dword [esp + 0x80]
or byte [esi + 0x14], al
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
cmp dword [esi + 0x38], 0
jne 0x10083f25
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax + edi*4]
inc dword [edx + 0x2c]
cmp byte [esp + 0x37], 0
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], eax
jne 0x10083ee2
test ecx, ecx
jne 0x10083ee2
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10083ef6
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x68], eax
movsx eax, word [esi + 0x2a]
add eax, dword [esp + 0x58]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x5c]
cmp byte [esp + 0x4c], 0
jne 0x10083f05
test ecx, ecx
jne 0x10083f05
test eax, eax
je 0x10083f0f
inc dword [edx + 0x2c]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x58], eax
mov ecx, dword [edx + 0x2c]
lea eax, [ecx + 1]
mov dword [esp + 0x8c], eax
movsx eax, word [esi + 0x2a]
add eax, ecx
mov dword [edx + 0x2c], eax
cmp dword [esp + 0xa4], 0
je 0x10083f64
push dword [esp + 0x14]
mov eax, dword [edx + 0xf0]
mov ecx, dword [esp + 0x14]
push 0
mov dword [esp + 0xc0], eax
mov eax, dword [esi]
push 0
push dword [ebp + 0xc]
mov dword [esp + 0xcc], edx
mov dword [edx + 0xf0], eax
mov edx, esi
call fcn.100644b0
add esp, 0x10
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x100]
call fcn.1004e2d0
test eax, eax
jne 0x10083ba8
cmp dword [esi + 0x38], eax
je 0x10084005
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push dword [ebp + 0xc]
push dword [esp + 0x24]
push dword [esp + 0x88]
push dword [ebp + 8]
push esi
mov esi, dword [esp + 0x44]
mov edx, esi
call fcn.100858e0
mov edx, dword [esp + 0x34]
add esp, 0x18
mov edi, dword [esp + 0x30]
jmp 0x100857d6
mov edx, dword [esp + 0x10]
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 0x10083ff8
cmp byte [esi + 0x36], 5
jne 0x10083ff8
mov dword [esp + 0x78], 1
jmp 0x10083ff8
mov edx, dword [esp + 0x10]
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 0x10083dda
jmp 0x10083dd1
mov edx, dword [esp + 0x10]
dec dword [edx + 0x38]
mov eax, dword [edx + 0x38]
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
or eax, ecx
je 0x100840ac
cmp dword [edx + 0x78], 0
jne 0x100840ac
cmp byte [edx + 0x12], 0
jne 0x100840ac
cmp dword [ebp + 0x1c], 0
mov esi, dword [esp + 8]
jne 0x100840b0
inc dword [edx + 0x2c]
mov ecx, dword [esi + 0x6c]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xa8], eax
cmp dword [esi + 0x70], ecx
jg 0x10084070
push 0
push eax
push 0
mov edx, 0x45
mov ecx, esi
call fcn.10039e80
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x100840b0
mov edi, dword [esp + 0xa8]
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 + 0x28]
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 0x100840b0
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
test byte [eax + 0x24], 0x80
jne 0x10084123
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100840dd
push dword [esp + 0x20]
mov edx, 0x48
mov ecx, esi
push dword [esp + 0x4c]
push 0
call fcn.10039e80
add esp, 0xc
jmp 0x10084110
mov edx, dword [esp + 0x48]
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 + 0x20]
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 0x10084265
mov edx, dword [esp + 0x10]
jmp 0x10084336
mov eax, dword [esp + 0x44]
movzx ecx, word [eax + 0x32]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xa0], ecx
lea esi, [eax + 1]
inc eax
mov dword [esp + 0x38], esi
movsx esi, cx
add eax, esi
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x40], eax
mov dword [edx + 0x2c], eax
jne 0x10084332
mov eax, dword [edx + 0x28]
mov dword [esp + 0x60], eax
inc eax
mov dword [edx + 0x28], eax
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x38]
dec edx
add edx, esi
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x10084189
push edx
push dword [esp + 0x3c]
mov edx, 0x48
mov ecx, eax
push 0
call fcn.10039e80
add esp, 0xc
jmp 0x100841c2
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x38]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
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 + 8]
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x6c], edx
cmp dword [ecx + 0x70], edx
jg 0x100841ec
push 0
push esi
push dword [esp + 0x68]
mov edx, 0x64
call fcn.10039e80
add esp, 0xc
mov dword [esp + 0x6c], eax
jmp 0x1008421f
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
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 + 0x10]
mov ecx, eax
mov edx, dword [esp + 0x44]
mov esi, dword [eax + 8]
call fcn.10063350
mov edx, eax
test edx, edx
je 0x10084261
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
je 0x1008424f
push edx
mov edx, 0xfffffff7
call fcn.1003aba0
add esp, 4
jmp 0x10084261
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 esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov eax, 0x1004
cmp byte [ecx + 0x12], 0
jne 0x10084296
cmp dword [esp + 0x3c], 0
jne 0x10084296
cmp dword [esp + 0x5c], 0
jne 0x10084296
cmp byte [esp + 0x4c], 0
jne 0x10084296
cmp dword [esp + 0x78], 0
mov edx, 0x100c
cmove eax, edx
push dword [esp + 0x94]
mov edx, dword [esp + 0x30]
push eax
push 0
push 0
push dword [ebp + 0xc]
call fcn.10094450
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x80], ecx
test ecx, ecx
je 0x10083ba8
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x64], eax
movzx eax, byte [ecx + 0x2e]
mov ecx, dword [ecx + 0x30]
and ecx, 1
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x90], ecx
cmp eax, 1
je 0x1008437c
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov byte [ecx + 0x14], 1
mov ecx, dword [esp + 0x28]
cmp ecx, 2
jne 0x10084380
test edx, edx
js 0x10084380
cmp edx, eax
je 0x10084380
mov eax, edx
mov edx, dword [esp + 0x74]
sub eax, dword [esp + 0x9c]
cmp byte [eax + edx], 0
mov eax, 0
cmovne ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x1008437c
mov esi, dword [esp + 8]
push 0x10
push dword [esp + 0x28]
mov dword [esp + 0x88], 0
push dword [ebp + 0xc]
mov dword [esp + 0x34], 1
push edx
call fcn.100558d0
mov eax, dword [esp + 0xcc]
add esp, 0x10
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x90], 0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
test byte [ecx + 0x24], 0x80
jne 0x10084460
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100843b2
push 0
push dword [esp + 0x24]
mov edx, 0x7f
mov ecx, esi
push eax
call fcn.10039e80
mov esi, dword [esp + 0x2c]
add esp, 0xc
jmp 0x100843e5
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x7f
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 edx, dword [esp + 0x28]
test edx, edx
jne 0x100844f2
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x70]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [ecx + edi*4], eax
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10084428
push edx
push esi
push dword [esp + 0x50]
mov edx, 0x93
mov ecx, edi
call fcn.10039e80
add esp, 0xc
jmp 0x10084666
mov esi, dword [esp + 0x48]
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], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x93
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1008466a
mov eax, dword [esp + 0xa0]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x1008449e
mov eax, dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 8]
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 + 0x1c]
call fcn.10053b80
mov ecx, dword [esp + 0x18]
inc esi
add esp, 0xc
cmp esi, edi
jl 0x10084470
mov edx, dword [esp + 0x28]
test edx, edx
je 0x100844fb
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x100844e3
mov eax, dword [esp + 8]
mov ecx, dword [eax]
cmp byte [ecx + 0x51], 0
jne 0x100844e3
mov eax, dword [eax + 0x68]
lea edx, [esi + esi*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.1003aba0
mov edx, dword [esp + 0x2c]
add esp, 4
mov word [esi], 0xad
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 0xac], edi
mov dword [esp + 0x40], eax
mov edi, dword [esp + 8]
jmp 0x1008466a
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
call fcn.1006bc50
mov ecx, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x6c], esi
mov edx, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], edx
jg 0x10084536
push dword [esp + 0x40]
mov edx, 0x5b
push edi
push dword [esp + 0x40]
mov edi, ecx
call fcn.10039e80
add esp, 0xc
mov edx, eax
jmp 0x10084571
mov esi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 8]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x51], 0
je 0x10084595
mov edx, dword [esp + 0xa0]
movsx eax, dx
cmp eax, 0xfffffff4
je 0x100845e7
push esi
mov edx, eax
call fcn.1003aba0
add esp, 4
jmp 0x100845e7
test edx, edx
jns 0x1008459d
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0xa0]
movsx eax, cx
test eax, eax
jns 0x100845db
cmp byte [edx + 1], 0
jne 0x100845db
cmp eax, 0xfffffffd
jne 0x100845c7
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
jmp 0x100845e7
test esi, esi
je 0x100845e7
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
cmp eax, 0xfffffff4
jne 0x100845e7
inc dword [esi + 0xc]
jmp 0x100845e7
push eax
push esi
mov ecx, edi
call fcn.1003ad60
add esp, 8
mov edx, dword [edi + 0x6c]
cmp dword [edi + 0x70], edx
jg 0x1008460e
push dword [esp + 0x38]
mov edx, 0x83
mov ecx, edi
push dword [esp + 0x44]
push dword [esp + 0x68]
call fcn.10039e80
add esp, 0xc
mov edx, eax
jmp 0x10084641
mov esi, dword [esp + 0x60]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x83
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x10084666
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xa0]
movsx edi, dx
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 8]
mov byte [eax + ecx*4 + 1], 0xfd
mov edx, dword [esp + 0x28]
cmp dword [ebp + 0x1c], 0
jne 0x10084a3f
cmp edx, 2
je 0x10084689
mov ecx, dword [esp + 0x80]
call fcn.10094ee0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0xa4]
test eax, eax
jne 0x10084796
xor esi, esi
test edx, edx
je 0x100846d4
mov eax, dword [esp + 0x64]
test eax, eax
js 0x100846b5
sub eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x74]
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x54]
test ecx, ecx
js 0x100846d8
mov edi, dword [esp + 0x74]
mov eax, ecx
sub eax, dword [esp + 0x9c]
mov byte [eax + edi], 0
mov edi, dword [esp + 8]
jmp 0x100846d8
mov ecx, dword [esp + 0x54]
cmp edx, 2
jne 0x10084745
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x98]
setns al
sub ecx, eax
test ecx, ecx
jle 0x10084745
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x10084712
push 0
push 0
push 0
mov edx, 0x11
mov ecx, edi
call fcn.10039e80
add esp, 0xc
mov esi, eax
jmp 0x10084745
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 + 0xc]
mov ecx, dword [esp + 0x10]
push 0
push 0
push dword [esp + 0x7c]
push dword [esp + 0xa8]
push 0
push 0x61
call fcn.1006fdc0
add esp, 0x18
test esi, esi
je 0x1008478f
mov edx, dword [edi + 0x6c]
jns 0x10084774
lea esi, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x10084783
mov eax, 0x100d03e4
jmp 0x1008478c
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x10084845
test eax, eax
jne 0x100847d5
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x64], eax
je 0x100847d5
cmp dword [esp + 0x54], eax
je 0x100847d5
push dword [esp + 0xac]
mov edx, 0x1d
mov ecx, edi
push dword [esp + 0x44]
push dword [esp + 0x2c]
push eax
call fcn.1003a610
add esp, 0x10
cmp esi, 1
je 0x100847e8
mov eax, dword [esp + 0x10]
dec dword [eax + 0x38]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x50], eax
cmp dword [esp + 0x44], 0
mov edx, dword [esp + 0x20]
cmovne edx, dword [esp + 0x40]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10084819
push 0
push dword [esp + 0x28]
mov ecx, edi
push edx
mov edx, 0x32
call fcn.10039e80
add esp, 0xc
jmp 0x10084a3f
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], 0x32
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
jmp 0x10084a37
cmp dword [esp + 0x44], 0
je 0x1008498b
mov eax, dword [esp + 0x10]
dec dword [eax + 0x38]
mov ecx, dword [edi + 0x6c]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x50], esi
cmp dword [edi + 0x70], ecx
jg 0x10084881
push 0
push dword [esp + 0x28]
mov edx, 0x25
mov ecx, edi
push dword [esp + 0x68]
call fcn.10039e80
add esp, 0xc
jmp 0x100848b4
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 dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0xb0], ecx
cmp dword [edi + 0x70], ecx
jg 0x100848e5
push 0
push dword [esp + 0x44]
mov edx, 0x7e
mov ecx, edi
push dword [esp + 0x68]
call fcn.10039e80
add esp, 0xc
mov dword [esp + 0xb0], eax
jmp 0x10084918
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 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 0x1008493c
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.10039e80
add esp, 0xc
mov edx, eax
jmp 0x1008496f
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 8]
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 0x10084a3f
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
jmp 0x10084a37
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x50], esi
cmp dword [edi + 0x70], esi
jg 0x100849be
push dword [esp + 0x20]
mov edx, 0x2a
mov ecx, edi
push dword [esp + 0x28]
push dword [esp + 0x50]
call fcn.10039e80
mov edx, dword [esp + 0x2c]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x50], esi
jmp 0x100849f1
mov edx, dword [esp + 0x48]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
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 0x10084a10
push edx
push esi
push dword [esp + 0x1c]
mov edx, 0x20
mov ecx, edi
call fcn.10039e80
add esp, 0xc
jmp 0x10084a3f
mov edx, dword [esp + 0x14]
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 + 0x20]
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
cmp byte [esp + 0x1b], 0
je 0x10084b27
push dword [esp + 0x58]
mov esi, dword [esp + 0x14]
mov ecx, esi
mov edx, dword [esp + 0x80]
call fcn.100540b0
mov edx, dword [esp + 0x5c]
mov edi, eax
add esp, 4
cmp edi, edx
je 0x10084ad6
mov esi, dword [esi + 8]
test esi, esi
je 0x10084ad6
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 4]
and ecx, 0x200000
neg ecx
sbb cl, cl
add cl, 0x4e
movzx edx, cl
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x10084aaa
push 0
push dword [esp + 0x5c]
mov ecx, esi
push edi
call fcn.10039e80
mov edx, dword [esp + 0x64]
add esp, 0xc
jmp 0x10084ad6
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 + 0x58]
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 + 8]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10084af8
push 0
push 0
push edx
mov edx, 0xf
mov ecx, edi
call fcn.10039e80
add esp, 0xc
jmp 0x10084b27
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 + 0x37], 0
jne 0x10084bfd
cmp dword [esp + 0x5c], 0
jne 0x10084c08
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x10084d49
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x40]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
push 3
push 0
push dword [ebp + 8]
call fcn.10083420
mov ecx, dword [esp + 0x20]
or esi, eax
mov dword [esp + 0x78], esi
xor eax, eax
xor esi, esi
add esp, 0x14
mov dword [esp + 0x6c], esi
cmp ax, word [ecx + 0x2a]
jge 0x10084ce1
xor edi, edi
mov dword [esp + 0x54], edi
jmp 0x10084b90
test byte [ecx + 0x24], 0x20
mov eax, dword [ecx + 4]
movzx eax, word [edi + eax + 0x10]
mov dword [esp + 0x7c], eax
je 0x10084c25
movzx eax, si
test ax, ax
js 0x10084c25
movsx ecx, ax
xor edi, edi
xor edx, edx
test ecx, ecx
jle 0x10084bd1
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov edi, ecx
add eax, 0x10
test byte [eax], 0x20
jne 0x10084bcb
inc edx
add eax, 0x14
dec ecx
jne 0x10084bc5
mov esi, dword [esp + 0xc]
lea eax, [edi + edi*4]
mov ecx, dword [esi + 4]
mov esi, dword [esp + 0x6c]
test byte [ecx + eax*4 + 0x10], 0x20
je 0x10084c1c
mov eax, dword [esp + 0xc]
mov ax, word [eax + 0x2c]
sub ax, dx
add ax, di
mov edi, dword [esp + 0x54]
movzx eax, ax
jmp 0x10084c28
cmp dword [esp + 0x5c], 0
je 0x10084b49
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.1006aff0
mov esi, eax
jmp 0x10084b4b
mov edi, dword [esp + 0x54]
movzx eax, dx
jmp 0x10084c28
movzx eax, si
movsx edx, ax
add edx, dword [esp + 0x68]
cmp dword [esp + 0x64], 0xffffffff
je 0x10084cab
cmp esi, 0x20
jge 0x10084c4a
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x64], eax
jne 0x10084cab
test byte [esp + 0x7c], 1
jne 0x10084cab
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x10084c70
push 0
push edx
push 0
mov edx, 0x48
mov ecx, eax
call fcn.10039e80
jmp 0x10084cbe
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x54]
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 0x10084cc1
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x10]
push esi
push dword [esp + 0x1c]
call fcn.10053b80
add esp, 0xc
mov ecx, dword [esp + 0xc]
inc esi
add edi, 0x14
mov dword [esp + 0x6c], esi
mov dword [esp + 0x54], edi
movsx eax, word [ecx + 0x2a]
cmp esi, eax
jl 0x10084b90
mov edi, dword [esp + 8]
cmp byte [esp + 0x1b], 0
jne 0x10084d45
cmp dword [esp + 0x44], 0
jne 0x10084d45
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10084d12
push 0
push dword [esp + 0x5c]
mov edx, 0x4d
mov ecx, edi
push dword [esp + 0x28]
call fcn.10039e80
add esp, 0xc
jmp 0x10084d45
mov edx, dword [esp + 0x20]
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 + 0x58]
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
mov edx, dword [esp + 0x3c]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
push 1
push 1
push dword [ebp + 8]
call fcn.10083420
mov ecx, dword [esp + 0xa0]
xor edx, edx
mov dword [esp + 0x4c], eax
xor edi, edi
mov eax, dword [esp + 0x20]
add esp, 0x14
mov dword [esp + 0x48], edi
mov esi, ecx
cmp dx, word [eax + 0x2a]
mov edx, dword [esp + 0x38]
jge 0x10084e85
xor ecx, ecx
mov dword [esp + 0x64], ecx
movsx eax, word [eax + 0x28]
cmp edi, eax
jne 0x10084dc1
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x10084fbf
push 0
push esi
push 0
mov edx, 0x48
mov ecx, eax
call fcn.10039e80
add esp, 0xc
jmp 0x10084e57
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
movzx eax, word [eax + ecx + 0x10]
test al, 0x60
je 0x10084ddf
test al, 0x20
je 0x10084e5b
dec esi
jmp 0x10084e5b
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x10084f77
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 + 0x14]
mov dword [esp + 0x6c], eax
call fcn.100540b0
mov edx, eax
add esp, 4
cmp edx, esi
je 0x10084e57
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x10084e53
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 4]
and ecx, 0x200000
neg ecx
sbb cl, cl
add cl, 0x4e
movzx eax, cl
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x68], eax
cmp dword [edi + 0x70], ecx
jg 0x10084f46
push 0
push esi
push edx
mov edx, eax
mov ecx, edi
call fcn.10039e80
add esp, 0xc
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
inc edi
add dword [esp + 0x64], 0x14
inc esi
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x48], edi
movsx eax, word [eax + 0x2a]
cmp edi, eax
mov eax, dword [esp + 0xc]
jl 0x10084d90
mov ecx, dword [esp + 0x8c]
test byte [eax + 0x24], 0x60
je 0x10084e9e
mov edx, ecx
mov ecx, dword [esp + 0x10]
push eax
call fcn.1006bf10
mov eax, dword [esp + 0x10]
add esp, 4
test byte [esp + 0xb4], 1
je 0x10085152
push dword [esp + 0x8c]
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.1006bd20
mov eax, dword [esp + 0x40]
add esp, 4
mov edi, dword [esp + 0x50]
mov esi, eax
test eax, eax
je 0x10084f0c
nop
cmp byte [esi + 8], 0x7f
jne 0x10084f05
cmp byte [esi + 9], 1
jne 0x10084f05
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
call fcn.10082930
test eax, eax
je 0x10084f05
mov ecx, dword [esp + 0x10]
mov edx, esi
push edi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x18]
call fcn.100832d0
add esp, 0x10
mov esi, dword [esi + 0x20]
test esi, esi
jne 0x10084ed0
cmp dword [esp + 0x44], 0
mov esi, dword [esp + 8]
je 0x10085076
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
jg 0x10085023
push dword [esp + 0x40]
mov edx, 0x1d
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.10039e80
add esp, 0xc
mov edx, eax
jmp 0x10085056
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 dword [eax + ecx*4 + 8], esi
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x68]
mov byte [eax], cl
xor ecx, ecx
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x10084e53
test dword [esp + 0xb4], 1
je 0x10084ffd
cmp edi, 0x1f
jg 0x10084ffd
mov eax, 1
mov ecx, edi
shl eax, cl
test edx, eax
jne 0x10084ffd
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x6c]
cmp dword [eax + 0x70], ecx
jg 0x10084fbf
push 0
push esi
push 0
mov edx, 0x48
mov ecx, eax
call fcn.10039e80
add esp, 0xc
jmp 0x10084e57
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, edi
mov edi, dword [esp + 0x48]
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 0x10084e5b
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
push esi
push edi
push dword [esp + 0x1c]
call fcn.10053b80
add esp, 0xc
mov dword [esp + 0x90], 0
jmp 0x10084e57
lea eax, [edx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 8]
mov dword [eax + ecx*4], 0x1d
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x100850c7
mov eax, dword [esi + 0x68]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xac]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x100850c7
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x10085098
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.10039e80
add esp, 0xc
jmp 0x100850c7
mov edx, dword [esp + 0x14]
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 + 0x20]
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
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [esp + 0x8c]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x2a]
jge 0x10085139
mov dword [esp + 0x68], ecx
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0x10]
test al, 0x60
je 0x100850f5
test al, 0x20
je 0x10085121
dec edi
jmp 0x10085121
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x10085121
movsx eax, word [edx + 0x28]
cmp esi, eax
je 0x10085121
mov ecx, dword [esp + 8]
push edi
push esi
push dword [esp + 0x1c]
call fcn.10053b80
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0xc]
movsx eax, word [edx + 0x2a]
inc esi
add ecx, 0x14
inc edi
mov dword [esp + 0x68], ecx
cmp esi, eax
jl 0x100850e2
mov eax, dword [esp + 0x8c]
test byte [edx + 0x24], 0x60
mov esi, dword [esp + 0x10]
je 0x1008515a
push edx
mov edx, eax
mov ecx, esi
call fcn.1006bf10
add esp, 4
jmp 0x10085156
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
cmp dword [esp + 0xa4], 0
mov edi, dword [esp + 0x50]
jne 0x10085447
push 0
push dword [esp + 0x20]
lea eax, [esp + 0x80]
mov ecx, esi
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x60]
push dword [esp + 0x38]
push dword [esp + 0x74]
push dword [esp + 0xb4]
push dword [esp + 0x38]
push dword [esp + 0x98]
call fcn.1006d6d0
add esp, 0x2c
cmp dword [esp + 0x78], 0
jne 0x100851b9
mov al, byte [esp + 0x4c]
test al, al
je 0x100852b0
cmp dword [esp + 0x44], 0
je 0x1008524d
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], esi
jg 0x100851ea
push dword [esp + 0x40]
mov edx, 0x1d
push edi
push dword [esp + 0x1c]
call fcn.10039e80
add esp, 0xc
mov esi, eax
jmp 0x1008521d
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
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 + 8]
mov eax, dword [eax]
cmp byte [eax + 0x51], 0
jne 0x100852ac
mov edx, dword [esp + 0xac]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x68]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x4c]
jmp 0x100852b4
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x10085277
push dword [esp + 0x20]
mov edx, 0x20
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.10039e80
mov al, byte [esp + 0x58]
add esp, 0xc
jmp 0x100852b4
mov edx, dword [esp + 0x14]
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 + 0x20]
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
mov al, byte [esp + 0x4c]
jmp 0x100852b8
mov al, byte [esp + 0x4c]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x5c], 0
je 0x100852da
mov ecx, dword [esp + 0x10]
movzx eax, al
push eax
push dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x1c]
call fcn.1006a9a0
add esp, 0x10
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
push dword [esp + 0x74]
push dword [esp + 0x9c]
push dword [esp + 0x20]
call fcn.100653a0
add esp, 0x10
cmp dword [esp + 0x90], 0
je 0x10085359
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x10085326
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x87
mov ecx, esi
call fcn.10039e80
add esp, 0xc
jmp 0x10085359
mov edx, dword [esp + 0x14]
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 + 0x5c]
cmp edx, 1
jg 0x1008536a
mov al, byte [esp + 0x4c]
test al, al
je 0x100853c6
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x1008538f
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x7a
mov ecx, esi
call fcn.10039e80
mov edx, dword [esp + 0x68]
add esp, 0xc
jmp 0x100853c2
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
mov esi, dword [esp + 0x14]
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
mov al, byte [esp + 0x4c]
mov esi, dword [esp + 0xc]
test edx, edx
je 0x100853ea
mov ecx, dword [esp + 0x10]
mov edx, esi
movzx eax, al
push eax
push dword [esp + 0x20]
push dword [esp + 0x60]
push 0
call fcn.1006a9a0
add esp, 0x10
xor eax, eax
mov ecx, 2
cmp dword [esp + 0x28], ecx
mov edx, esi
push 0
push 0
cmove eax, ecx
mov ecx, dword [esp + 0x18]
or eax, 4
push eax
push dword [esp + 0x7c]
push dword [esp + 0x68]
push dword [esp + 0xa8]
push dword [esp + 0x2c]
call fcn.1006fb20
add esp, 0x1c
cmp dword [esp + 0x5c], 0
je 0x10085447
movzx eax, byte [esp + 0x4c]
mov edx, esi
mov ecx, dword [esp + 0x10]
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
push dword [ebp + 8]
call fcn.1006b840
add esp, 0x10
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 8]
test edx, edx
je 0x100854a7
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x10085474
push 0
push 1
push edx
mov edx, 0x52
mov ecx, esi
call fcn.10039e80
add esp, 0xc
jmp 0x100854a7
mov edi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x68]
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 eax, dword [esp + 0x3c]
test eax, eax
je 0x100854fa
mov esi, dword [esp + 0xc]
cmp byte [eax + 8], 0x7f
jne 0x100854eb
cmp byte [eax + 9], 2
jne 0x100854eb
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
call fcn.10082930
test eax, eax
je 0x100854e7
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push esi
call fcn.100832d0
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x100854b3
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x28]
cmp eax, 1
je 0x10085618
cmp eax, 2
jne 0x1008554f
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x10085535
push edi
mov edx, esi
call fcn.1003a710
mov ecx, dword [esp + 0x84]
add esp, 4
call fcn.10094ee0
jmp 0x10085618
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0x80]
call fcn.10094ee0
jmp 0x10085618
cmp dword [esp + 0x44], 0
je 0x100855cb
mov ecx, dword [esi + 0xc]
not edi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x10085570
push edi
mov edx, esi
call fcn.1003a710
add esp, 4
jmp 0x10085579
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 0x100855a3
mov edx, dword [esp + 0xb0]
mov ecx, esi
push 0
push edx
push dword [esp + 0x68]
mov edx, 5
call fcn.10039e80
add esp, 0xc
jmp 0x10085618
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 + 0xb0]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 8], edx
jmp 0x10085608
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x100855e9
push 0
push edi
push 0
mov edx, 0xb
mov ecx, esi
call fcn.10039e80
add esp, 0xc
jmp 0x10085618
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
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x24]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x10085636
push edx
mov edx, esi
call fcn.1003a710
add esp, 4
jmp 0x1008563f
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x12], 0
jne 0x10085662
cmp dword [eax + 0x78], 0
jne 0x10085662
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
jne 0x10085662
cmp dword [eax + 0x70], ecx
je 0x10085662
mov ecx, eax
call fcn.1006c340
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x10083ba8
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jg 0x1008568f
push 0
push 1
push edx
mov edx, 0x50
mov ecx, esi
call fcn.10039e80
add esp, 0xc
jmp 0x100856be
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.1003c280
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne 0x10083ba8
mov edi, dword [esi + 0x74]
mov esi, str.rows_updated
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100856e1
sub esi, ecx
mov eax, 0x2400
and esi, 0x7fffffff
test word [edi + 8], ax
jne 0x10085701
cmp dword [edi + 0x18], 0
je 0x10085708
mov ecx, edi
call fcn.100389b0
xor eax, eax
mov dword [edi + 0x10], str.rows_updated
cmp eax, 0x100190b0
jne 0x100857b3
mov eax, dword [edi + 0x20]
mov dword [edi + 0x14], str.rows_updated
test eax, eax
je 0x1008578c
cmp dword [eax + 0x14c], str.rows_updated
jbe 0x1008578c
cmp dword [eax + 0x144], str.rows_updated
ja 0x10085760
mov edx, dword [esp + 0x1c]
mov eax, 0x80
mov dword [edi + 0x18], eax
mov eax, 0x202
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x100857ce
cmp dword [eax + 0x148], str.rows_updated
ja 0x1008578c
movzx eax, word [eax + 0x11e]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x18], eax
mov eax, 0x202
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x100857ce
push str.rows_updated
call dword [0x100cecf4]
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [edi + 0x18], eax
mov eax, 0x202
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x100857ce
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x24], eax
mov eax, 0xa02
mov dword [edi + 0xc], esi
mov word [edi + 8], ax
mov byte [edi + 0xa], 1
jmp 0x100857ce
xor edx, edx
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x100857ee
mov eax, dword [esp + 0xb8]
mov dword [ecx + 0xf0], eax
test edx, edx
je 0x100858a9
test edi, edi
je 0x1008584a
cmp dword [edi + 0x1f8], 0
je 0x1008580f
mov ecx, edi
call fcn.10019190
jmp 0x100858a9
cmp edx, dword [edi + 0x14c]
jae 0x1008584a
cmp edx, dword [edi + 0x144]
jb 0x10085832
mov eax, dword [edi + 0x140]
mov dword [edx], eax
mov dword [edi + 0x140], edx
jmp 0x100858a9
cmp edx, dword [edi + 0x148]
jb 0x1008584a
mov eax, dword [edi + 0x138]
mov dword [edx], eax
mov dword [edi + 0x138], edx
jmp 0x100858a9
cmp dword [0x100cecc8], 0
je 0x1008589f
mov eax, dword [0x100d0018]
test eax, eax
je 0x1008586a
push eax
call dword [0x100ced18]
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call dword [0x100cecf4]
sub dword [0x100d0050], eax
add esp, 4
dec dword [0x100d0074]
push dword [esp + 0x1c]
call dword [0x100cecec]
mov eax, dword [0x100d0018]
add esp, 4
test eax, eax
je 0x100858a9
push eax
call dword [0x100ced20]
jmp 0x100858a6
push edx
call dword [0x100cecec]
add esp, 4
mov edx, esi
mov ecx, edi
call fcn.10062370
mov eax, dword [ebp + 8]
test eax, eax
je 0x100858c2
mov edx, eax
mov ecx, edi
call fcn.100507b0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100858d2
mov edx, eax
mov ecx, edi
call fcn.1004f6f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret