Function at 0x10096410
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 + 0x6c], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xb4], 0
xor edx, edx
mov dword [esp + 0xc], edi
xorps xmm0, xmm0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x1c], edx
mov esi, dword [edi]
mov dword [esp + 0x84], edx
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0xac], edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0xbc], 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x40], eax
movq qword [esp + 0xc4], xmm0
mov dword [esp + 0x48], esi
cmp dword [edi + 0x24], eax
jne 0x10098cbd
cmp byte [esi + 0x53], al
jne 0x10098cbd
mov edx, dword [esp + 0x74]
call fcn.100baa00
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
je 0x10098c94
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x3c], 0xffff8000
test ecx, ecx
je 0x1009650e
mov eax, dword [edi]
xor edx, edx
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x1009650e
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x10096502
mov dword [esp + 0x3c], edx
lea eax, [esp + 0xcc]
mov edx, esi
push eax
push dword [ebp + 8]
mov ecx, edi
push 0x80
call fcn.1009a650
mov edx, dword [esp + 0x80]
add esp, 0xc
mov cl, byte [esi + 0x2b]
mov dword [esp + 0x5c], eax
mov byte [esp + 0x1a], cl
cmp dword [edx], 1
jle 0x10096548
mov eax, dword [ebp + 8]
mov eax, dword [eax]
jmp 0x1009654a
xor eax, eax
mov dword [esp + 0x28], eax
cmp cl, 2
je 0x10096587
test eax, eax
jne 0x10096587
push str.UPDATE
push dword [ebp + 0x18]
mov ecx, edi
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call fcn.100ba470
add esp, 0x10
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
jmp 0x1009659e
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0xc]
mov edx, esi
mov dword [esp + 0x70], eax
mov ecx, edi
call fcn.100bf790
test eax, eax
jne 0x10098caf
push dword [esp + 0xcc]
mov edx, esi
mov ecx, edi
call fcn.100ba930
add esp, 4
test eax, eax
jne 0x10098caf
mov eax, dword [edi + 0x28]
mov dword [esp + 0x14], eax
mov dword [esp + 0xa8], eax
lea edx, [eax + 1]
mov dword [edi + 0x28], edx
test byte [esi + 0x1c], 0x80
mov dword [esp + 0xb0], edx
jne 0x100965f9
mov dword [esp + 0x38], 0
jmp 0x10096604
mov ecx, esi
call fcn.100c25f0
mov dword [esp + 0x38], eax
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [esp + 0xa4], ecx
test eax, eax
je 0x1009663a
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x38], eax
cmove esi, edx
inc edx
mov dword [edi + 0x28], edx
inc ecx
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x10096618
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0xa4], ecx
mov edx, dword [ebp + 0x1c]
test edx, edx
je 0x1009665c
mov eax, dword [edx + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x2c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa8]
mov dword [edi + 0x28], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
push 0
mov dword [edx + 0x34], eax
movsx eax, word [esi + 0x22]
add eax, ecx
lea eax, [eax*4 + 6]
add eax, ecx
mov ecx, dword [esp + 0x4c]
push eax
call fcn.10111510
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
je 0x10098cb1
movsx eax, word [esi + 0x22]
lea ecx, [edx + eax*4]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x90], ecx
lea ecx, [ecx + eax*4]
inc eax
push eax
add ecx, 4
push 1
push ecx
mov dword [esp + 0x94], ecx
call fcn.10002790
mov eax, dword [esp + 0xb0]
add esp, 0xc
mov ecx, dword [esp + 0x88]
mov byte [ecx + eax + 1], 0
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x22]
jge 0x100966f7
mov edi, dword [esp + 0x1c]
mov dword [edi + ecx*4], 0xffffffff
inc ecx
movsx eax, word [esi + 0x22]
cmp ecx, eax
jl 0x100966e3
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x74]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x1c]
movaps xmmword [esp + 0x110], xmm0
mov dword [esp + 0x114], eax
mov eax, dword [edi + 8]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x110], edi
mov dword [esp + 0x118], ecx
mov dword [esp + 0x128], 0x200
mov dword [esp + 8], eax
test eax, eax
jne 0x10096760
cmp dword [edi + 0x74], eax
jne 0x1009674d
mov eax, dword [edi]
test byte [eax + 0x4c], 8
jne 0x1009674d
mov byte [edi + 0x17], 1
mov ecx, edi
call fcn.100ec3b0
mov dword [esp + 8], eax
test eax, eax
je 0x10098c84
mov ecx, dword [ebp + 8]
xor al, al
mov byte [esp + 0x37], al
mov byte [esp + 0x1b], al
mov dword [esp + 0x30], 0
cmp dword [ecx], 0
jle 0x1009699e
lea esi, [ecx + 8]
mov dword [esp + 0x2c], esi
mov ecx, dword [esi + 4]
xor dl, dl
mov byte [esp + 0x36], dl
test ecx, ecx
jne 0x10096798
mov byte [esp + 0x36], dl
jmp 0x100967b4
mov al, byte [ecx]
test al, al
je 0x100967b4
nop
movzx eax, al
inc ecx
add dl, byte [eax + 0x10137280]
mov al, byte [ecx]
test al, al
jne 0x100967a0
mov byte [esp + 0x36], dl
cmp dword [esp + 0x28], 0
jne 0x100967d1
mov edx, dword [esi]
lea ecx, [esp + 0x110]
call fcn.100d5e10
test eax, eax
jne 0x10096a8c
mov edx, dword [esp + 0x10]
xor edi, edi
movsx eax, word [edx + 0x22]
mov dword [esp + 0x60], eax
test eax, eax
jle 0x1009688b
mov eax, dword [edx + 4]
mov cl, byte [esp + 0x36]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov dword [esp + 0x6c], eax
nop word [eax + eax]
cmp byte [eax + 0xa], cl
jne 0x10096877
mov esi, dword [esi + 4]
mov edx, dword [eax]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x10096852
test ecx, ecx
jne 0x10096864
mov edx, dword [esp + 0x10]
movsx eax, word [edx + 0x20]
cmp edi, eax
jne 0x100968d6
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x1b], 1
mov eax, dword [esi]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], eax
mov dword [ecx + edi*4], eax
jmp 0x1009688f
movzx eax, byte [eax + 0x10137280]
movzx ecx, byte [ecx + 0x10137280]
sub ecx, eax
jne 0x10096867
inc edx
jmp 0x10096810
mov eax, dword [esp + 0x6c]
mov cl, byte [esp + 0x36]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
inc edi
add eax, 0x10
mov dword [esp + 0x6c], eax
cmp edi, edx
jl 0x10096800
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
movsx eax, word [edx + 0x22]
cmp edi, eax
jl 0x10096925
cmp dword [esp + 0x38], 0
jne 0x10096a66
mov ecx, dword [esi + 4]
call fcn.100d2750
test eax, eax
je 0x10096a66
mov eax, dword [esi]
or edi, 0xffffffff
mov dword [esp + 0x84], eax
mov edx, str.ROWID
mov eax, dword [esp + 0x30]
mov byte [esp + 0x1b], 1
mov dword [esp + 0x68], eax
jmp 0x1009693a
cmp dword [esp + 0x38], 0
mov ecx, dword [esp + 0x50]
je 0x10096902
mov eax, edi
add eax, eax
test byte [ecx + eax*8 + 0xe], 1
je 0x10096902
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov byte [esp + 0x37], 1
mov dword [ecx + edi*4], eax
jmp 0x1009688f
mov eax, edi
add eax, eax
test byte [ecx + eax*8 + 0xe], 0x60
jne 0x10096a01
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [ecx + edi*4], eax
jmp 0x1009688f
test edi, edi
jns 0x10096930
mov edx, str.ROWID
jmp 0x1009693a
mov eax, dword [edx + 4]
mov ecx, edi
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
add ecx, ecx
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push edx
mov edx, 0x17
push dword [eax]
call fcn.100c4370
add esp, 0xc
cmp eax, 1
je 0x10096a90
cmp eax, 2
jne 0x1009697b
mov eax, dword [esp + 0x1c]
mov dword [eax + edi*4], 0xffffffff
mov eax, dword [esp + 0x30]
mov ecx, dword [ebp + 8]
inc eax
mov esi, dword [esp + 0x2c]
add esi, 0x14
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
cmp eax, dword [ecx]
jl 0x10096785
mov al, byte [esp + 0x37]
mov edx, dword [esp + 0x10]
add al, byte [esp + 0x1b]
mov byte [esp + 0x58], al
test byte [edx + 0x1c], 0x60
je 0x10096b58
xor ecx, ecx
xor eax, eax
xor esi, esi
mov dword [esp + 0x60], ecx
cmp ax, word [edx + 0x22]
jge 0x10096b58
xor edi, edi
nop word [eax + eax]
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x10096b40
mov eax, dword [edx + 4]
test byte [eax + edi + 0xe], 0x60
je 0x10096b40
movzx eax, word [eax + edi + 0xc]
test ax, ax
jne 0x10096a95
xor edx, edx
jmp 0x10096ab5
mov eax, dword [edx + 4]
add edi, edi
push dword [eax + edi*8]
push str.cannot_UPDATE_generated_column___s_
push dword [esp + 0x14]
call fcn.1010dfc0
add esp, 0xc
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc8]
test ecx, ecx
je 0x10096a3d
mov eax, dword [esp + 0xc4]
mov dword [ecx + 0xf0], eax
test edx, edx
je 0x10098d8a
test esi, esi
je 0x10098d2b
cmp dword [esi + 0x220], 0
je 0x10098cf0
mov ecx, esi
call fcn.101119d0
jmp 0x10098d8a
mov eax, dword [esp + 0x30]
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xc]
lea eax, [eax + eax*4]
push dword [edi + eax*4 + 0xc]
push str.no_such_column:__s
push esi
call fcn.1010dfc0
add esp, 0xc
mov byte [esi + 0x11], 1
jmp 0x10096a1d
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
jmp 0x10096a21
cmp byte [edx + 0x2b], 0
je 0x10096a9f
xor edx, edx
jmp 0x10096ab5
mov edx, dword [edx + 0x34]
test edx, edx
je 0x10096ab5
cmp dword [edx], eax
jge 0x10096aae
xor edx, edx
jmp 0x10096ab5
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 - 0xc]
mov ecx, dword [esp + 0x1c]
xorps xmm0, xmm0
xor eax, eax
mov dword [esp + 0xe8], 0
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm0
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x60]
mov word [esp + 0xe4], ax
mov dword [esp + 0xd4], 0x100b0d20
test edx, edx
je 0x10096b14
lea ecx, [esp + 0xd0]
call fcn.100d8830
mov ax, word [esp + 0xe4]
mov ecx, dword [esp + 0x60]
cmp byte [esp + 0x1b], 0
jne 0x10096b23
mov edx, 0xfffd
and ax, dx
mov edx, dword [esp + 0x10]
test ax, ax
je 0x10096b40
mov eax, dword [esp + 0x1c]
mov ecx, 1
mov dword [esp + 0x60], ecx
mov dword [eax + esi*4], 0x1869f
movsx eax, word [edx + 0x22]
inc esi
add edi, 0x10
cmp esi, eax
jl 0x100969d0
test ecx, ecx
jne 0x100969b4
cmp byte [edx + 0x2b], 1
jne 0x10096b66
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x10096b77
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x74]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x44], ecx
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, 0
je 0x10096bb6
movzx eax, byte [esp + 0x58]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
push eax
call fcn.100b3190
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, eax
mov dword [esp + 0x30], eax
jmp 0x10096bbc
xor ecx, ecx
mov dword [esp + 0x30], ecx
cmp dword [ebp + 0x10], 5
mov esi, 1
mov eax, dword [esp + 0x8c]
cmove eax, esi
xor edi, edi
mov dword [esp + 0x8c], eax
mov esi, dword [edx + 8]
mov dword [esp + 0x6c], edi
test esi, esi
je 0x10096d85
nop word [eax + eax]
cmp byte [esp + 0x58], 0
jne 0x10096f97
cmp ecx, 1
jg 0x10096f97
cmp esi, dword [esp + 0x38]
je 0x10096f97
mov edx, dword [esi + 0x24]
test edx, edx
je 0x10096c87
xorps xmm0, xmm0
mov dword [esp + 0xe8], 0
xor eax, eax
movq qword [esp + 0xe0], xmm0
mov word [esp + 0xe4], ax
lea ecx, [esp + 0xd0]
mov eax, dword [esp + 0x1c]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xd4], 0x100b0d20
mov dword [esp + 0xe8], eax
call fcn.100d8830
cmp byte [esp + 0x1b], 0
mov cx, word [esp + 0xe4]
jne 0x10096c77
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
setne al
test eax, eax
jne 0x10096f97
xor ecx, ecx
xor eax, eax
xor edi, edi
mov dword [esp + 0x2c], ecx
cmp ax, word [esi + 0x32]
jae 0x10096d57
mov dword [esp + 0x60], ecx
nop
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
test ax, ax
js 0x10096cbe
mov edx, dword [esp + 0x1c]
cwde
mov eax, dword [edx + eax*4]
not eax
shr eax, 0x1f
jmp 0x10096d37
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
mov dword [esp + 0x108], 0
mov edx, dword [eax + ecx + 8]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov word [esp + 0x104], cx
mov dword [esp + 0xf4], 0x100b0d20
mov dword [esp + 0x108], eax
test edx, edx
je 0x10096d1c
lea ecx, [esp + 0xf0]
call fcn.100d8830
mov cx, word [esp + 0x104]
cmp byte [esp + 0x1b], 0
jne 0x10096d2b
mov eax, 0xfffd
and cx, ax
xor eax, eax
test cx, cx
mov ecx, dword [esp + 0x60]
setne al
test eax, eax
jne 0x10096f67
movzx eax, word [esi + 0x32]
inc edi
add ecx, 0x14
mov dword [esp + 0x60], ecx
cmp edi, eax
jl 0x10096ca0
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x88]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x90]
mov dword [eax + edi*4], ecx
inc edi
mov esi, dword [esi + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x6c], edi
test esi, esi
jne 0x10096bf0
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x90]
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + edi*4], eax
cmp dword [esp + 0x8c], 0
je 0x10096dbd
mov eax, dword [esp + 0xa4]
inc eax
push eax
push 1
push dword [esp + 0x90]
call fcn.10002790
add esp, 0xc
cmp byte [esi + 0x12], 0
jne 0x10096dce
mov eax, dword [esp + 8]
or dword [eax + 0xa0], 0x10
cmp dword [esp + 0x5c], 0
jne 0x10096de4
cmp dword [esp + 0x30], 0
mov dword [esp + 0x60], 0
je 0x10096dec
mov dword [esp + 0x60], 1
mov eax, dword [esi + 0x74]
test eax, eax
mov ecx, dword [esp + 0x3c]
cmovne esi, eax
mov eax, 1
shl eax, cl
mov edx, dword [esi + 0x54]
test edx, eax
jne 0x10096e1c
bts edx, ecx
mov dword [esi + 0x54], edx
cmp ecx, 1
jne 0x10096e1c
mov ecx, esi
call fcn.100bc470
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x50]
mov edx, dword [esp + 0x10]
bts eax, ecx
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x60]
or byte [esi + 0x14], al
cmp byte [edx + 0x2b], 1
mov esi, dword [esp + 0xc]
je 0x10096eb3
mov eax, dword [esp + 0x90]
mov eax, dword [eax + edi*4]
inc dword [esi + 0x2c]
cmp byte [esp + 0x37], 0
mov ecx, dword [esi + 0x2c]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], ecx
jne 0x10096e74
test edi, edi
jne 0x10096e74
mov eax, dword [esp + 0x30]
test eax, eax
je 0x10096e88
lea eax, [ecx + 1]
mov dword [esp + 0x78], eax
movsx eax, word [edx + 0x22]
add eax, ecx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x30]
cmp byte [esp + 0x58], 0
jne 0x10096e97
test edi, edi
jne 0x10096e97
test eax, eax
je 0x10096ea1
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0xa0], eax
movsx eax, word [edx + 0x22]
add dword [esi + 0x2c], eax
mov al, byte [esp + 0x1a]
cmp al, 2
jne 0x10096edb
mov eax, dword [esi + 0xf0]
mov dword [esp + 0xc4], eax
mov eax, dword [edx]
mov dword [esi + 0xf0], eax
mov al, byte [esp + 0x1a]
mov dword [esp + 0xc8], esi
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x70]
jne 0x10096f37
cmp al, 2
jne 0x10096f1d
push dword [esp + 0x14]
mov ecx, esi
push dword [esp + 0x9c]
push dword [esp + 0x9c]
push edi
call fcn.100ba7e0
add esp, 0x10
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov edx, edi
lea ecx, [esp + 0x110]
call fcn.100d5e10
test eax, eax
jne 0x10098ce0
mov edx, dword [esp + 0x10]
cmp byte [edx + 0x2b], 1
jne 0x10096fb7
push dword [ebp + 0x10]
mov ecx, esi
push edi
push dword [esp + 0x24]
mov edi, dword [ebp + 8]
push dword [esp + 0x90]
push edi
push edx
mov edx, dword [esp + 0x8c]
call fcn.10095960
add esp, 0x18
jmp 0x10096a1d
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x6c]
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 0x10096faa
cmp byte [esi + 0x36], 5
jne 0x10096faa
mov dword [esp + 0x8c], 1
jmp 0x10096faa
mov edx, dword [esp + 0xc]
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 0x10096d67
jmp 0x10096d5b
mov eax, dword [esp + 0x48]
dec dword [esi + 0x38]
mov edi, dword [esi + 0x38]
mov dword [esp + 0x2c], edi
mov ecx, dword [eax + 0x24]
xor eax, eax
and ecx, 1
mov dword [esp + 0x50], edi
or eax, ecx
mov ecx, dword [esp + 0xc]
je 0x1009707f
cmp dword [ecx + 0x78], 0
jne 0x1009707f
cmp byte [ecx + 0x12], 0
jne 0x1009707f
cmp byte [ecx + 0x91], 0
jne 0x1009707f
cmp dword [ebp + 0x1c], 0
mov esi, dword [esp + 8]
jne 0x10097083
inc dword [ecx + 0x2c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0xb8], eax
cmp dword [esi + 0x78], ecx
jg 0x1009703f
push 0
push eax
push 0
mov edx, 0x46
mov ecx, esi
call fcn.100ec0c0
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0xc]
jmp 0x10097083
mov edi, dword [esp + 0xb8]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0xc]
jmp 0x10097083
mov esi, dword [esp + 8]
cmp dword [esp + 0x28], 0
jne 0x1009716f
test byte [edx + 0x1c], 0x80
jne 0x1009716f
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x100970be
push dword [esp + 0x20]
mov edx, 0x49
mov ecx, esi
push dword [esp + 0xa0]
push 0
call fcn.100ec0c0
add esp, 0xc
jmp 0x100970f4
mov edx, dword [esp + 0x9c]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x24], eax
inc eax
mov dword [edx + 0x28], eax
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x7c], ecx
cmp dword [esi + 0x78], ecx
jg 0x10097134
push dword [esp + 0x9c]
mov edx, 0x73
mov ecx, esi
push 0
push dword [esp + 0x2c]
call fcn.100ec0c0
add esp, 0xc
mov dword [esp + 0x7c], eax
jmp 0x10097377
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x9c]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1009737b
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1009717d
movzx eax, word [eax + 0x32]
jmp 0x1009717f
xor eax, eax
mov esi, dword [ecx + 0x2c]
movsx edi, ax
inc esi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x4c], esi
add eax, edi
mov dword [esp + 0x60], edi
add dword [ecx + 0x2c], eax
cmp dword [ebp + 0x1c], 0
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x40], eax
jne 0x10097334
cmp byte [esp + 0x1a], 2
jne 0x100971bd
movsx eax, word [edx + 0x22]
jmp 0x100971bf
xor eax, eax
lea esi, [edi + eax]
mov eax, dword [ecx + 0x28]
add esi, dword [esp + 0x28]
mov dword [esp + 0x24], eax
inc eax
cmp dword [esp + 0x38], 0
mov dword [ecx + 0x28], eax
je 0x1009723c
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x4c]
dec edx
add edx, edi
mov ecx, dword [eax + 0x74]
cmp dword [eax + 0x78], ecx
jg 0x10097203
push edx
push dword [esp + 0x50]
mov edx, 0x49
mov ecx, eax
push 0
call fcn.100ec0c0
add esp, 0xc
jmp 0x1009723c
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x74], eax
mov eax, edi
mov edi, dword [esp + 0x4c]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x49
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 + 0x74]
mov dword [esp + 0x7c], edx
cmp dword [ecx + 0x78], edx
jg 0x10097266
push 0
push esi
push dword [esp + 0x2c]
mov edx, 0x73
call fcn.100ec0c0
add esp, 0xc
mov dword [esp + 0x7c], eax
jmp 0x10097299
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4], 0x73
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 + 0x38]
test eax, eax
je 0x100972e8
mov ecx, dword [esp + 0xc]
mov edx, eax
call fcn.100bba50
mov edx, eax
test edx, edx
je 0x100972e4
mov word [edx + 8], si
mov esi, dword [esp + 8]
mov ecx, dword [esi]
cmp byte [ecx + 0x53], 0
je 0x100972d2
push edx
mov edx, 0xfffffff7
call fcn.100eb160
add esp, 4
jmp 0x100972e4
mov eax, dword [esi + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4 - 0x13], 0xf7
mov dword [eax + ecx*4 - 4], edx
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0xc]
je 0x10097330
push dword [esp + 0x98]
mov edx, dword [esp + 0x78]
push dword [esp + 0x98]
push dword [esp + 0x78]
push edx
push dword [ebp + 8]
mov edx, dword [esp + 0x38]
push eax
call fcn.10098df0
mov eax, dword [esp + 0x2c]
add esp, 0x18
cmp byte [esp + 0x1a], 2
mov ecx, dword [esp + 0xc]
cmove eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x28], 0
je 0x10097373
mov eax, dword [ecx + 0x74]
test eax, eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0xc4]
cmovne ecx, eax
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x60], esi
xor esi, esi
mov byte [ecx + 0x14], 1
mov dword [esp + 0x54], 0
jmp 0x1009780b
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
cmp dword [ebp + 0x1c], 0
je 0x10097410
push 0x10
push edi
push dword [esp + 0x78]
mov esi, 1
mov dword [esp + 0xcc], 0
push edx
mov dword [esp + 0x64], esi
call fcn.100cd820
mov edi, dword [esp + 0xd8]
add esp, 0x10
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xbc], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x1c], 0x80
jne 0x100975f9
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x100974f2
mov ecx, dword [esp + 8]
mov edx, 0x85
push 0
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10097529
cmp byte [edx + 0x12], 0
mov eax, 4
jne 0x10097440
cmp dword [esp + 0x5c], 0
jne 0x10097440
cmp dword [esp + 0x30], 0
jne 0x10097440
cmp byte [esp + 0x58], 0
jne 0x10097440
cmp dword [esp + 0x8c], 0
mov ecx, 0xc
cmove eax, ecx
push dword [esp + 0xb0]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x10]
push eax
push 0
push 0
push dword [esp + 0x80]
call fcn.10084c50
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xc0], ecx
test ecx, ecx
je 0x10096a1a
mov eax, dword [ecx + 0x14]
movzx esi, byte [ecx + 0x2e]
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x30]
and eax, 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0xbc], eax
cmp esi, 1
je 0x100973ca
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x74]
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x14], 1
cmp esi, 2
jne 0x100973ca
test edi, edi
js 0x100973ca
mov edx, dword [esp + 0x14]
cmp edi, edx
je 0x100973ce
mov ecx, dword [esp + 0x88]
mov eax, edi
sub eax, dword [esp + 0xa8]
cmp byte [eax + ecx], 0
mov eax, 0
cmovne esi, eax
mov dword [esp + 0x54], esi
jmp 0x100973ce
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
jne 0x100975b3
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x90]
inc dword [eax + 0x2c]
mov eax, dword [eax + 0x2c]
mov dword [edi + ecx*4], eax
mov ecx, dword [edx + 0x74]
mov edi, dword [esp + 0x3c]
cmp dword [edx + 0x78], ecx
jg 0x10097578
push dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
lea edx, [esi + 0x7e]
push dword [esp + 0xa0]
push dword [esp + 0x2c]
call fcn.100ec0c0
add esp, 0xc
jmp 0x1009780b
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x1009780b
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x1009780b
mov ecx, dword [edx]
cmp byte [ecx + 0x53], 0
jne 0x1009780b
lea edx, [eax + eax*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.100eb160
add esp, 4
mov word [esi], 0xb3
mov dword [esi + 0x10], 0
jmp 0x10097807
mov eax, dword [esp + 0x80]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x1009763f
nop dword [eax]
mov eax, dword [esp + 0x4c]
add eax, esi
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
movsx eax, word [eax + esi*2]
push eax
push edx
mov edx, ecx
mov ecx, dword [esp + 0x14]
call fcn.100cfac0
mov ecx, dword [esp + 0x1c]
inc esi
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp esi, edi
jl 0x10097610
mov esi, dword [esp + 0x54]
test esi, esi
je 0x1009769c
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x10097684
mov eax, dword [esp + 8]
mov ecx, dword [eax]
cmp byte [ecx + 0x53], 0
jne 0x10097684
mov eax, dword [eax + 0x70]
lea edx, [edx + edx*4]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.100eb160
mov word [esi], 0xb3
add esp, 4
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
jmp 0x1009780b
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
call fcn.100b2660
mov ecx, dword [esp + 8]
mov esi, eax
mov dword [esp + 0x7c], esi
mov edx, dword [ecx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x100976d7
push dword [esp + 0x40]
mov edx, 0x5f
push edi
push dword [esp + 0x54]
mov edi, ecx
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x10097712
mov esi, dword [esp + 0x4c]
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
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 + 0x7c]
mov dword [eax + ecx*4], 0x5f
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x53], 0
je 0x10097736
mov edx, dword [esp + 0x80]
movsx eax, dx
cmp eax, 0xfffffff4
je 0x10097788
push esi
mov edx, eax
call fcn.100eb160
add esp, 4
jmp 0x10097788
test edx, edx
jns 0x1009773e
mov edx, dword [edi + 0x74]
dec edx
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x80]
movsx eax, cx
test eax, eax
jns 0x1009777c
cmp byte [edx + 1], 0
jne 0x1009777c
cmp eax, 0xfffffffd
jne 0x10097768
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
jmp 0x10097788
test esi, esi
je 0x10097788
mov dword [edx + 0x10], esi
mov byte [edx + 1], al
cmp eax, 0xfffffff4
jne 0x10097788
inc dword [esi + 0xc]
jmp 0x10097788
push eax
push esi
mov ecx, edi
call fcn.100eaf10
add esp, 8
mov edx, dword [edi + 0x74]
cmp dword [edi + 0x78], edx
jg 0x100977af
push dword [esp + 0x4c]
mov edx, 0x88
mov ecx, edi
push dword [esp + 0x44]
push dword [esp + 0x2c]
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x100977e2
mov esi, dword [esp + 0x24]
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x40]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x88
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x53], 0
jne 0x10097803
mov eax, dword [edi + 0x70]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x80]
movsx edi, dx
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x54]
cmp dword [ebp + 0x1c], 0
jne 0x10097a3b
cmp dword [esp + 0x28], 0
jne 0x1009782d
cmp esi, 2
je 0x1009782d
mov ecx, dword [esp + 0xc0]
call fcn.10084140
cmp byte [esp + 0x1a], 2
je 0x10097943
mov ecx, dword [esp + 0x54]
xor esi, esi
test ecx, ecx
je 0x1009786d
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x88]
test eax, eax
js 0x1009785c
sub eax, dword [esp + 0xa8]
mov byte [eax + edx], 0
test edi, edi
js 0x1009786d
mov eax, edi
sub eax, dword [esp + 0xa8]
mov byte [eax + edx], 0
cmp ecx, 2
jne 0x100978e0
mov ecx, dword [esp + 0xa4]
xor eax, eax
test edi, edi
setns al
sub ecx, eax
test ecx, ecx
jle 0x100978e0
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x74]
cmp dword [ecx + 0x78], esi
jg 0x100978a9
push 0
push 0
push 0
mov edx, 0x11
call fcn.100ec0c0
add esp, 0xc
mov esi, eax
jmp 0x100978e0
lea eax, [esi + 1]
mov dword [ecx + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
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 + 0x10]
mov ecx, dword [esp + 0xc]
push 0
push 0
push dword [esp + 0x90]
push dword [esp + 0xb4]
push 0
push 0x65
call fcn.100ae170
add esp, 0x18
test esi, esi
je 0x10097943
mov ecx, dword [esp + 8]
mov edx, dword [ecx + 0x74]
lea eax, [edx - 1]
cmp esi, eax
jne 0x1009791f
mov edx, ecx
mov dword [edx + 0x74], eax
jmp 0x10097947
test esi, esi
cmovs esi, eax
mov eax, dword [ecx]
cmp byte [eax + 0x53], 0
je 0x10097933
mov eax, 0x101442cc
jmp 0x10097940
mov eax, dword [esp + 8]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x70]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x54]
test esi, esi
je 0x10097b19
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x60], eax
je 0x100979f3
cmp edi, eax
je 0x100979f3
mov ecx, dword [esp + 8]
mov edx, dword [edx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x10097990
push dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov edx, 0x1e
push edi
push eax
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x100979cb
mov edi, dword [esp + 0x14]
lea eax, [edx + 1]
mov esi, dword [esp + 0x40]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x100979f7
mov eax, dword [esp + 8]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0xac]
mov eax, dword [eax + 0x70]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x100979f7
mov edi, dword [esp + 0x2c]
cmp esi, 1
je 0x10097a0a
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 8]
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x20]
cmovne edx, dword [esp + 0x40]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x10097ae9
push 0
push edi
push edx
mov edx, 0x32
mov ecx, esi
call fcn.100ec0c0
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
cmp byte [esp + 0x1b], 0
je 0x10098011
test eax, eax
jne 0x10097f82
cmp dword [edi + 8], eax
je 0x10097aba
mov edx, dword [esp + 0x44]
mov ecx, edi
mov esi, dword [esp + 0x84]
push edx
mov edx, esi
call fcn.100ce700
mov edi, eax
add esp, 4
cmp edi, dword [esp + 0x44]
je 0x10097aba
test esi, esi
je 0x10097a91
test dword [esi + 4], 0x200000
mov edx, 0x4e
jne 0x10097a96
mov edx, 0x4f
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 8]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x10097f51
push 0
push dword [esp + 0x48]
mov ecx, esi
push edi
call fcn.100ec0c0
add esp, 0xc
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x10097fe2
mov ecx, dword [esp + 8]
mov edx, 0xf
push 0
push 0
push esi
call fcn.100ec0c0
add esp, 0xc
jmp 0x10098011
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
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
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10097a3b
cmp dword [esp + 0x38], 0
jne 0x10097c67
cmp dword [esp + 0x28], 0
jne 0x10097c67
mov ecx, dword [edx + 0x74]
mov edi, dword [esp + 0x2c]
cmp dword [edx + 0x78], ecx
jg 0x10097b59
mov ecx, dword [esp + 8]
mov edx, 0x26
push 0
push edi
push dword [esp + 0x2c]
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10097b88
mov esi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0xc]
dec dword [edi + 0x38]
mov ecx, dword [edx + 0x74]
mov esi, dword [edi + 0x38]
mov dword [esp + 0x50], esi
mov dword [esp + 0xb4], ecx
cmp dword [edx + 0x78], ecx
jg 0x10097bcd
mov ecx, dword [esp + 8]
mov edx, 0x85
push 0
push dword [esp + 0x24]
push dword [esp + 0x2c]
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
mov dword [esp + 0xb4], eax
jmp 0x10097c04
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x10097c33
push dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edx, 0x21
push esi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x28]
jmp 0x10097a47
mov edi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10097a3f
mov eax, dword [esp + 0xc]
dec dword [eax + 0x38]
mov ecx, dword [edx + 0x74]
mov esi, dword [eax + 0x38]
mov dword [esp + 0x50], esi
cmp dword [edx + 0x78], ecx
jg 0x10097ca0
mov edi, dword [esp + 0x2c]
mov edx, 0x26
mov ecx, dword [esp + 8]
push 0
push edi
mov edi, dword [esp + 0x2c]
push edi
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10097cd7
mov edi, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x24]
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [edx + 0x74]
mov dword [esp + 0xb4], ecx
test eax, eax
je 0x10097e74
cmp byte [esp + 0x1a], 2
je 0x10097a43
cmp dword [esp + 0x38], 0
je 0x10097dfe
mov eax, dword [esp + 0x80]
xor esi, esi
movsx edi, ax
test edi, edi
jle 0x10097d75
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x10097d3e
mov eax, dword [esp + 0x4c]
mov edx, 0x5c
mov ecx, dword [esp + 8]
add eax, esi
push eax
push esi
push dword [esp + 0x2c]
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10097d70
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
add eax, esi
mov dword [ecx + 0xc], eax
inc esi
cmp esi, edi
jl 0x10097d13
mov ecx, dword [esp + 8]
mov edx, dword [edx + 0x74]
cmp dword [ecx + 0x78], edx
jg 0x10097d9f
push dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
mov edx, 0x1e
push esi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x10097dd6
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x1e
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp byte [eax + 0x53], 0
jne 0x10097a3b
lea ecx, [edx + edx*4]
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x70]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edi
jmp 0x10097a3f
cmp dword [edx + 0x78], ecx
jg 0x10097e25
mov ecx, dword [esp + 8]
mov edx, 0x85
push 0
push dword [esp + 0x24]
push edi
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x20]
jmp 0x10097e54
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x10097c33
mov ecx, dword [esp + 8]
mov edx, 0x21
push edi
push esi
push dword [esp + 0x1c]
jmp 0x10097a33
cmp dword [edx + 0x78], ecx
jg 0x10097e97
mov ecx, dword [esp + 8]
mov edx, 0x84
push 0
push dword [esp + 0x44]
push edi
call fcn.100ec0c0
mov edx, dword [esp + 0x14]
add esp, 0xc
jmp 0x10097ec6
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x84
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 8]
mov edx, dword [edx + 0x74]
cmp dword [edi + 0x78], edx
jg 0x10097eee
push dword [esp + 0x40]
mov edx, 0x1e
mov ecx, edi
push esi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x10097f21
lea eax, [edx + 1]
mov dword [edi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x70]
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], 0x1e
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edi, dword [esp + 0xc]
cmp byte [eax + 0x53], 0
jne 0x10097c26
lea ecx, [edx + edx*4]
mov edx, dword [esp + 8]
mov eax, dword [edx + 0x70]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
jmp 0x10097a47
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x44]
mov byte [eax + ecx*4], dl
mov dword [eax + ecx*4 + 4], edi
lea eax, [eax + ecx*4]
xor ecx, ecx
mov dword [eax + 8], esi
mov word [eax + 2], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov byte [eax + 1], cl
jmp 0x10097abe
mov ecx, dword [edx + 0x74]
mov esi, dword [esp + 0x44]
cmp dword [edx + 0x78], ecx
jg 0x10097fae
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 8]
push esi
push edx
push dword [esp + 0x2c]
mov edx, 0x5c
call fcn.100ec0c0
add esp, 0xc
jmp 0x10097abe
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x10097abe
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0xf
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
cmp byte [esp + 0x37], 0
jne 0x100980e1
cmp dword [esp + 0x30], 0
jne 0x100980ec
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x100981d1
xor esi, esi
push dword [ebp + 0x10]
mov edx, dword [esp + 0x60]
push dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
push 3
push 0
push dword [ebp + 8]
call fcn.10099530
mov ecx, dword [esp + 0x24]
or esi, eax
mov dword [esp + 0x7c], esi
xor eax, eax
add esp, 0x14
xor esi, esi
cmp ax, word [ecx + 0x22]
jge 0x10098165
xor edi, edi
nop dword [eax]
mov eax, dword [ecx + 4]
mov edx, esi
movzx eax, word [edi + eax + 0xe]
mov dword [esp + 0x84], eax
call fcn.100c24e0
movsx edx, ax
add edx, dword [esp + 0x78]
cmp dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x60], edx
je 0x1009813b
cmp esi, 0x20
jge 0x100980b4
mov eax, 1
mov ecx, esi
shl eax, cl
test dword [esp + 0x68], eax
jne 0x1009813b
test byte [esp + 0x84], 1
jne 0x1009813b
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x74]
cmp dword [eax + 0x78], ecx
jg 0x10098100
push 0
push edx
push 0
mov edx, 0x49
mov ecx, eax
call fcn.100ec0c0
jmp 0x1009814e
cmp dword [esp + 0x30], 0
je 0x10098033
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
call fcn.100b32b0
mov esi, eax
jmp 0x10098035
mov edx, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edx + 0x74], eax
mov eax, edx
mov edx, dword [esp + 0x60]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4], 0x49
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 0x10098151
mov ecx, dword [esp + 8]
push edx
mov edx, dword [esp + 0x14]
push esi
push dword [esp + 0x1c]
call fcn.100cfac0
add esp, 0xc
mov ecx, dword [esp + 0x10]
inc esi
add edi, 0x10
movsx eax, word [ecx + 0x22]
cmp esi, eax
jl 0x10098070
cmp byte [esp + 0x1b], 0
jne 0x100981cd
cmp dword [esp + 0x38], 0
jne 0x100981cd
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x1009819a
push 0
push dword [esp + 0x48]
mov edx, 0x4e
mov ecx, esi
push dword [esp + 0x28]
call fcn.100ec0c0
add esp, 0xc
jmp 0x100981cd
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x4e
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 + 0x5c]
push dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
push dword [esp + 0x14]
push 1
push 1
push dword [ebp + 8]
call fcn.10099530
mov edx, dword [esp + 0xb4]
xor edi, edi
mov dword [esp + 0x98], eax
add esp, 0x14
mov eax, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x78], edi
movzx ecx, word [eax + 0x22]
cmp di, cx
jge 0x10098327
xor edx, edx
mov dword [esp + 0x68], edx
nop dword [eax]
movsx eax, word [eax + 0x20]
cmp edi, eax
jne 0x10098253
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x100984be
mov ecx, dword [esp + 8]
mov edx, 0x49
push 0
push esi
push 0
call fcn.100ec0c0
add esp, 0xc
jmp 0x100982fa
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
movzx eax, word [eax + edx + 0xe]
test al, 0x60
je 0x10098272
test al, 0x20
lea eax, [esi - 1]
cmove eax, esi
mov esi, eax
jmp 0x100982fa
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
test eax, eax
js 0x10098473
cmp dword [esp + 0x28], 0
je 0x100983ce
cmp byte [esp + 0x1a], 2
je 0x1009829a
mov ecx, dword [esp + 0x80]
movzx ecx, cx
movsx edx, cx
add edx, eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x74]
cmp dword [eax + 0x78], ecx
jg 0x100982c5
push esi
push edx
push dword [esp + 0x2c]
mov edx, 0x5c
mov ecx, eax
call fcn.100ec0c0
add esp, 0xc
jmp 0x100982fa
mov edi, dword [esp + 8]
lea eax, [ecx + 1]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x74], eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
inc edi
add dword [esp + 0x68], 0x10
inc esi
mov edx, dword [esp + 0x68]
mov dword [esp + 0x3c], edi
movzx ecx, word [eax + 0x22]
movsx eax, cx
cmp edi, eax
mov eax, dword [esp + 0x10]
jl 0x10098220
mov edx, dword [esp + 0xa0]
test byte [eax + 0x1c], 0x60
je 0x1009833e
mov ecx, dword [esp + 0xc]
push eax
call fcn.100b21c0
mov eax, dword [esp + 0x14]
add esp, 4
test byte [esp + 0xcc], 1
mov esi, dword [esp + 8]
je 0x100986f2
push dword [esp + 0xa0]
mov edx, eax
mov ecx, esi
call fcn.100b24c0
mov edi, dword [esp + 0x54]
add esp, 4
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0xc]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x1c]
push 1
push dword [ebp + 8]
push 0x80
call fcn.10099600
add esp, 0x1c
cmp byte [esp + 0x1a], 2
je 0x10098660
cmp dword [esp + 0x38], 0
je 0x1009856b
mov edx, dword [esi + 0x74]
cmp dword [esi + 0x78], edx
jg 0x10098518
push dword [esp + 0x40]
mov edx, 0x1e
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov edx, eax
jmp 0x1009854b
mov ecx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov edi, dword [ecx + eax*4 + 8]
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 0
je 0x100982f6
push esi
mov edx, edi
mov ecx, eax
call fcn.100ce700
add esp, 4
mov dword [esp + 0x78], eax
cmp eax, esi
je 0x100982f6
test edi, edi
je 0x10098411
test dword [edi + 4], 0x200000
mov edx, 0x4e
jne 0x10098416
mov edx, 0x4f
mov edi, dword [esp + 0xc]
mov edi, dword [edi + 8]
mov ecx, dword [edi + 0x74]
cmp dword [edi + 0x78], ecx
jg 0x10098438
push 0
push esi
push eax
mov ecx, edi
call fcn.100ec0c0
add esp, 0xc
jmp 0x100982f6
lea eax, [ecx + 1]
mov dword [edi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x70]
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 + 0x78]
mov dword [eax + 4], ecx
mov byte [eax + 1], 0
jmp 0x100982f6
test dword [esp + 0xcc], 1
je 0x100984f2
cmp edi, 0x1f
jg 0x100984f2
mov eax, 1
mov ecx, edi
shl eax, cl
test dword [esp + 0x84], eax
jne 0x100984f2
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x100984be
mov ecx, dword [esp + 8]
mov edx, 0x49
push 0
push esi
push 0
call fcn.100ec0c0
add esp, 0xc
jmp 0x100982fa
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov dword [eax + ecx*4], 0x49
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 0x100982fa
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
push esi
push edi
push dword [esp + 0x1c]
call fcn.100cfac0
add esp, 0xc
mov dword [esp + 0xbc], 0
jmp 0x100982fa
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
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], 0x1e
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x100985bc
mov eax, dword [esi + 0x70]
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 0x100985bc
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x1009858d
push dword [esp + 0x20]
mov edx, 0x21
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
jmp 0x100985bc
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0xa0]
xor esi, esi
mov edi, eax
cmp cx, word [edx + 0x22]
jge 0x1009863f
mov dword [esp + 0x78], ecx
nop word [eax + eax]
mov eax, dword [edx + 4]
movzx eax, word [ecx + eax + 0xe]
test al, 0x60
je 0x100985f8
test al, 0x20
lea eax, [edi - 1]
cmove eax, edi
mov edi, eax
jmp 0x10098627
mov eax, dword [esp + 0x1c]
cmp dword [eax + esi*4], 0
jge 0x10098627
movsx eax, word [edx + 0x20]
cmp esi, eax
je 0x10098627
mov ecx, dword [esp + 8]
push edi
push esi
push dword [esp + 0x1c]
call fcn.100cfac0
mov ecx, dword [esp + 0x84]
add esp, 0xc
mov edx, dword [esp + 0x10]
movsx eax, word [edx + 0x22]
inc esi
add ecx, 0x10
inc edi
mov dword [esp + 0x78], ecx
cmp esi, eax
jl 0x100985e0
mov eax, dword [esp + 0xa0]
test byte [edx + 0x1c], 0x60
je 0x100986fb
mov ecx, dword [esp + 0xc]
push edx
mov edx, eax
call fcn.100b21c0
mov edi, dword [esp + 0x54]
add esp, 4
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
cmp byte [esp + 0x1a], 2
je 0x100989da
push 0
push dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x94]
push eax
push edi
push dword [ebp + 0x10]
push dword [esp + 0x6c]
push dword [esp + 0x38]
push dword [esp + 0x60]
push dword [esp + 0xd0]
push dword [esp + 0x38]
push dword [esp + 0xb8]
call fcn.100ae740
add esp, 0x2c
cmp dword [esp + 0x8c], 0
jne 0x100986c1
mov al, byte [esp + 0x58]
test al, al
je 0x1009878f
cmp dword [esp + 0x38], 0
je 0x10098767
mov ecx, dword [esp + 8]
mov esi, dword [esi + 0x74]
cmp dword [ecx + 0x78], esi
jg 0x10098708
push dword [esp + 0x40]
mov edx, 0x1e
push edi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov esi, eax
jmp 0x1009873b
mov edi, dword [esp + 0x50]
jmp 0x10098660
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 8]
jmp 0x10098664
mov edx, dword [esp + 0x14]
lea eax, [esi + 1]
mov dword [ecx + 0x74], eax
lea ecx, [esi + esi*4]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x1e
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 + 0x53], 0
jne 0x1009878b
mov edx, dword [esp + 0xac]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 8]
mov eax, dword [esi + 0x70]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
mov al, byte [esp + 0x58]
jmp 0x10098793
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x1009880c
push dword [esp + 0x20]
mov edx, 0x21
mov ecx, esi
push edi
push dword [esp + 0x1c]
call fcn.100ec0c0
add esp, 0xc
mov al, byte [esp + 0x58]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x30], 0
je 0x100987b9
mov ecx, dword [esp + 0xc]
movzx eax, al
push eax
push dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x20]
call fcn.100b33a0
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0xffffffffffffffff
push dword [esp + 0x94]
push dword [esp + 0xb8]
push dword [esp + 0x20]
call fcn.100b94c0
add esp, 0x10
cmp dword [esp + 0xbc], 0
je 0x1009887b
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x10098848
push 0
push 0
push dword [esp + 0x1c]
mov edx, 0x8d
mov ecx, esi
call fcn.100ec0c0
add esp, 0xc
jmp 0x1009887b
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 8]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4], 0x21
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov al, byte [esp + 0x58]
jmp 0x10098797
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x8d
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x30], 1
jg 0x1009888e
cmp byte [esp + 0x58], 0
mov edx, 0x44
je 0x10098893
mov edx, 4
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x100988b5
push dword [esp + 0x44]
mov ecx, esi
push edx
push dword [esp + 0x1c]
mov edx, 0x80
call fcn.100ec0c0
add esp, 0xc
jmp 0x100988e4
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x80
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 8]
cmp esi, 2
jne 0x10098909
mov eax, dword [edx + 0x74]
test eax, eax
jle 0x10098909
lea ecx, [eax + eax*4]
mov edi, esi
mov eax, dword [edx + 0x70]
mov word [eax + ecx*4 - 0x12], di
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 0x12], 0
jne 0x10098934
mov ecx, dword [edx]
cmp byte [ecx + 0x53], 0
je 0x100989bb
push dword [esp + 0x10]
mov edx, 0xfffffffa
call fcn.100eb160
mov ecx, dword [esp + 0x10]
add esp, 4
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x30], 0
je 0x10098957
movzx eax, byte [esp + 0x58]
push eax
push dword [esp + 0x20]
push dword [esp + 0x4c]
push 0
call fcn.100b33a0
add esp, 0x10
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0xc]
cmp esi, 2
push 0
sete al
push 0
lea eax, [eax*2 + 4]
push eax
push dword [esp + 0x9c]
push dword [esp + 0x54]
push dword [esp + 0xc4]
push dword [esp + 0x2c]
call fcn.100ae3b0
add esp, 0x1c
cmp dword [esp + 0x30], 0
je 0x100989de
movzx eax, byte [esp + 0x58]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 0x20]
push dword [esp + 0x28]
push dword [ebp + 8]
call fcn.100b2aa0
add esp, 0x10
jmp 0x100989de
mov eax, dword [edx + 0x74]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0x10]
mov byte [eax + ecx*4 - 0x13], 0xfa
mov dword [eax + ecx*4 - 4], edx
mov ecx, dword [esp + 0xc]
jmp 0x10098938
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0xb8]
test eax, eax
je 0x10098a43
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x74]
cmp dword [edx + 0x78], ecx
jg 0x10098a0d
mov ecx, dword [esp + 8]
mov edx, 0x54
push 0
push 1
push eax
call fcn.100ec0c0
add esp, 0xc
jmp 0x10098a43
lea eax, [ecx + 1]
mov dword [edx + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x70]
mov edx, dword [esp + 0xb8]
mov dword [eax + ecx*4], 0x54
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 + 0x5c]
mov ecx, dword [esp + 0xc]
push edi
push dword [ebp + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x1c]
push 2
push dword [ebp + 8]
push 0x80
call fcn.10099600
add esp, 0x1c
cmp esi, 1
je 0x10098b38
cmp esi, 2
not edi
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x3c]
jne 0x10098abe
add eax, dword [ecx + 0x38]
jns 0x10098aa4
push edi
mov edx, esi
call fcn.100eb740
mov ecx, dword [esp + 0xc4]
add esp, 4
call fcn.10084140
jmp 0x10098b3c
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edi*4], eax
mov ecx, dword [esp + 0xc0]
call fcn.10084140
jmp 0x10098b3c
add eax, dword [ecx + 0x38]
jns 0x10098ad0
push edi
mov edx, esi
call fcn.100eb740
add esp, 4
jmp 0x10098ad9
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edi*4], eax
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x10098b00
mov edx, dword [esp + 0xb4]
mov ecx, esi
push 0
push edx
push dword [esp + 0x2c]
mov edx, 5
call fcn.100ec0c0
add esp, 0xc
jmp 0x10098b3c
mov edx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb4]
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 0x10098b3c
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x10098b5a
push edx
mov edx, esi
call fcn.100eb740
add esp, 4
jmp 0x10098b63
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x12], 0
jne 0x10098b86
cmp dword [eax + 0x78], 0
jne 0x10098b86
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
jne 0x10098b86
cmp dword [eax + 0x70], ecx
je 0x10098b86
mov ecx, eax
call fcn.100b1e50
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x10096a1a
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x10098bb3
push 0
push 1
push edx
mov edx, 0x51
mov ecx, esi
call fcn.100ec0c0
add esp, 0xc
jmp 0x10098be2
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 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.100e9aa0
mov eax, dword [esi]
cmp byte [eax + 0x53], 0
jne 0x10096a1a
mov esi, dword [esi + 0x7c]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10098c09
mov edi, dword [eax + 0x78]
jmp 0x10098c0e
mov edi, 0x3b9aca00
mov eax, 0x2400
test word [esi + 8], ax
jne 0x10098c1f
cmp dword [esi + 0x18], 0
je 0x10098c26
mov ecx, esi
call fcn.100ee1b0
mov dword [esi + 0x10], str.rows_updated
mov eax, 0xa02
mov dword [esi + 0x24], 0
mov dword [esi + 0xc], 0xc
mov word [esi + 8], ax
mov byte [esi + 0xa], 1
cmp edi, 0xc
jge 0x10096a1a
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10096a1a
mov eax, dword [eax + 0x10c]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
test eax, eax
je 0x10096a25
inc dword [eax + 0x24]
mov dword [eax + 0xc], 0x12
jmp 0x10096a25
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
jmp 0x10096a25
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
xor edx, edx
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
jmp 0x10096a25
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 8]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
jmp 0x10096a25
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
jmp 0x10096a25
cmp edx, dword [esi + 0x174]
jae 0x10098d2b
cmp edx, dword [esi + 0x16c]
jb 0x10098d13
mov eax, dword [esi + 0x168]
mov dword [edx], eax
mov dword [esi + 0x168], edx
jmp 0x10098d8a
cmp edx, dword [esi + 0x170]
jb 0x10098d2b
mov eax, dword [esi + 0x160]
mov dword [edx], eax
mov dword [esi + 0x160], edx
jmp 0x10098d8a
cmp dword [0x101422c8], 0
je 0x10098d80
mov eax, dword [0x101441e8]
test eax, eax
je 0x10098d4b
push eax
call dword [0x10142318]
mov edx, dword [esp + 0x20]
add esp, 4
push edx
call dword [0x101422f4]
sub dword [0x10144240], eax
add esp, 4
dec dword [0x10144264]
push dword [esp + 0x1c]
call dword [0x101422ec]
mov eax, dword [0x101441e8]
add esp, 4
test eax, eax
je 0x10098d8a
push eax
call dword [0x10142320]
jmp 0x10098d87
push edx
call dword [0x101422ec]
add esp, 4
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.100bc9e0
test edi, edi
je 0x10098da2
mov edx, edi
mov ecx, esi
call fcn.100d2ef0
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10098db3
mov edx, eax
mov ecx, esi
call fcn.100d4300
mov eax, dword [esp + 0x94]
test eax, eax
je 0x10098dc7
mov edx, eax
mov ecx, esi
call fcn.100d2ef0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x10098ddb
mov edx, eax
mov ecx, esi
call fcn.100d4300
pop edi
pop esi
mov esp, ebp
pop ebp
ret