Function at 0x1004e810
Capabilities:
Enumerate pe sections
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x334
mov eax, dword [0x10104610]
xor eax, esp
mov dword [esp + 0x330], eax
push ebx
push esi
push edi
mov edi, ecx
mov esi, dword [edi]
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x39]
xor ebx, ebx
lea eax, [edi + 0x94]
push eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov byte [esp + 0x58], dl
mov dword [esp + 0x24], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x11c], eax
call fcn.1003ee20
add esp, 4
cmp dword [edi + 0x64], 7
je 0x1004ee0d
mov dword [edi + 0x64], ebx
mov dword [edi + 0x78], ebx
mov eax, dword [esi + 0xd8]
mov dword [esi + 0x19c], ebx
test eax, eax
jne 0x100529bd
mov ecx, dword [edi + 0x60]
mov dword [esp + 0x28], ecx
mov eax, ecx
mov esi, ebx
mov ecx, ebx
jmp 0x1004e8cc
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0x1e], 0
jne 0x1004ee0d
mov ebx, dword [edi + 0x14]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*4]
mov eax, dword [edx + 0x100]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x1004e92e
mov eax, dword [edx + 0x108]
cmp eax, dword [esp + 0x94]
jne 0x1004e927
mov ecx, edx
mov edx, dword [ecx + 0x104]
push edx
call dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x1005288a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x94], eax
inc dword [esp + 0x94]
movzx eax, byte [ebx]
mov al, byte [eax + 0x100e43e0]
mov byte [esp + 0x37], al
test al, 2
je 0x1004e96c
mov eax, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov dword [esp + 0x2c], esi
call fcn.10048f40
mov ecx, 1
mov eax, esi
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x18], 0
jmp 0x1004e9ea
test al, 4
je 0x1004e9c0
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x4c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [esp + 0x37]
mov dword [esp + 0x20], ecx
test al, 8
je 0x1004e9ae
test byte [esp + 0x37], 0x20
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x50], edx
je 0x1004e9ea
mov edx, dword [ebx + 0xc]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
mov dword [esp + 0x2c], esi
jmp 0x1004e9ea
test al, 0x10
je 0x1004e9ee
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea eax, [eax + edx*8]
jmp 0x1004e9e6
test al, 8
je 0x1004e9d6
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x50], edx
jmp 0x1004e9ea
test al, 0x10
je 0x1004e9ee
mov eax, dword [ebx + 0xc]
mov edx, dword [edi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x18]
mov al, byte [ebx]
mov byte [esp + 0x37], al
movzx eax, al
mov dword [esp + 0x30], eax
dec eax
cmp eax, 0x90
ja case.0x1004ea03.12
jmp dword [eax*4 + 0x100529f4]
mov ecx, dword [edx + 0xd8]
test ecx, ecx
jne 0x100529bd
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x28]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
dec eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x28]
inc eax
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], eax
je 0x1004e8c0
jmp 0x1004ee31
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x28]
mov esi, dword [ecx]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [esp + 0x28], esi
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1c], 1
je case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x28]
mov dword [edi + 0x64], ecx
mov dword [edi + 0x60], edx
mov eax, dword [ebx + 8]
mov dword [edi + 0x68], eax
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x1004eac2
mov eax, dword [esp + 0x18]
push ebx
push 0x100ec558
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 8
push edi
call fcn.1004ba70
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x100528ed
mov dword [edi + 0x64], esi
jmp 0x1004ee5a
mov ecx, 4
mov word [esi + 0x1c], cx
mov eax, dword [ebx + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x1004ea03.12
mov edx, 4
mov word [esi + 0x1c], dx
mov ebx, dword [ebx + 0x10]
mov eax, dword [ebx]
mov dword [esi], eax
mov ecx, dword [ebx + 4]
mov dword [esi + 4], ecx
jmp case.0x1004ea03.12
mov edx, 8
mov word [esi + 0x1c], dx
mov eax, dword [ebx + 0x10]
fld qword [eax]
fstp qword [esi + 8]
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 0x1c
mov dword [esp + 0x1c], ecx
call fcn.10036a80
cmp byte [esp + 0x54], 1
mov dword [ebx + 4], eax
je 0x1004ec8f
test ecx, ecx
jne 0x1004eb7b
test byte [esi + 0x1c], 0x20
je 0x1004eb5e
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx]
call fcn.1003aa40
mov esi, dword [esp + 0x2c]
mov dx, word [esi + 0x1c]
mov eax, 0xbf01
and dx, ax
or dx, 1
mov word [esi + 0x1c], dx
mov byte [esi + 0x1e], 5
jmp 0x1004ebfb
mov eax, dword [esi + 0x10]
test eax, eax
je 0x1004eb87
mov eax, dword [eax + 0x50]
jmp 0x1004eb8c
mov eax, 0x3b9aca00
xor edi, edi
mov dword [esp + 0x38], eax
test eax, eax
js 0x1004eba1
cmp byte [edi + ecx], 0
je 0x1004eba1
inc edi
cmp edi, eax
jle 0x1004eb96
xor ecx, ecx
mov dword [esp + 0x24], 0x202
push esi
cmp ecx, fcn.100349a0
jne 0x1004ebc5
call fcn.10048fa0
mov eax, dword [esp + 0x20]
mov dword [esi + 0x14], eax
mov dword [esi + 0x24], eax
jmp 0x1004ebd9
call fcn.10048fa0
mov edx, dword [esp + 0x20]
mov dword [esi + 0x14], edx
mov dword [esp + 0x28], 0xa02
add esp, 4
mov dword [esi + 0x20], 0
cmp edi, dword [esp + 0x38]
jg 0x1004ebfb
mov ax, word [esp + 0x24]
mov dword [esi + 0x18], edi
mov word [esi + 0x1c], ax
mov word [esi + 0x1e], 0x103
movzx ecx, byte [esp + 0x54]
mov eax, esi
call fcn.10048bb0
test eax, eax
jne 0x1004ee0d
mov eax, esi
call fcn.10048d10
test eax, eax
jne 0x1004ee0d
mov cx, word [esi + 0x1c]
mov dword [esi + 0x24], eax
mov edx, 0xfbff
and cx, dx
mov eax, 0x800
or cx, ax
mov word [esi + 0x1c], cx
cmp byte [ebx + 1], 0xff
jne 0x1004ec50
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0x18]
push ecx
push edx
call fcn.100349a0
add esp, 8
mov ecx, dword [esp + 0x18]
mov byte [ebx + 1], 0xff
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x10], eax
mov esi, dword [esi + 0x18]
mov dword [ebx + 4], esi
cmp esi, dword [ecx + 0x50]
jle case.0x1004ea03.12
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
push str.string_or_blob_too_big
add esi, 0x74
call fcn.10034db0
mov dword [esp + 0x18], 0x12
jmp 0x1004ee2e
mov edx, dword [esp + 0x18]
cmp eax, dword [edx + 0x50]
jg 0x1004ec6d
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov ecx, dword [ebx + 0x10]
mov al, byte [esp + 0x54]
mov dword [esi + 0x14], ecx
mov edx, dword [ebx + 4]
mov dword [esi + 0x18], edx
mov byte [esi + 0x1f], al
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
push 0
push 0
push ecx
push edx
push esi
call fcn.100495d0
mov al, byte [esp + 0x68]
add esp, 0x14
mov byte [esi + 0x1f], al
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x24], ebx
test ebx, ebx
jle case.0x1004ea03.12
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4 - 5]
add ecx, ecx
add eax, eax
add ecx, ecx
add ecx, ecx
add eax, eax
add eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov ebx, dword [edi + 0x38]
dec dword [esp + 0x24]
add ebx, eax
add eax, 0x28
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.10049490
test eax, eax
jne 0x1004ec6d
mov eax, dword [esp + 0x38]
mov esi, dword [edi + 0x4c]
add esi, eax
add eax, 0x28
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], eax
call fcn.10048f40
push 0x800
mov ecx, 1
push ebx
push esi
mov word [esi + 0x1c], cx
call fcn.100494c0
add esp, 0xc
cmp dword [esp + 0x24], 0
jg 0x1004ed0a
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea edx, [eax + eax*4]
lea esi, [edi + edx*8]
lea eax, [ebx + ebx*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], edi
test ecx, ecx
je case.0x1004ea03.12
mov ebx, dword [edi + 0x24]
dec dword [esp + 0x24]
push esi
mov eax, edi
mov dword [edi + 0x24], 0
call fcn.10049590
mov dword [esi + 0x24], ebx
add esp, 4
add esi, 0x28
add edi, 0x28
cmp dword [esp + 0x24], 0
jne 0x1004ed96
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], esi
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
mov eax, dword [esp + 0x20]
lea ecx, [ebx + ebx*4]
push 0x1000
lea esi, [edx + ecx*8]
push eax
push esi
mov dword [esp + 0x38], esi
call fcn.100494c0
mov ecx, 0x1000
add esp, 0xc
test word [esi + 0x1c], cx
je case.0x1004ea03.12
mov eax, esi
call fcn.10048d10
test eax, eax
je case.0x1004ea03.12
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x4c]
push str.out_of_memory
add esi, 0x74
mov byte [eax + 0x1e], 1
call fcn.10034db0
mov dword [esp + 0x18], 7
add esp, 4
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
push eax
mov dword [eax + 0x64], esi
call fcn.1004ba70
add esp, 4
cmp esi, 0xc0a
jne 0x1004ee55
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x1e], 1
mov esi, 1
mov edx, dword [esp + 0x118]
push edx
call fcn.1003ee80
mov ecx, dword [esp + 0x340]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.100afa0c
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebx + 8]
mov eax, dword [edi + 0x4c]
mov ecx, dword [esp + 0x20]
lea edx, [ebx + ebx*4]
push 0x1000
lea eax, [eax + edx*8]
push ecx
push eax
mov dword [esp + 0x38], eax
call fcn.100494c0
add esp, 0xc
jmp case.0x1004ea03.12
push 1
push edi
call fcn.1004b9c0
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
mov ecx, dword [edi + 0x50]
add ecx, 2
or ecx, 1
mov dword [edi + 0x50], ecx
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea esi, [eax + edx*8]
mov dword [edi + 0x78], esi
cmp dword [ebx + 8], 0
mov dword [esp + 0x8c], 0
jle 0x1004ef13
lea esp, [esp]
call fcn.10048dd0
mov ecx, esi
call fcn.1004e550
mov eax, dword [esp + 0x8c]
inc eax
add esi, 0x28
mov dword [esp + 0x8c], eax
cmp eax, dword [ebx + 8]
jl 0x1004eef0
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x1e], 0
jne 0x1004ee0d
mov edx, dword [esp + 0x28]
inc edx
mov dword [edi + 0x60], edx
mov esi, 0x64
jmp 0x1004ee5a
movzx eax, word [ecx + 0x1c]
mov edx, dword [esp + 0x50]
mov dl, byte [edx + 0x1c]
or dl, al
test dl, 1
je 0x1004ef53
mov esi, dword [esp + 0x2c]
call fcn.10049310
jmp case.0x1004ea03.12
test eax, 0x4000
je 0x1004ef65
mov esi, dword [esp + 0x20]
call fcn.10048d70
mov ecx, esi
test byte [ecx + 0x1c], 0x12
jne 0x1004ef81
movzx edi, byte [esp + 0x54]
mov esi, dword [esp + 0x20]
call fcn.10048e20
test eax, eax
jne 0x1004ee0d
mov esi, dword [esp + 0x50]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1004ef95
call fcn.10048d70
test byte [esi + 0x1c], 0x12
jne 0x1004efb1
movzx edi, byte [esp + 0x54]
mov esi, dword [esp + 0x50]
call fcn.10048e20
test eax, eax
jne 0x1004ee0d
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x18]
add eax, dword [ecx + 0x18]
mov esi, dword [esp + 0x2c]
cdq
mov ecx, edx
mov edx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
jg 0x1004ec6d
jl 0x1004efe2
cmp edi, eax
ja 0x1004ec6d
mov ax, word [esi + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
xor edx, edx
cmp esi, ebx
sete dl
mov word [esi + 0x1c], ax
lea eax, [edi + 2]
push edx
push eax
push esi
call fcn.10048bd0
add esp, 0xc
test eax, eax
jne 0x1004ee0d
cmp esi, ebx
je 0x1004f02b
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
mov eax, dword [esi + 0x14]
push ecx
push edx
push eax
call fcn.100b2fc0
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x18]
add eax, dword [esi + 0x14]
push ecx
push edx
push eax
call fcn.100b2fc0
mov ecx, dword [esi + 0x14]
mov byte [edi + ecx], 0
mov edx, dword [esi + 0x14]
mov cl, byte [esp + 0x60]
mov byte [edi + edx + 1], 0
mov eax, 0x200
add esp, 0xc
or word [esi + 0x1c], ax
mov dword [esi + 0x18], edi
mov byte [esi + 0x1f], cl
jmp case.0x1004ea03.12
mov esi, dword [esp + 0x20]
mov edi, esi
call fcn.1004e650
mov edi, dword [esp + 0x50]
call fcn.1004e650
movzx ecx, word [edi + 0x1c]
movzx eax, word [esi + 0x1c]
or eax, ecx
mov dword [esp + 0x1c], eax
test al, 1
jne 0x1004f237
movzx eax, word [esi + 0x1c]
and al, cl
test al, 4
je 0x1004f14e
mov eax, dword [edi]
mov edx, dword [edi + 4]
movzx edi, byte [ebx]
mov ecx, dword [esi]
mov esi, dword [esi + 4]
add edi, 0xffffffac
cmp edi, 3
ja case.default.0x1004f0ba
jmp dword [edi*4 + 0x10052c38]
add eax, ecx
adc edx, esi
jmp 0x1004f12c
sub eax, ecx
sbb edx, esi
jmp 0x1004f12c
push esi
push ecx
push edx
push eax
call fcn.100b9340
jmp 0x1004f12c
mov edi, ecx
or edi, esi
je 0x1004f237
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x1004f0fe
test eax, eax
jne 0x1004f0fe
cmp edx, 0x80000000
jne 0x1004f0fe
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.100bc300
jmp 0x1004f12c
mov edi, ecx
or edi, esi
je 0x1004f237
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x1004f123
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.100bc3b0
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x1004ea03.12
mov eax, esi
call fcn.10049100
fstp qword [esp + 0x38]
mov eax, edi
call fcn.10049100
movzx eax, byte [ebx]
add eax, 0xffffffac
cmp eax, 3
ja case.default.0x1004f16b
jmp dword [eax*4 + 0x10052c48]
fadd qword [esp + 0x38]
jmp 0x1004f1e7
fsub qword [esp + 0x38]
jmp 0x1004f1e7
fmul qword [esp + 0x38]
jmp 0x1004f1e7
fld qword [esp + 0x38]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1004f233
fdivp st(1)
jmp 0x1004f1e7
fld qword [esp + 0x38]
call fcn.100ccc36
mov esi, eax
mov edi, edx
call fcn.100ccc36
mov ecx, esi
or ecx, edi
je 0x1004f237
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x1004f1c9
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.100bc3b0
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
fild qword [esp + 0x160]
sub esp, 8
fst qword [esp + 0x40]
fstp qword [esp]
call fcn.10036a50
add esp, 8
test eax, eax
jne 0x1004f237
mov eax, dword [esp + 0x2c]
fld qword [esp + 0x38]
mov dx, word [eax + 0x1c]
fstp qword [eax + 8]
mov ecx, 0xbf08
and dx, cx
or dx, 8
test byte [esp + 0x1c], 8
mov word [eax + 0x1c], dx
jne case.0x1004ea03.12
mov esi, eax
call fcn.10049180
jmp case.0x1004ea03.12
fstp st(0)
fstp st(0)
mov esi, dword [esp + 0x2c]
call fcn.10049310
jmp case.0x1004ea03.12
mov edx, dword [edi + 0x24]
movzx esi, byte [ebx + 3]
mov eax, dword [ebx + 8]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x1c], edx
lea eax, [eax + eax*4]
xor edx, edx
lea ecx, [ecx + eax*8]
test esi, esi
jle 0x1004f276
mov eax, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
call fcn.1004e550
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x1004f262
cmp byte [ebx + 1], 0xfb
jne 0x1004f293
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x178], ecx
mov dword [esp + 0x17c], 0
jmp 0x1004f2a6
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x17c], eax
mov edx, dword [eax]
mov dword [esp + 0x178], edx
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x190], ecx
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov edx, 1
push eax
lea eax, [esp + 0x184]
mov word [esp + 0x1a0], dx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], ecx
call fcn.10049590
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x17c]
and edx, 0xbf01
or edx, 1
add esp, 4
mov word [esp + 0x19c], dx
mov dword [esp + 0x1ac], 0
test byte [eax + 3], 8
je 0x1004f328
mov ecx, dword [ebx - 4]
mov dword [esp + 0x1b0], ecx
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x17c]
push esi
push ecx
call edx
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x10052897
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x1004f372
mov ecx, dword [ebx + 4]
push ecx
push eax
call fcn.1004be10
mov edx, dword [esp + 0x184]
add esp, 8
mov dword [ebx + 0x10], edx
mov byte [ebx + 1], 0xf9
cmp dword [esp + 0x1ac], 0
je 0x1004f3ad
push 1
lea eax, [esp + 0x184]
call fcn.10049b00
add esp, 4
push eax
mov eax, dword [esp + 0x1c]
push 0x100ec558
lea esi, [edi + 0x74]
call fcn.10034db0
mov eax, dword [esp + 0x1b4]
add esp, 8
mov dword [esp + 0x14], eax
movzx ecx, byte [esp + 0x54]
lea eax, [esp + 0x180]
call fcn.10048bb0
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x180]
push ecx
mov eax, esi
call fcn.10049590
add esp, 4
mov ecx, esi
call fcn.10049490
test eax, eax
jne 0x1004ec6d
jmp case.0x1004ea03.12
mov edx, dword [esp + 0x50]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
je 0x1004f404
mov esi, dword [esp + 0x2c]
call fcn.10049310
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x50]
call fcn.10049070
mov edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xac], edx
call fcn.10049070
mov ecx, eax
movzx eax, byte [ebx]
sub eax, 0x50
je 0x1004f463
dec eax
je 0x1004f458
mov edx, dword [esp + 0xac]
dec eax
mov eax, edi
je 0x1004f448
call fcn.100cccb0
mov edi, eax
mov dword [esp + 0xac], edx
jmp 0x1004f46c
call fcn.100ccbe0
mov edi, eax
mov dword [esp + 0xac], edx
jmp 0x1004f46c
or edi, ecx
or dword [esp + 0xac], edx
jmp 0x1004f46c
and edi, ecx
and dword [esp + 0xac], edx
mov dx, word [esi + 0x1c]
mov ecx, dword [esp + 0xac]
mov eax, 0xbf04
and dx, ax
or dx, 4
mov dword [esi], edi
mov dword [esi + 4], ecx
mov word [esi + 0x1c], dx
jmp case.0x1004ea03.12
mov esi, dword [esp + 0x20]
call fcn.10049200
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x1004ea03.12
mov edi, dword [esp + 0x20]
call fcn.1004e650
test byte [edi + 0x1c], 8
je 0x1004f4be
mov esi, edi
call fcn.10049180
movzx eax, word [edi + 0x1c]
test al, 4
jne 0x1004f4db
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x100528ac
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
and eax, 0xbf04
or eax, 4
mov word [edi + 0x1c], ax
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 4
je case.0x1004ea03.12
mov esi, dword [esp + 0x20]
call fcn.10049230
jmp case.0x1004ea03.12
movzx edx, word [ecx + 0x1c]
test dl, 1
jne case.0x1004ea03.12
mov eax, edx
shr eax, 3
and eax, 2
or eax, edx
mov word [ecx + 0x1c], ax
test al, 2
jne 0x1004f537
test al, 0xc
je 0x1004f537
movzx edi, byte [esp + 0x54]
mov esi, dword [esp + 0x20]
call fcn.10048e20
mov ecx, esi
mov esi, dword [esp + 0x20]
mov edx, 0xfff3
and word [ecx + 0x1c], dx
movzx ecx, word [ecx + 0x1c]
test ecx, 0x4000
je 0x1004f567
call fcn.10048d70
mov dword [esp + 0x14], eax
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp case.0x1004ea03.12
mov eax, 0xbfe3
and word [esi + 0x1c], ax
mov dword [esp + 0x14], 0
jmp case.0x1004ea03.12
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x1004ea03.12
test al, 0x10
jne 0x1004f5be
test al, 2
jne 0x1004f5a5
test al, 0xc
je 0x1004f5a5
movzx edi, byte [esp + 0x54]
mov esi, dword [esp + 0x20]
call fcn.10048e20
mov ecx, esi
mov dx, word [ecx + 0x1c]
mov eax, 0xbf10
and dx, ax
or dx, 0x10
mov word [ecx + 0x1c], dx
jmp case.0x1004ea03.12
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 0xd
jne case.0x1004ea03.12
mov esi, dword [esp + 0x20]
call fcn.10049260
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
jne case.0x1004ea03.12
mov esi, dword [esp + 0x20]
call fcn.10049200
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
jne case.0x1004ea03.12
mov esi, dword [esp + 0x20]
call fcn.10049230
jmp case.0x1004ea03.12
mov edx, dword [esp + 0x6c]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
mov al, byte [ebx + 3]
je 0x1004f667
test al, 0x10
je 0x1004f652
mov ebx, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
mov cx, word [eax + 0x1c]
mov edx, 0xbf01
and cx, dx
or cx, 1
mov dword [esp + 0x2c], eax
mov word [eax + 0x1c], cx
jmp case.0x1004ea03.12
test al, 8
je case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
and al, 0x67
mov byte [esp + 0x37], al
je 0x1004f6a3
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
push esi
call fcn.1004e710
mov al, byte [esp + 0x3b]
mov ecx, dword [esp + 0x70]
add esp, 4
push esi
call fcn.1004e710
mov eax, dword [esp + 0x1c]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x1004ee0d
mov ecx, dword [esp + 0x20]
mov edx, 0x4000
test word [ecx + 0x1c], dx
je 0x1004f6b7
mov esi, dword [esp + 0x20]
call fcn.10048d70
mov ecx, dword [esp + 0x6c]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1004f6cd
mov esi, ecx
call fcn.10048d70
mov edx, dword [esp + 0x20]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x6c]
push edx
call fcn.10049780
movzx ecx, byte [ebx]
add ecx, 0xffffffb7
add esp, 4
cmp ecx, 4
ja case.default.0x1004f6ec
jmp dword [ecx*4 + 0x10052c58]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x1004f72f
xor edx, edx
test eax, eax
setne dl
jmp 0x1004f72d
xor ecx, ecx
test eax, eax
sets cl
mov eax, ecx
jmp 0x1004f72f
xor edx, edx
test eax, eax
setle dl
jmp 0x1004f72d
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x1004f72f
xor edx, edx
test eax, eax
setns dl
mov eax, edx
test byte [ebx + 3], 0x10
je 0x1004f9b3
mov ebx, dword [ebx + 8]
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
lea ecx, [edx + ecx*8]
mov dx, word [ecx + 0x1c]
mov esi, 0xbf04
and dx, si
or dx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [esp + 0x2c], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc4], eax
jmp case.0x1004ea03.12
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [ebx + 8]
xor ebx, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], edx
test eax, eax
jle 0x1004f824
add ecx, 0xc
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x1004f7b4
mov eax, dword [eax + ebx*4]
jmp 0x1004f7b6
mov eax, ebx
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 8]
movzx edx, byte [ecx + ebx]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x38]
add edx, eax
lea edx, [edx + edx*4]
lea edx, [ecx + edx*8]
push edx
mov edx, dword [esp + 0x4c]
add edx, eax
lea eax, [edx + edx*4]
lea ecx, [ecx + eax*8]
mov eax, esi
call fcn.10049780
add esp, 4
mov dword [esp + 0xc0], eax
test eax, eax
jne 0x1004f814
add dword [esp + 0x24], 4
inc ebx
cmp ebx, dword [esp + 0x30]
jl 0x1004f7a4
mov dword [esp + 0xc4], eax
jmp case.0x1004ea03.12
cmp dword [esp + 0x44], 0
je 0x1004f824
neg eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], 0
jmp case.0x1004ea03.12
mov eax, dword [esp + 0xc0]
test eax, eax
jns 0x1004f84c
mov ebx, dword [ebx + 4]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
jne 0x1004f85b
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 0xc]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
je 0x1004f875
mov edi, 2
jmp 0x1004f88b
mov eax, dword [esp + 0x20]
call fcn.10049070
or eax, edx
je 0x1004f889
mov edi, 1
jmp 0x1004f88b
xor edi, edi
mov eax, dword [esp + 0x50]
test byte [eax + 0x1c], 1
je 0x1004f89c
mov eax, 2
jmp 0x1004f8ae
call fcn.10049070
or eax, edx
je 0x1004f8ac
mov eax, 1
jmp 0x1004f8ae
xor eax, eax
cmp byte [ebx], 0x43
jne 0x1004f8c0
lea ecx, [eax + edi*2]
movzx eax, byte [edi + ecx + 0x100e43ac]
jmp 0x1004f8cb
lea edx, [eax + edi*2]
movzx eax, byte [edi + edx + 0x100e4474]
cmp eax, 2
jne 0x10051bf5
mov ax, word [esi + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
mov word [esi + 0x1c], ax
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
mov ebx, dword [ebx + 8]
mov eax, dword [edi + 0x4c]
lea edx, [ebx + ebx*4]
lea esi, [eax + edx*8]
mov dword [esp + 0x2c], esi
je 0x1004f90d
call fcn.10049310
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x20]
call fcn.10049070
or eax, edx
jne 0x1004f92f
mov eax, 1
cdq
push edx
push eax
call fcn.10049340
add esp, 8
jmp case.0x1004ea03.12
xor eax, eax
cdq
push edx
push eax
call fcn.10049340
add esp, 8
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
mov ebx, dword [ebx + 8]
mov eax, dword [edi + 0x4c]
lea edx, [ebx + ebx*4]
lea esi, [eax + edx*8]
mov dword [esp + 0x2c], esi
je 0x1004f961
call fcn.10049310
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x20]
call fcn.10049070
not edx
not eax
push edx
push eax
call fcn.10049340
add esp, 8
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 1
je 0x1004f988
mov eax, dword [ebx + 0xc]
jmp 0x1004f9b3
mov eax, dword [esp + 0x20]
call fcn.10049100
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1004f9a3
mov eax, 1
jmp 0x1004f9a5
xor eax, eax
cmp byte [ebx], 0x44
jne 0x1004f9b3
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 0xc]
jmp 0x1004f9d0
test byte [ecx + 0x1c], 1
jne 0x1004f9e3
dec eax
add ecx, 0x28
test eax, eax
jg 0x1004f9d0
jmp 0x1004ea49
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp 0x1004ea49
test byte [ecx + 0x1c], 1
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 4]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov eax, dword [edi + 0x4c]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov ax, word [ecx + 0x1c]
mov esi, 0xbf01
and ax, si
or ax, 1
mov word [ecx + 0x1c], ax
mov dword [esp + 0x74], ecx
mov ecx, dword [edi + 0x30]
mov ecx, dword [ecx + edx*4]
xor eax, eax
mov dword [esp + 0x58], ecx
cmp dword [ecx], eax
je 0x1004fb2a
mov edi, ecx
call fcn.1004c0e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov esi, edi
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], eax
cmp byte [esi + 0x14], cl
je 0x1004fac7
mov edx, dword [esi + 0x44]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x38], edx
jmp 0x1004fb46
mov edx, dword [esi + 0x5c]
mov ecx, dword [esp + 0x4c]
cmp edx, dword [ecx + 0x50]
jne 0x1004faea
mov edx, dword [esi + 0x60]
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x78], edx
mov edx, dword [esi + 0x44]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], edx
jmp 0x1004fb46
cmp byte [esi + 0x19], 0
je 0x1004fb14
lea ecx, [esp + 0x240]
push ecx
call fcn.10042350
mov edx, dword [esp + 0x244]
mov dword [esp + 0x7c], edx
mov edx, dword [esi + 0x44]
add esp, 4
mov dword [esp + 0x38], edx
jmp 0x1004fb46
lea ecx, [esp + 0x78]
push ecx
call fcn.100423b0
mov edx, dword [esi + 0x44]
add esp, 4
mov dword [esp + 0x38], edx
jmp 0x1004fb46
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x78], edx
mov edx, dword [ecx + 0x30]
mov dword [ecx + 0x5c], eax
mov ecx, dword [ecx + 0x44]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
cmp dword [esp + 0x78], 0
je case.0x1004ea03.12
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + 0x50]
jg 0x1004ec6d
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x5c]
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x24], ecx
cmp esi, dword [edx + 0x50]
jne 0x1004fb85
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x44], ecx
jmp 0x1004fd44
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x5c]
lea ecx, [ecx + esi*4]
mov dword [eax + 0x68], ecx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x78]
mov dword [eax + 0x60], ecx
mov edx, dword [edx + 0x50]
mov dword [esp + 0x48], 0
mov dword [eax + 0x5c], edx
test edi, edi
jne 0x1004fbfb
cmp byte [eax + 0x19], 0
je 0x1004fbc6
mov esi, dword [esp + 0x30]
lea eax, [esp + 0x48]
push eax
call fcn.100429a0
jmp 0x1004fbd4
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x48]
push ecx
call fcn.10042a30
mov edx, dword [esp + 0x4c]
add esp, 4
mov edi, eax
cmp edx, dword [esp + 0x78]
jl 0x1004fbf0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], edi
mov dword [eax + 0x6c], edi
jmp 0x1004fbfb
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x6c], 0
mov al, byte [edi]
cmp al, 0x80
jae 0x1004fc0f
movzx edx, al
mov dword [esp + 0x7c], edx
mov eax, 1
jmp 0x1004fc1d
lea esi, [esp + 0x7c]
mov ecx, edi
call fcn.100375b0
movzx eax, al
cmp dword [esp + 0x5c], 0
movzx esi, al
jne 0x1004fc79
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x7c]
jge 0x1004fc79
mov edx, dword [esp + 0x58]
xor ecx, ecx
mov word [esp + 0x104], cx
mov dword [esp + 0xf8], ecx
movzx eax, byte [edx + 0x19]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x30]
push eax
push ecx
push 0
push edx
lea edi, [esp + 0xf8]
call fcn.10049a10
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
mov edi, dword [esp + 0xfc]
mov eax, dword [esp + 0x7c]
add eax, edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x38]
add edi, esi
test eax, eax
jle 0x1004fcff
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
sub ecx, esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
nop
cmp edi, dword [esp + 0x48]
jae 0x1004fcef
mov edx, dword [esp + 0x7c]
mov dword [ecx + esi], edx
mov al, byte [edi]
cmp al, 0x80
jae 0x1004fccf
movzx eax, al
mov dword [esi], eax
mov eax, 1
movzx edx, al
mov eax, dword [esi]
add edi, edx
call fcn.1004c260
add dword [esp + 0x7c], eax
jmp 0x1004fcf6
mov ecx, edi
call fcn.100375b0
mov ecx, dword [esp + 0x14]
movzx eax, al
movzx edx, al
mov eax, dword [esi]
add edi, edx
call fcn.1004c260
add dword [esp + 0x7c], eax
jmp 0x1004fcf6
mov dword [ecx + esi], 0
add esi, 4
dec dword [esp + 0x38]
jne 0x1004fca0
lea eax, [esp + 0xe8]
push eax
call fcn.10048fa0
mov ecx, 1
mov word [esp + 0x108], cx
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp edi, ecx
ja 0x1004fe6f
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
cmp eax, edx
jg 0x1004fe6f
cmp edi, ecx
jne 0x1004fd44
cmp eax, edx
jne 0x1004fe6f
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
cmp dword [edx + edi*4], 0
je 0x1004fe0d
cmp dword [esp + 0x5c], 0
je 0x1004fd8d
mov esi, dword [esp + 0x74]
call fcn.10048f40
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + edi*4]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [edx + edi*4]
add ecx, dword [esp + 0x60]
call fcn.1004c330
mov cl, byte [esp + 0x58]
add esp, 4
mov byte [esi + 0x1f], cl
jmp 0x1004fe29
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
mov eax, dword [eax + edi*4]
call fcn.1004c260
mov ecx, dword [esp + 0x74]
mov esi, eax
push ecx
lea eax, [esp + 0xec]
call fcn.10049590
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + 0x19]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + edi*4]
add esp, 4
push eax
mov eax, dword [esp + 0x34]
push esi
push edx
push eax
lea edi, [esp + 0xf8]
call fcn.10049a10
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + edx*4]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0xfc]
push eax
call fcn.1004c330
mov cl, byte [esp + 0x58]
add esp, 4
mov byte [esi + 0x1f], cl
jmp 0x1004fe29
cmp byte [ebx + 1], 0xf8
mov esi, dword [esp + 0x74]
jne 0x1004fe29
mov edx, dword [ebx + 0x10]
push 0x800
push edx
push esi
call fcn.100494c0
add esp, 0xc
cmp dword [esp + 0x10c], 0
je 0x1004fe5f
mov ax, word [esi + 0x1c]
mov ecx, 0xe7ff
and ax, cx
mov edx, 0x200
or ax, dx
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0xfc]
mov dword [esi + 0x14], eax
mov ecx, dword [esp + 0x10c]
mov dword [esi + 0x24], ecx
mov eax, esi
call fcn.10048d10
mov dword [esp + 0x14], eax
jmp case.0x1004ea03.12
mov dword [esp + 0x14], 0xb
jmp case.0x1004ea03.12
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x1c], edx
lea edx, [ebx + ebx*4]
lea eax, [edi + edx*8 - 0x28]
mov dword [esp + 0x38], eax
mov esi, edi
cmp edi, eax
ja case.0x1004ea03.12
xor ebx, ebx
mov eax, 0x4000
test word [edi + ebx + 0x1c], ax
je 0x1004feba
call fcn.10048d70
mov ecx, dword [esp + 0x54]
mov eax, 0x66666667
imul ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
push ecx
mov ecx, dword [esp + 0x20]
add eax, edx
mov al, byte [eax + ecx]
mov ecx, esi
call fcn.1004e710
add esi, 0x28
add esp, 4
add ebx, 0x28
cmp esi, dword [esp + 0x38]
jbe 0x1004fea9
jmp case.0x1004ea03.12
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebx + 0x10]
xor eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 8]
movzx ecx, byte [edi + 0x7f]
mov dword [esp + 0x1c], edx
lea edx, [eax + eax*4]
lea eax, [esi + edx*8 - 0x28]
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
cmp esi, eax
ja 0x10050009
mov eax, 0xffffffe8
sub eax, esi
mov dword [esp + 0x48], eax
lea ebx, [ebx]
cmp dword [esp + 0x1c], 0
je 0x1004ff86
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
lea ecx, [esi + eax + 0x18]
push edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x20]
mov al, byte [ecx + edx]
mov ecx, esi
call fcn.1004e710
add esp, 4
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1004ff9c
cmp dword [esi + 0x18], 0
jle 0x1004ff9c
call fcn.10048d70
mov ecx, dword [esp + 0x38]
push ecx
mov edx, esi
call fcn.1004c180
add esp, 4
mov dword [esp + 0x74], eax
call fcn.1004c260
mov dword [esp + 0x58], eax
cdq
add dword [esp + 0xc8], eax
push 0
adc dword [esp + 0xd0], edx
mov edx, dword [esp + 0x78]
push edx
call fcn.10037610
add dword [esp + 0x64], eax
mov eax, 0x4000
add esp, 8
test word [esi + 0x1c], ax
je 0x1004ffed
mov ecx, dword [esi]
add dword [esp + 0x44], ecx
jmp 0x1004fffc
cmp dword [esp + 0x58], 0
je 0x1004fffc
mov dword [esp + 0x44], 0
add esi, 0x28
cmp esi, dword [esp + 0x30]
jbe 0x1004ff50
mov eax, dword [esp + 0x5c]
cdq
push edx
push eax
call fcn.10037610
mov esi, eax
mov eax, dword [esp + 0x64]
add eax, esi
mov dword [esp + 0x64], eax
cdq
push edx
push eax
call fcn.10037610
add esp, 0x10
cmp esi, eax
jge 0x10050034
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x44]
cdq
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], edx
cdq
mov esi, eax
sub esi, dword [esp + 0x1c]
mov ecx, edx
sbb ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
add esi, dword [esp + 0xc8]
mov eax, dword [edx + 0x50]
adc ecx, dword [esp + 0xcc]
cdq
cmp ecx, edx
jg 0x1004ec6d
jl 0x1005007a
cmp esi, eax
ja 0x1004ec6d
mov ebx, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
push 0
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
push esi
push eax
mov dword [esp + 0x38], eax
call fcn.10048bd0
add esp, 0xc
test eax, eax
jne 0x1004ee0d
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x1c], ecx
cmp eax, 0x80
jae 0x100500bd
mov byte [ecx], al
mov eax, 1
jmp 0x100500c2
call fcn.10037400
mov ebx, dword [esp + 0x24]
movzx edi, al
cmp ebx, dword [esp + 0x30]
ja 0x1005013e
nop
mov eax, dword [esp + 0x38]
push eax
mov edx, ebx
call fcn.1004c180
add esp, 4
cmp eax, 0x80
jae 0x100500f4
mov ecx, dword [esp + 0x1c]
mov byte [edi + ecx], al
mov eax, 1
jmp 0x10050100
mov edx, dword [esp + 0x1c]
lea ecx, [edi + edx]
call fcn.10037400
movzx eax, al
add ebx, 0x28
add edi, eax
cmp ebx, dword [esp + 0x30]
jbe 0x100500d0
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x30]
ja 0x1005013e
mov edx, dword [esp + 0x1c]
mov ecx, esi
sub ecx, edi
push ecx
lea eax, [edi + edx]
push eax
mov eax, dword [esp + 0x40]
mov ecx, ebx
call fcn.1004c280
add ebx, 0x28
add esp, 8
add edi, eax
cmp ebx, dword [esp + 0x30]
jbe 0x10050118
mov eax, dword [esp + 0x2c]
mov ecx, 0x410
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x44]
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], 0
test ecx, ecx
je 0x10050168
mov edx, 0x4410
mov dword [eax], ecx
mov word [eax + 0x1c], dx
mov byte [eax + 0x1f], 1
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov edx, dword [ecx + eax*4]
mov esi, dword [edx]
xor eax, eax
cmp esi, eax
je 0x10050198
lea eax, [esp + 0xe0]
push eax
call fcn.10046ca0
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x100501a6
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xe0]
mov ecx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0xe4]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x1004ea03.12
cmp byte [edx + 0x1c], 0
je 0x100501de
cmp dword [edx + 0x90], 1
jle case.0x1004ea03.12
cmp dword [edi + 0xd4], 0
mov ebx, dword [ebx + 4]
mov ecx, dword [edx + 8]
lea eax, [ebx + ebx*2]
mov eax, dword [ecx + eax*8 + 4]
jne 0x1005020e
inc dword [edx + 0x1dc]
mov ecx, dword [edx + 0x1dc]
mov edx, dword [edx + 0x1d8]
add edx, ecx
mov dword [edi + 0xd4], edx
mov ecx, dword [edi + 0xd4]
push ecx
call fcn.10041ed0
add esp, 4
mov dword [esp + 0x14], eax
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ecx
test eax, eax
jne 0x100502da
cmp dword [edx + 0x94], eax
jle 0x10050265
push str.cannot_open_savepoint___SQL_statements_in_progress
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 4
mov dword [esp + 0x14], 5
jmp case.0x1004ea03.12
call fcn.10036a80
mov esi, dword [esp + 0x18]
mov edi, eax
lea ecx, [edi + 9]
call fcn.10034ba0
mov esi, eax
test esi, esi
je case.0x1004ea03.12
mov edx, dword [esp + 0x1c]
inc edi
push edi
lea eax, [esi + 8]
push edx
push eax
mov dword [esi], eax
call fcn.100b2fc0
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x100502c0
mov ecx, dword [eax + 0x1d4]
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1e0], 1
mov dword [esi + 4], ecx
mov dword [eax + 0x1d4], esi
jmp case.0x1004ea03.12
mov ecx, dword [eax + 0x1d4]
inc dword [eax + 0x1d8]
mov dword [esi + 4], ecx
mov dword [eax + 0x1d4], esi
jmp case.0x1004ea03.12
mov ebx, dword [edx + 0x1d4]
xor esi, esi
test ebx, ebx
je 0x100502ff
mov edx, ecx
mov ecx, dword [ebx]
call fcn.10036c90
test eax, eax
je 0x10050321
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
inc esi
test ebx, ebx
jne 0x100502e6
mov eax, dword [esp + 0x18]
push ecx
push str.no_such_savepoint:__s
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 8
mov dword [esp + 0x14], 1
jmp case.0x1004ea03.12
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x18]
xor ecx, ecx
cmp dword [esi + 0x94], ecx
jg 0x10050476
mov eax, dword [esp + 0x30]
cmp eax, 2
jne 0x1005034d
cmp dword [esi + 0x90], 1
jg 0x1005047d
cmp dword [ebx + 4], ecx
jne 0x10050391
cmp byte [esi + 0x1e0], cl
je 0x10050391
mov dword [esp + 0x24], 1
cmp eax, 1
jne 0x10050395
push edi
mov byte [esi + 0x1c], al
call fcn.1004ba70
add esp, 4
cmp eax, 5
je 0x100528b9
mov byte [esi + 0x1e0], 0
mov edx, dword [edi + 0x64]
mov dword [esp + 0x14], edx
mov edi, esi
jmp 0x10050408
mov dword [esp + 0x24], ecx
mov edi, dword [esi + 0x1d8]
sub edi, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
dec edi
cmp dword [esi + 4], ecx
jle 0x100503e5
mov eax, dword [esp + 0x18]
xor esi, esi
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + 8]
mov eax, dword [esi + edx + 4]
push edi
push ecx
call fcn.10041f30
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc ecx
add esi, 0x18
mov dword [esp + 0x1c], ecx
cmp ecx, dword [eax + 4]
jl 0x100503af
cmp dword [esp + 0x30], 2
mov edi, dword [esp + 0x18]
jne 0x10050408
test byte [edi + 0xc], 0x10
je 0x10050408
mov eax, edi
call fcn.1004cb90
push 0
push edi
call fcn.1005e3d0
add esp, 8
cmp dword [edi + 0x1d4], ebx
je 0x1005043a
or esi, 0xffffffff
mov eax, dword [edi + 0x1d4]
mov ecx, dword [eax + 4]
push eax
push edi
mov dword [edi + 0x1d4], ecx
call fcn.100349a0
add dword [edi + 0x1d8], esi
add esp, 8
cmp dword [edi + 0x1d4], ebx
jne 0x10050413
cmp dword [esp + 0x30], 1
jne case.0x1004ea03.12
mov eax, dword [esp + 0x18]
mov edx, dword [ebx + 4]
push ebx
push eax
mov dword [eax + 0x1d4], edx
call fcn.100349a0
add esp, 8
cmp dword [esp + 0x24], 0
jne case.0x1004ea03.12
mov eax, dword [esp + 0x18]
dec dword [eax + 0x1d8]
jmp case.0x1004ea03.12
cmp dword [esp + 0x30], 2
jne 0x10050484
mov eax, str.rollback
jmp 0x10050489
mov eax, str.release
push eax
mov eax, dword [esp + 0x1c]
push str.cannot__s_savepoint___SQL_statements_in_progress
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 8
mov dword [esp + 0x14], 5
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x100504e9
cmp byte [edx + 0x1c], 0
jne 0x100504e9
test ebx, ebx
je 0x100504d6
cmp dword [edx + 0x90], 1
jle 0x100504e9
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x10050249
cmp dword [edx + 0x94], 1
jle 0x100504e9
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x10050249
movzx ecx, byte [edx + 0x1c]
cmp eax, ecx
jne 0x100528d1
test eax, eax
jne 0x10050500
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1005050e
mov eax, str.cannot_rollback___no_transaction_is_active
test ebx, ebx
jne 0x1005050e
mov eax, str.cannot_commit___no_transaction_is_active
push eax
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 4
mov dword [esp + 0x14], 1
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 4]
test eax, eax
je case.0x1004ea03.12
mov edx, dword [ebx + 8]
push edx
push eax
call fcn.10041040
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, 5
je 0x1005292f
test eax, eax
je case.0x1004ea03.12
cmp eax, 8
jne 0x1005295f
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
test eax, eax
jns 0x10050583
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
neg ebx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x120]
push edx
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
inc ebx
push ebx
call fcn.10046a40
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x128]
cdq
mov dword [esi], eax
mov ax, word [esi + 0x1c]
mov ecx, 0xbf04
and ax, cx
add esp, 8
or ax, 4
mov dword [esi + 4], edx
mov word [esi + 0x1c], ax
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x6c]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
lea edi, [ecx + edx*8]
call fcn.10049200
mov edx, dword [esi]
mov eax, dword [ebx + 8]
inc eax
push edx
push eax
mov eax, dword [edi + 4]
call fcn.10046ba0
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
add esp, 8
test eax, eax
jne 0x10050615
mov ecx, dword [edi + 0x14]
mov edx, dword [esi]
mov eax, dword [esp + 0x18]
mov dword [ecx], edx
or dword [eax + 0xc], 0x10
jmp 0x10050622
cmp eax, 1
jne 0x10050622
mov eax, dword [edi + 0x14]
mov cl, byte [esi]
mov byte [eax + 0x38], cl
cmp dword [ebx + 4], 1
jne case.0x1004ea03.12
mov eax, dword [esp + 0x18]
call fcn.1004cb90
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edx + 8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 4]
xor ecx, ecx
cmp eax, ecx
je 0x100506dc
lea edx, [esp + 0xb4]
push edx
push 1
call fcn.10046a40
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
mov eax, dword [esp + 0xb4]
cmp eax, dword [ebx + 8]
je case.0x1004ea03.12
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx + 0x74]
mov esi, dword [esp + 0x18]
push edx
push esi
call fcn.100349a0
push esi
mov edi, str.database_schema_has_changed
call fcn.10034d20
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0x74], eax
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 8]
lea edx, [ebx + ebx*2]
mov ecx, dword [eax + edx*8 + 0x14]
mov edx, dword [esp + 0xc0]
add esp, 0xc
cmp dword [ecx], edx
je 0x100506c8
push ebx
push esi
call fcn.1005e3d0
add esp, 8
mov eax, esi
call fcn.1004cb90
mov dword [esp + 0x14], 0x11
jmp case.0x1004ea03.12
mov dword [esp + 0x14], ecx
mov dword [esp + 0xb4], ecx
jmp 0x1005066f
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov edx, dword [edx + 8]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], ecx
lea ecx, [eax + eax*2]
xor esi, esi
cmp byte [esp + 0x37], 0xa
lea ecx, [edx + ecx*8]
mov edx, dword [ecx + 4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x74], edx
jne 0x10050737
mov ecx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x38]
mov dword [esp + 0x24], 1
cmp cl, byte [edi + 0x7f]
jae 0x1005073b
mov byte [edi + 0x7f], cl
jmp 0x1005073b
mov dword [esp + 0x24], esi
cmp byte [ebx + 3], 0
je 0x1005076e
mov eax, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea esi, [eax + edx*8]
mov dword [esp + 0x50], esi
call fcn.10049200
mov esi, dword [esi]
mov dword [esp + 0x1c], esi
cmp esi, 2
jl 0x10050867
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x30]
mov cl, byte [ebx + 1]
cmp cl, 0xfa
jne 0x10050792
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x14]
mov esi, dword [ebx + 0x10]
mov dl, byte [ecx + 0x39]
mov dword [esp + 0x38], esi
mov byte [esi + 4], dl
movzx esi, word [esi + 6]
inc esi
jmp 0x1005079a
cmp cl, 0xf2
jne 0x1005079a
mov esi, dword [ebx + 0x10]
push 1
push eax
mov eax, dword [esp + 0x4c]
push esi
push eax
mov eax, edi
call fcn.1004e580
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1004ee0d
mov ecx, dword [esi]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x80]
push ecx
mov byte [esi + 0x14], 1
call fcn.100420a0
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x14], eax
mov dword [esi + 0x40], edx
test eax, eax
je 0x10050822
cmp eax, 5
je 0x10052943
cmp eax, 0x10
jne 0x1005295f
cmp byte [ebx + 1], 0xfa
mov dword [esi], 0
setne al
test al, al
mov byte [esi + 0x18], al
sete al
mov byte [esi + 0x19], al
mov dword [esp + 0x14], 0
jmp case.0x1004ea03.12
mov eax, dword [esi]
call fcn.10046c30
test al, 0xf0
jne 0x10050867
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x1005083c
cmp ecx, 2
jne 0x10050867
mov cl, al
shr eax, 1
and cl, 1
and al, 1
mov byte [esi + 0x18], cl
mov byte [esi + 0x19], al
test cl, cl
je 0x10050855
cmp byte [ebx + 1], 0xfa
je 0x10050867
test al, al
je case.0x1004ea03.12
cmp byte [ebx + 1], 0xfa
je case.0x1004ea03.12
mov dword [esp + 0x14], 0xb
jmp 0x1005295f
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov eax, edi
call fcn.1004e580
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1004ee0d
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x28]
push eax
push 0x41e
push 0x1f4
push 1
xor ecx, ecx
mov byte [esi + 0x14], 1
call fcn.10085130
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10050961
mov eax, dword [esi + 0x28]
push 1
push eax
call fcn.10041040
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10050961
cmp dword [ebx + 0x10], eax
je 0x10050945
mov eax, dword [esi + 0x28]
lea ecx, [esp + 0x110]
push 2
push ecx
call fcn.10046540
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10050932
mov edx, dword [esi]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x110]
push edx
push eax
mov eax, dword [esi + 0x28]
push 1
push ecx
call fcn.100420a0
mov ebx, dword [ebx + 0x10]
mov dword [esi + 0x40], ebx
mov edx, dword [edi]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x39]
add esp, 0x10
mov byte [ebx + 4], dl
mov byte [esi + 0x18], 0
cmp byte [esi + 0x18], 0
sete cl
mov byte [esi + 0x19], cl
jmp case.0x1004ea03.12
mov eax, dword [esi]
push eax
mov eax, dword [esi + 0x28]
push 0
push 1
push 1
call fcn.100420a0
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [esi + 0x18], 1
cmp byte [esi + 0x18], 0
sete cl
mov byte [esi + 0x19], cl
jmp case.0x1004ea03.12
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
mov eax, edi
call fcn.1004e580
add esp, 0x10
test eax, eax
je 0x1004ee0d
mov word [eax + 0x14], 0x101
mov cl, byte [ebx + 8]
mov byte [eax + 0x16], cl
mov word [eax + 0x18], 1
jmp case.0x1004ea03.12
mov edi, dword [esp + 0x4c]
mov ebx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov esi, dword [edx + ebx*4]
call fcn.1004b150
mov eax, edi
mov ecx, dword [eax + 0x30]
mov dword [ecx + ebx*4], 0
jmp case.0x1004ea03.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + edx*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x10050c81
cmp byte [esi + 0x18], 0
mov byte [esi + 0x14], 0
je 0x10050b84
mov edi, dword [esp + 0x6c]
call fcn.1004e650
mov eax, edi
call fcn.10049070
mov dword [esp + 0x80], eax
mov byte [esi + 0x11], 0
movzx eax, word [edi + 0x1c]
mov dword [esp + 0x84], edx
test al, 4
jne 0x10050b32
test al, 8
jne 0x10050a28
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
cmp dword [esp + 0x80], 0
jne 0x10050adf
mov eax, SysReAllocString
cmp dword [esp + 0x84], eax
jne 0x10050adf
mov dword [esp + 0x174], eax
mov dword [esp + 0x170], 0
fild qword [esp + 0x170]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
je 0x10050a77
fldz
fcomp qword [edi + 8]
fnstsw ax
test ah, 5
jp 0x10050adf
fldz
mov dword [esp + 0x70], 1
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x30]
jne 0x10050aa6
cmp eax, 0x7b
je 0x10050a99
cmp eax, 0x6d
jne 0x10050ad2
mov eax, dword [esi]
lea edi, [esp + 0x70]
call fcn.10042de0
jmp 0x10050abb
cmp eax, 0x46
je 0x10050ab0
cmp eax, 0x37
jne 0x10050ad2
mov eax, dword [esi]
lea edi, [esp + 0x70]
call fcn.10042e10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
cmp dword [esp + 0x70], 0
je case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x30]
cmp eax, 0x46
je 0x10050b11
cmp eax, 0x6d
je 0x10050b11
fild qword [esp + 0x80]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
jne 0x10050b32
or eax, 0xffffffff
add dword [esp + 0x80], eax
adc dword [esp + 0x84], eax
jmp 0x10050b32
fild qword [esp + 0x80]
fcomp qword [edi + 8]
fnstsw ax
test ah, 5
jp 0x10050b32
add dword [esp + 0x80], 1
adc dword [esp + 0x84], 0
mov edx, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
mov eax, dword [esi]
lea ecx, [esp + 0x70]
push ecx
push 0
push edx
push edi
push 0
push eax
call fcn.10042e50
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x10050c03
mov ecx, dword [esp + 0x84]
mov byte [esi + 0x11], 1
mov dword [esi + 8], edi
mov dword [esi + 0xc], ecx
jmp 0x10050c03
mov ax, word [ebx + 0x10]
mov edx, dword [esi + 0x40]
mov word [esp + 0x1d4], ax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1d0], edx
cmp eax, 0x7b
je 0x10050bb4
cmp eax, 0x37
je 0x10050bb4
xor edx, edx
mov word [esp + 0x1d6], dx
jmp 0x10050bc1
mov eax, 8
mov word [esp + 0x1d6], ax
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
lea eax, [esp + 0x70]
push eax
push 0
push 0
mov dword [esp + 0x1ec], edx
push 0
lea edx, [esp + 0x1e0]
push edx
push ecx
call fcn.10042e50
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov byte [esi + 0x11], al
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
xor edx, edx
mov byte [esi + 0x17], 0
mov dword [esi + 0x5c], edx
cmp ecx, 0x6d
je 0x10050c48
cmp ecx, 0x7b
je 0x10050c48
cmp eax, edx
jg 0x10050c39
jne 0x10050c25
cmp ecx, 0x46
je 0x10050c39
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x70], ecx
jmp 0x10050ac7
mov eax, dword [esi]
lea edx, [esp + 0x70]
push edx
push eax
call fcn.10043490
jmp 0x10050c69
cmp eax, edx
jl 0x10050c5c
jne 0x10050c53
cmp ecx, 0x7b
je 0x10050c5c
mov dword [esp + 0x70], edx
jmp case.0x1004ea03.12
mov edx, dword [esi]
lea ecx, [esp + 0x70]
push ecx
push edx
call fcn.10043300
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov byte [esi + 0x11], 0
jmp 0x10050ac7
cmp byte [esi + 0x15], 0
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + eax*4]
cmp dword [esi], 0
je case.0x1004ea03.12
mov eax, dword [esp + 0x50]
mov byte [esi + 0x14], 0
call fcn.10049070
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov byte [esi + 0x11], 0
mov byte [esi + 0x17], 1
jmp case.0x1004ea03.12
mov edx, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov edi, dword [ecx + edx*4]
xor eax, eax
cmp dword [edi], eax
je 0x10050d5a
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov ecx, dword [edi + 0x40]
push edx
push eax
push ecx
mov edx, 0x97
lea eax, [esp + 0x2ac]
call fcn.1004c560
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1004ee0d
cmp byte [ebx], 0x80
jne 0x10050d15
or word [esi + 6], 0x10
mov eax, dword [edi]
lea edx, [esp + 0x124]
push edx
push 0
push 0
push 0
push esi
push eax
call fcn.10042e50
add esp, 0x18
mov dword [esp + 0x14], eax
call fcn.1004c6f0
cmp dword [esp + 0x14], 0
jne case.0x1004ea03.12
xor eax, eax
cmp dword [esp + 0x124], eax
mov byte [edi + 0x17], 0
sete al
mov dword [edi + 0x5c], 0
cmp byte [ebx], 0x80
jne 0x100526a1
test eax, eax
jmp 0x10050acc
mov eax, dword [ebx + 0x10]
mov edx, dword [edi + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [edi + 0x30]
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax]
xor edx, edx
lea edi, [eax + 0x58]
mov dword [eax + 0x5c], edx
mov eax, dword [eax + 0x40]
mov dword [edi], edx
mov dword [esp + 0x1c], ecx
movzx ecx, word [eax + 6]
mov dword [esp + 0x38], eax
xor eax, eax
cmp ax, cx
jae 0x10050db8
movzx eax, dx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x1004ea18
inc edx
cmp dx, cx
jb 0x10050da1
cmp dword [esp + 0x1c], 0
je case.0x1004ea03.12
mov edx, dword [esp + 0x38]
inc ecx
mov eax, 0x20
mov dword [esp + 0x1c8], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x1b8], edx
mov word [esp + 0x1bc], cx
mov word [esp + 0x1be], ax
call fcn.10049200
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push edi
push 0
push 0
push 0
lea eax, [esp + 0x1c8]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x2c]
push eax
push ecx
mov dword [esp + 0x144], edx
call fcn.10042e50
add esp, 0x18
test byte [esp + 0x1be], 0x20
mov dword [esp + 0x14], eax
jne 0x1004ea18
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x1c4]
cmp eax, dword [esp + 0x128]
jne 0x10050e59
cmp ecx, dword [esp + 0x12c]
je 0x1004ea18
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x1004ea03.12
mov eax, dword [edi + 0x30]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x10050ed5
mov edi, dword [esp + 0x6c]
mov ecx, dword [edi]
lea edx, [esp + 0x1c]
push edx
mov edx, dword [edi + 4]
push 0
push edx
push ecx
push 0
push eax
mov dword [esp + 0x34], 0
call fcn.10042e50
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 4]
add esp, 0x18
test eax, eax
sete dl
mov dword [esi + 0xc], ecx
mov byte [esi + 0x11], dl
mov byte [esi + 0x14], 0
mov dword [esi + 0x5c], 0
mov byte [esi + 0x17], 0
test eax, eax
je 0x10050ecd
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov dword [esi + 0x58], eax
jmp case.0x1004ea03.12
cmp byte [esi + 0x15], 0
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov dword [esi + 0x58], 0
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 0x48]
mov dword [esi], ecx
mov edx, dword [eax + 0x4c]
mov dword [esi + 4], edx
mov eax, dword [edi + 0x30]
mov eax, dword [eax + ebx*4]
add dword [eax + 0x48], 1
mov edx, 0xbf04
adc dword [eax + 0x4c], 0
mov cx, word [esi + 0x1c]
and cx, dx
or cx, 4
mov word [esi + 0x1c], cx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + eax*4]
xor ecx, ecx
mov dword [esp + 0x58], eax
mov eax, dword [eax]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
cmp eax, ecx
je 0x10051177
mov dword [esp + 0x44], ecx
mov dword [esp + 0x1c], ecx
call fcn.10046c30
and al, 3
cmp al, 1
jne 0x10050867
mov eax, dword [esp + 0x58]
cmp byte [eax + 0x13], 0
jne 0x10051093
mov eax, dword [eax]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x60], edx
or edx, ecx
mov dword [esp + 0x64], ecx
jne 0x10050fe6
lea edi, [esp + 0x44]
call fcn.10042e10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
xor edi, edi
cmp dword [esp + 0x44], edi
je 0x10050fb3
mov dword [esp + 0x60], 1
mov dword [esp + 0x64], edi
jmp 0x10050fe6
mov esi, dword [esp + 0x58]
lea eax, [esp + 0x60]
push eax
mov eax, dword [esi]
call fcn.10042350
add esp, 4
cmp dword [esp + 0x60], 0xffffffff
jne 0x10050fdd
cmp dword [esp + 0x64], 0x7fffffff
jne 0x10050fdd
mov byte [esi + 0x13], 1
jmp 0x10050fe6
add dword [esp + 0x60], 1
adc dword [esp + 0x64], edi
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x1005104c
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0x4c]
lea ecx, [ebx + ebx*4]
lea esi, [eax + ecx*8]
call fcn.10049200
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x10051015
cmp ecx, 0x7fffffff
je 0x10052957
mov edx, dword [esp + 0x58]
cmp byte [edx + 0x13], 0
jne 0x10052957
mov edx, dword [esp + 0x64]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x10051043
jl 0x10051039
cmp dword [esp + 0x60], eax
jae 0x10051043
mov edx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov dword [esi + 4], edx
mov ecx, dword [esp + 0x64]
cmp ecx, 0x7fffffff
jg 0x1005106d
jl 0x10051061
cmp dword [esp + 0x60], 0xffffffff
jae 0x1005106d
mov eax, dword [esp + 0x60]
add eax, 1
adc ecx, 0
jmp 0x10051071
xor eax, eax
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x5c]
mov esi, dword [ecx]
push eax
call fcn.100420f0
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x34]
add esp, 8
cmp byte [eax + 0x13], 0
je 0x10051164
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x30], 0
lea ecx, [ecx]
cmp dword [esp + 0x30], 0
jne 0x100510d7
mov eax, ebx
and eax, 0xffffff
xor ecx, ecx
cmp eax, ebx
jne 0x100510d7
cmp ecx, edi
jne 0x100510d7
add ebx, 1
adc edi, ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
jmp 0x10051107
lea edx, [esp + 0x60]
push edx
push 8
call fcn.10036200
mov ebx, dword [esp + 0x68]
add esp, 8
cmp dword [esp + 0x30], 5
jge 0x10051103
and ebx, 0xffffff
xor edi, edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
jmp 0x10051107
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x1005112f
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
lea ecx, [esp + 0x44]
push ecx
push 0
push edi
push ebx
push 0
push eax
call fcn.10042e50
add esp, 0x18
inc dword [esp + 0x30]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x30], 0x64
jge 0x10051148
cmp dword [esp + 0x1c], 0
jne 0x10051148
cmp dword [esp + 0x44], 0
je 0x100510b0
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x18]
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], edi
jne 0x10051164
cmp dword [esp + 0x44], 0
je 0x10052957
mov eax, dword [esp + 0x58]
mov byte [eax + 0x11], 0
mov byte [eax + 0x17], 0
mov dword [eax + 0x5c], 0
mov cx, word [esi + 0x1c]
mov eax, dword [esp + 0x60]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [esi + 0x1c], cx
mov ecx, dword [esp + 0x64]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x1004ea03.12
test byte [ebx + 3], 1
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 0x4c]
mov esi, dword [edi + 0x30]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 4]
mov esi, dword [esi + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x48], esi
mov dword [esp + 0xbc], ecx
je 0x100511e2
inc dword [edi + 0x84]
test byte [ebx + 3], 2
je 0x100511f3
mov ecx, dword [eax]
mov dword [edx + 0x30], ecx
mov eax, dword [eax + 4]
mov dword [edx + 0x34], eax
mov edi, dword [esp + 0x24]
movzx eax, word [edi + 0x1c]
xor ecx, ecx
test al, 1
je 0x10051207
mov dword [edi + 0x14], ecx
mov dword [edi + 0x18], ecx
cmp byte [esi + 0x15], 0
je 0x100512d7
cmp byte [esi + 0x16], 0
jne 0x10051230
mov ecx, dword [esi + 0x30]
mov edx, dword [esp + 0x18]
push ecx
push edx
call fcn.100349a0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
add esp, 8
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x2c], eax
mov ecx, dword [edi + 0x14]
cmp ecx, dword [edi + 0x24]
je 0x100512a6
cmp byte [esi + 0x16], 0
jne 0x100512a6
add eax, 2
push eax
call fcn.10034620
add esp, 4
mov dword [esi + 0x30], eax
test eax, eax
je 0x1004ee0d
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [ecx + 0x14]
push edx
push eax
call fcn.100b2fc0
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
mov byte [eax + ecx], 0
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x2c]
mov byte [edx + eax + 1], 0
mov edx, dword [esp + 0x24]
add esp, 0xc
mov byte [esi + 0x14], 0
jmp 0x10051350
cmp byte [esi + 0x16], 0
mov dword [esi + 0x30], ecx
jne 0x100512ce
mov cx, word [edi + 0x1c]
mov eax, 0xfbff
and cx, ax
mov eax, 0x1000
or cx, ax
mov word [edi + 0x1c], cx
mov dword [edi + 0x24], 0
mov byte [esi + 0x14], 0
jmp 0x10051350
test byte [ebx + 3], 0x10
je 0x100512e6
mov edx, dword [esi + 0x58]
mov dword [esp + 0x38], edx
jmp 0x100512ea
mov dword [esp + 0x38], ecx
test eax, 0x4000
je 0x100512f9
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
jmp 0x100512fd
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x48]
mov esi, dword [edi]
push 0
push 0
call fcn.100420f0
movzx ecx, byte [ebx + 3]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
and ecx, 8
push ecx
mov ecx, dword [eax + 0x18]
push edx
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0xcc]
push edx
mov edx, dword [edi]
push eax
mov eax, dword [esp + 0x54]
push ecx
push 0
push edx
call fcn.10045d00
mov edx, dword [esp + 0x40]
add esp, 0x28
mov dword [esp + 0x14], eax
mov esi, edi
cmp dword [esp + 0x14], 0
mov byte [esi + 0x11], 0
mov byte [esi + 0x17], 0
mov dword [esi + 0x5c], 0
jne case.0x1004ea03.12
mov edx, dword [edx + 0xbc]
test edx, edx
je case.0x1004ea03.12
mov eax, dword [ebx + 0x10]
test eax, eax
je case.0x1004ea03.12
mov ecx, dword [esp + 0xbc]
mov esi, dword [esi + 4]
push ecx
mov ecx, dword [esp + 0xbc]
push ecx
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esi + esi*2]
mov esi, dword [eax + 8]
mov ecx, dword [esi + ecx*8]
mov eax, dword [eax + 0xb8]
push ecx
mov cl, byte [ebx + 3]
and cl, 4
movzx ecx, cl
neg ecx
sbb ecx, ecx
and ecx, 5
add ecx, 0x12
push ecx
push eax
call edx
add esp, 0x18
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov esi, dword [edi + 0x30]
mov edi, dword [esi + ecx*4]
xor eax, eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
cmp dword [edx + 0xbc], eax
je 0x10051404
cmp dword [ebx + 0x10], eax
je 0x10051404
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], eax
call fcn.1004c0e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov esi, dword [edi]
push eax
push eax
call fcn.100420f0
mov ecx, dword [edi]
add esp, 8
call fcn.10045f10
mov dword [esp + 0x14], eax
mov dword [edi + 0x5c], 0
test eax, eax
jne 0x10051478
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0xbc]
test ecx, ecx
je 0x10051478
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x10051478
mov esi, dword [esp + 0xdc]
mov edi, dword [edi + 4]
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xb8]
push eax
lea eax, [edi + edi*2]
mov eax, dword [esi + eax*8]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebx + 8], 1
je case.0x1004ea03.12
mov eax, dword [esp + 0x4c]
inc dword [eax + 0x84]
jmp case.0x1004ea03.12
cmp dword [ebx + 4], 0
je 0x100514a3
mov eax, dword [edi + 0x84]
add dword [edx + 0x48], eax
mov dword [edx + 0x44], eax
mov dword [edi + 0x84], 0
jmp case.0x1004ea03.12
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0x4c]
mov eax, dword [eax + 0x30]
lea ecx, [edx + ecx*8]
mov edx, dword [ebx + 4]
mov edi, dword [eax + edx*4]
mov ebx, dword [edi]
mov dword [esp + 0x2c], ecx
call fcn.1004c0e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
cmp byte [edi + 0x19], 0
mov eax, ebx
je 0x10051529
lea ecx, [esp + 0x168]
push ecx
call fcn.10042350
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x50]
cdq
add esp, 4
cmp dword [esp + 0x16c], edx
jg 0x1004ec6d
mov esi, dword [esp + 0x168]
jl 0x10051520
cmp esi, eax
ja 0x1004ec6d
mov dword [esp + 0xd4], esi
jmp 0x1005154d
lea edx, [esp + 0xd4]
push edx
call fcn.100423b0
mov esi, dword [esp + 0xd8]
mov eax, dword [esp + 0x1c]
add esp, 4
cmp esi, dword [eax + 0x50]
jg 0x1004ec6d
mov ecx, dword [esp + 0x2c]
push 0
push esi
push ecx
call fcn.10048bd0
add esp, 0xc
test eax, eax
jne 0x1004ee0d
mov eax, dword [esp + 0x2c]
mov dx, word [eax + 0x1c]
mov ecx, 0xbf10
and dx, cx
or dx, 0x10
mov dword [eax + 0x18], esi
mov word [eax + 0x1c], dx
cmp byte [edi + 0x19], 0
je 0x100515a8
mov edx, dword [eax + 0x14]
push edx
push esi
push 0
mov eax, ebx
call fcn.10042900
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [ecx + 0x1f], 1
jmp case.0x1004ea03.12
mov eax, dword [eax + 0x14]
push eax
push esi
push 0
push ebx
call fcn.10042950
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x14], eax
mov byte [ecx + 0x1f], 1
jmp case.0x1004ea03.12
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x30]
mov esi, dword [eax + edx*4]
cmp byte [esi + 0x14], 0
jne case.0x1004ea03.12
cmp byte [esi + 0x17], 0
je 0x100515fb
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x98], ecx
mov edx, dword [esi + 0x24]
mov dword [esp + 0x9c], edx
jmp 0x10051697
cmp byte [esi + 0x15], 0
je 0x1005161a
mov eax, dword [esi + 0x38]
mov dword [esp + 0x98], eax
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x9c], ecx
jmp 0x10051697
mov eax, dword [esi + 0x50]
test eax, eax
je 0x10051657
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [esp + 0x98]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov ecx, dword [edi + 0x74]
mov edx, dword [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x24], eax
call fcn.100349a0
mov eax, dword [esi + 8]
mov dword [edi + 0x74], eax
add esp, 0x10
mov dword [esi + 8], 0
jmp 0x10051697
mov edi, esi
call fcn.1004c0e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
cmp byte [esi + 0x11], al
je 0x10051685
mov ecx, dword [esi + 8]
mov dword [esp + 0x98], ecx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x9c], edx
jmp 0x10051697
lea eax, [esp + 0x98]
push eax
mov eax, dword [esi]
call fcn.10042350
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [eax], ecx
mov cx, word [eax + 0x1c]
mov dword [eax + 4], edx
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x14], 1
mov byte [eax + 0x11], 0
mov eax, dword [eax]
test eax, eax
je case.0x1004ea03.12
mov esi, eax
call fcn.1003f2f0
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebx + 4]
mov esi, dword [ecx + edx*4]
mov eax, dword [esi]
lea edi, [esp + 0x134]
call fcn.10042e10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x134]
mov byte [esi + 0x14], al
mov byte [esi + 0x17], 0
mov byte [esi + 0x11], 0
mov dword [esi + 0x5c], 0
test eax, eax
je case.0x1004ea03.12
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x1004ea03.12
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
inc dword [edi + 0xc8]
mov eax, dword [edi + 0x30]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x10051788
lea edi, [esp + 0xd0]
call fcn.10042de0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xd0]
test eax, eax
sete cl
mov byte [esi + 0x12], cl
mov byte [esi + 0x17], 0
mov dword [esi + 0x5c], 0
mov byte [esi + 0x11], 0
jmp 0x10051794
mov eax, 1
mov dword [esp + 0xd0], eax
mov byte [esi + 0x14], al
test eax, eax
je case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov edx, dword [edx + 0xd8]
test edx, edx
jne 0x100529bd
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov esi, dword [ecx + eax*4]
test esi, esi
je case.0x1004ea03.12
mov eax, dword [esi]
mov dword [esp + 0xa4], 1
cmp byte [ebx], 0x6a
jne 0x100517ed
lea edx, [esp + 0xa4]
push edx
push eax
call fcn.10043300
jmp 0x100517fb
lea ecx, [esp + 0xa4]
push ecx
push eax
call fcn.10043490
mov dl, byte [esp + 0xac]
add esp, 8
mov byte [esi + 0x14], dl
mov dword [esi + 0x5c], 0
cmp dword [esp + 0xa4], 0
mov dword [esp + 0x14], eax
jne 0x1005183d
mov eax, dword [ebx + 8]
mov bl, byte [ebx + 3]
dec eax
mov dword [esp + 0x28], eax
test bl, bl
je 0x1005183d
movzx eax, bl
inc dword [edi + eax*4 + 0xc0]
lea edi, [edi + eax*4 + 0xc0]
mov byte [esi + 0x11], 0
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov edi, dword [edx + ecx*4]
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
test eax, eax
je case.0x1004ea03.12
mov ecx, dword [esp + 0x50]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x1005187f
mov esi, ecx
call fcn.10048d70
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
test byte [ebx + 3], 0x10
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x18]
mov esi, dword [ecx + 0x14]
je 0x10051894
mov ecx, dword [edi + 0x58]
jmp 0x10051896
xor ecx, ecx
mov edx, dword [ebx + 0xc]
push edx
push 0
push 0
cdq
push 0x100d9e96
push edx
push eax
mov eax, dword [esp + 0x34]
push esi
push eax
mov eax, ecx
call fcn.10045d00
add esp, 0x20
mov dword [esp + 0x14], eax
mov dword [edi + 0x5c], 0
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + ecx*4]
mov esi, dword [eax]
mov dword [esp + 0x1c], eax
test esi, esi
je case.0x1004ea03.12
mov eax, dword [eax + 0x40]
mov cx, word [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x248], eax
mov word [esp + 0x24c], cx
mov ecx, dword [edi + 0x4c]
xor edx, edx
lea eax, [ebx + ebx*4]
mov word [esp + 0x24e], dx
lea edx, [ecx + eax*8]
lea eax, [esp + 0x11c]
push eax
push 0
push 0
push 0
lea ecx, [esp + 0x258]
push ecx
push esi
mov dword [esp + 0x270], edx
call fcn.10042e50
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005194b
cmp dword [esp + 0x11c], eax
jne 0x1005194b
mov ecx, esi
call fcn.10045f10
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x1c]
mov dword [edx + 0x5c], 0
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov edi, dword [ecx + eax*4]
mov esi, dword [edi]
test esi, esi
je case.0x1004ea03.12
call fcn.1004c0e0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
cmp byte [edi + 0x14], al
jne case.0x1004ea03.12
lea edx, [esp + 0x158]
push edx
mov eax, esi
call fcn.1004c9c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x1005295f
mov eax, dword [esp + 0x2c]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
mov edx, dword [esp + 0x15c]
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x158]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov eax, dword [ecx + eax*4]
cmp dword [eax], 0
je case.0x1004ea03.12
cmp byte [ebx + 3], 0
mov edx, dword [eax + 0x40]
mov cx, word [ebx + 0x10]
mov dword [esp + 0x1e8], edx
mov word [esp + 0x1ec], cx
je 0x10051a13
mov edx, 0xc
mov word [esp + 0x1ee], dx
jmp 0x10051a20
mov ecx, 4
mov word [esp + 0x1ee], cx
mov ecx, dword [ebx + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 0x4c]
lea edx, [ecx + edx*8]
lea ecx, [esp + 0x90]
mov dword [esp + 0x1f8], edx
push ecx
lea edx, [esp + 0x1ec]
push edx
call fcn.1004cae0
add esp, 8
cmp byte [ebx], 0x29
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x90]
jne 0x10051a5f
neg eax
jmp 0x10051a60
inc eax
mov dword [esp + 0x90], eax
test eax, eax
jle case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov edx, dword [edx + 0x8c]
xor eax, eax
test edx, edx
je 0x10051ac9
jmp 0x10051a90
cmp dword [edx + 0x44], 0xbdf20da3
jne 0x10051aa9
cmp byte [edx + 0x80], 2
jae 0x10051aa9
cmp dword [edx + 0x60], 0
jl 0x10051aa9
inc eax
mov edx, dword [edx + 8]
test edx, edx
jne 0x10051a90
cmp eax, 1
jle 0x10051ac9
mov dword [esp + 0x14], 6
mov dword [edi + 0x68], 2
jmp case.0x1004ea03.12
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
lea edi, [eax + eax*2]
add edi, edi
lea eax, [esp + 0x8c]
push eax
mov eax, dword [edx + 8]
add edi, edi
add edi, edi
mov eax, dword [eax + edi + 4]
push ecx
call fcn.100469f0
mov dx, word [esi + 0x1c]
mov ecx, eax
mov eax, 0xbf04
and dx, ax
mov eax, dword [esp + 0x94]
or dx, 4
mov word [esi + 0x1c], dx
cdq
add esp, 8
mov dword [esp + 0x14], ecx
mov dword [esi], eax
mov dword [esi + 4], edx
test ecx, ecx
jne case.0x1004ea03.12
mov edx, dword [esp + 0x8c]
test edx, edx
je case.0x1004ea03.12
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 8]
add esi, edi
mov edi, dword [ebx + 4]
call fcn.100606b0
jmp case.0x1004ea03.12
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x38]
and edx, eax
mov eax, dword [ebx + 8]
push edx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x40], 0
mov edx, dword [ecx + edx*8 + 4]
push edx
call fcn.10046730
add esp, 0xc
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x14], eax
je case.0x1004ea03.12
mov eax, dword [esp + 0x38]
add dword [edi + 0x84], eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jle case.0x1004ea03.12
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x1004ea03.12
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
mov ebx, dword [ebx + 4]
xor ecx, ecx
cmp byte [esp + 0x37], 0x35
lea eax, [ebx + ebx*2]
setne cl
lea eax, [edx + eax*8]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], 0
dec ecx
and ecx, 3
add ecx, 2
push ecx
lea ecx, [esp + 0x28]
push ecx
call fcn.10046540
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
add esp, 8
cdq
mov dword [esi + 4], edx
mov dx, word [esi + 0x1c]
mov dword [esi], eax
mov eax, 0xbf04
and dx, ax
or dx, 4
mov word [esi + 0x1c], dx
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x18]
push esi
mov dword [esp + 0x20], ecx
call fcn.1003ec80
mov eax, dword [esp + 0x20]
add esp, 4
cmp dword [ebx + 8], 0
jne 0x10051c46
mov ecx, dword [esi + 8]
lea edx, [eax + eax*2]
mov edx, dword [ecx + edx*8 + 0x14]
test byte [edx + 0x3a], 1
je 0x10051cec
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x10051c55
mov ecx, str.sqlite_master
mov edx, dword [ebx + 4]
mov dword [esp + 0x14c], edx
mov edx, dword [ebx + 0x10]
push edx
push ecx
mov ecx, dword [esi + 8]
add edi, 0x74
lea eax, [eax + eax*2]
mov dword [esp + 0x150], esi
mov dword [esp + 0x158], edi
mov edx, dword [ecx + eax*8]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push esi
call fcn.10035f40
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x10051c9d
mov dword [esp + 0x14], 7
jmp 0x10051cec
push 0
lea eax, [esp + 0x14c]
push eax
push fcn.1006d3a0
push edi
push esi
mov byte [esi + 0x80], 1
mov dword [esp + 0x168], 0
call fcn.1006a7f0
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10051cdb
mov ecx, dword [esp + 0x154]
mov dword [esp + 0x14], ecx
push edi
push esi
call fcn.100349a0
add esp, 8
mov byte [esi + 0x80], 0
push esi
call fcn.1003ed60
add esp, 4
cmp dword [esp + 0x14], 7
je 0x1004ee0d
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x18]
call fcn.1005cab0
mov dword [esp + 0x14], eax
jmp case.0x1004ea03.12
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push edx
call fcn.1005eab0
add esp, 4
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
call fcn.1005e300
add esp, 4
jmp case.0x1004ea03.12
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.100778e0
add esp, 4
jmp case.0x1004ea03.12
mov eax, dword [ebx + 8]
mov esi, dword [esp + 0x18]
lea ecx, [eax*4 + 4]
mov dword [esp + 0x38], eax
call fcn.10034ba0
mov dword [esp + 0x24], eax
test eax, eax
je 0x1004ee0d
mov ecx, dword [ebx + 0xc]
mov eax, dword [edi + 0x4c]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea edi, [eax + edx*8]
xor esi, esi
lea eax, [eax + ecx*8]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x38], esi
jle 0x10051dcc
mov dword [esp + 0x1c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
call fcn.10049070
mov edx, dword [esp + 0x24]
add dword [esp + 0x1c], 0x28
mov dword [edx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x38]
jl 0x10051db0
mov eax, dword [esp + 0x24]
mov dword [eax + esi*4], 0
mov edx, dword [edi]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x130]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push ecx
push eax
movzx eax, byte [ebx + 3]
lea edx, [eax + eax*2]
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*8 + 4]
call fcn.100478a0
mov ecx, dword [esp + 0x34]
push ecx
push esi
mov dword [esp + 0x34], eax
call fcn.100349a0
mov ebx, dword [esp + 0x148]
mov esi, dword [esp + 0x38]
mov eax, ebx
cdq
add esp, 0x18
sub dword [edi], eax
sbb dword [edi + 4], edx
call fcn.10049310
test ebx, ebx
je 0x10051e4e
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1004ee0d
push fcn.10034920
push 1
push 0xffffffffffffffff
push eax
mov edx, esi
push edx
call fcn.100495d0
add esp, 0x14
movzx ecx, byte [esp + 0x54]
mov eax, dword [esp + 0x20]
call fcn.10048bb0
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov edi, dword [edi + 0x4c]
mov ebx, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 0x20
lea esi, [edi + eax*8]
lea ecx, [ebx + ebx*4]
lea edi, [edi + ecx*8]
jne 0x10051e90
push esi
call fcn.100493e0
add esp, 4
test byte [esi + 0x1c], 0x20
je 0x1004ee0d
mov edx, dword [edi + 4]
mov eax, dword [edi]
mov edi, dword [esi]
push edx
push eax
call fcn.1003aaa0
add esp, 8
jmp case.0x1004ea03.12
mov ecx, dword [edx + 0xd8]
test ecx, ecx
jne 0x100529bd
mov ecx, dword [ebx + 4]
mov eax, dword [edi + 0x4c]
lea edx, [ecx + ecx*4]
test byte [eax + edx*8 + 0x1c], 0x20
mov ecx, dword [ebx + 0xc]
lea edi, [eax + edx*8]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esp + 0x2c], edx
je 0x10051f07
mov eax, dword [edi]
lea esi, [esp + 0x138]
call fcn.1003aeb0
test eax, eax
je 0x10051f07
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
mov esi, dword [esp + 0x2c]
push eax
push ecx
call fcn.10049340
add esp, 8
jmp case.0x1004ea03.12
mov esi, edi
call fcn.10049310
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
test byte [ecx + 0x1c], 0x20
mov esi, dword [ebx + 0x10]
jne 0x10051f3b
mov edi, dword [esp + 0x20]
push edi
call fcn.100493e0
add esp, 4
test byte [edi + 0x1c], 0x20
je 0x1004ee0d
test esi, esi
je 0x10051f7a
js 0x10051f48
mov eax, esi
and eax, 0xf
jmp 0x10051f4d
mov eax, 0xff
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x24]
push ecx
push eax
mov eax, dword [edx]
call fcn.1003af30
add esp, 0xc
test eax, eax
je 0x10051f78
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
test esi, esi
js case.0x1004ea03.12
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
mov edi, dword [eax]
push ecx
push edx
call fcn.1003aaa0
add esp, 8
jmp case.0x1004ea03.12
mov ebx, dword [edi + 0x54]
lea eax, [ebx + 1]
mov dword [edi + 0x54], eax
cmp ebx, dword [edi + 0x58]
jl 0x10051fd6
mov ecx, dword [esp + 0x4c]
mov edi, dword [ecx + 0x5c]
mov esi, dword [esp + 0x18]
mov dword [ecx + 0x58], eax
lea eax, [ebx + 1]
shl eax, 4
call fcn.10034cd0
mov ecx, dword [esp + 0x4c]
mov dword [ecx + 0x5c], eax
test eax, eax
je 0x1004ee0d
mov edi, ecx
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x30]
shl ebx, 4
add ebx, dword [edi + 0x5c]
mov dword [ebx], edx
mov eax, dword [eax + 0x34]
mov dword [ebx + 4], eax
mov ecx, dword [edi + 0x84]
mov dword [ebx + 8], ecx
jmp case.0x1004ea03.12
dec dword [edi + 0x54]
mov eax, dword [edi + 0x54]
shl eax, 4
add eax, dword [edi + 0x5c]
mov ecx, dword [eax]
mov dword [edx + 0x30], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 0x34], ecx
mov edx, dword [eax + 8]
mov dword [edi + 0x84], edx
jmp case.0x1004ea03.12
mov edi, dword [esp + 0x20]
mov esi, edi
call fcn.10049200
mov esi, dword [esp + 0x50]
call fcn.10049200
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp dword [edi + 4], esi
jg case.0x1004ea03.12
jl 0x1005204c
mov edx, edi
cmp dword [edx], eax
jae case.0x1004ea03.12
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x1004ea03.12
cmp dword [ecx + 4], 0
jl case.0x1004ea03.12
jg 0x1005206f
cmp dword [ecx], 0
jbe case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
cmp dword [ecx + 4], 0
jg case.0x1004ea03.12
jl 0x10052091
cmp dword [ecx], 0
jae case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov edx, dword [edi + 0x24]
movzx esi, byte [ebx + 3]
mov eax, dword [ebx + 8]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x1c], edx
lea eax, [eax + eax*4]
xor edx, edx
lea ecx, [ecx + eax*8]
test esi, esi
jle 0x100520e7
mov eax, dword [esp + 0x1c]
mov dword [eax + edx*4], ecx
call fcn.1004e550
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x100520d3
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x200], ecx
mov dword [esp + 0x230], eax
inc dword [eax + 0x18]
xor eax, eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
mov eax, dword [esp + 0x200]
mov ecx, 1
mov word [esp + 0x224], cx
mov dword [esp + 0x218], edx
test byte [eax + 3], 8
je 0x1005215b
mov ecx, dword [ebx - 4]
mov dword [esp + 0x238], ecx
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x204]
push esi
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0x234], 0
je 0x100521ac
push 1
lea eax, [esp + 0x20c]
call fcn.10049b00
add esp, 4
push eax
mov eax, dword [esp + 0x1c]
push 0x100ec558
lea esi, [edi + 0x74]
call fcn.10034db0
mov eax, dword [esp + 0x23c]
add esp, 8
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x208]
push ecx
call fcn.10048fa0
add esp, 4
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea esi, [eax + edx*8]
mov eax, dword [ebx + 0x10]
mov ecx, esi
mov dword [esp + 0x1c], esi
call fcn.10048ec0
mov dword [esp + 0x14], eax
cmp eax, 1
jne 0x10052208
push eax
mov eax, esi
call fcn.10049b00
add esp, 4
push eax
mov eax, dword [esp + 0x1c]
push 0x100ec558
lea esi, [edi + 0x74]
call fcn.10034db0
mov esi, dword [esp + 0x24]
add esp, 8
movzx ecx, byte [esp + 0x54]
mov eax, esi
call fcn.10048bb0
mov ecx, esi
call fcn.10049490
test eax, eax
jne 0x1004ec6d
jmp case.0x1004ea03.12
cmp byte [edx + 0x1c], 0
mov eax, dword [esp + 0x18]
jne 0x1005224f
push str.cannot_VACUUM_from_within_a_transaction
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 4
mov dword [esp + 0x14], 1
jmp case.0x1004ea03.12
call fcn.1007ae10
mov dword [esp + 0x14], eax
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*8 + 4]
push eax
call fcn.100418d0
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, 0x65
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], 0
jmp case.0x1004ea03.12
cmp dword [ebx + 4], 0
jne 0x100522ad
mov eax, dword [esp + 0x18]
call fcn.1004cb90
jmp case.0x1004ea03.12
mov byte [edi + 0x7e], 1
jmp case.0x1004ea03.12
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov cl, byte [ebx + 0xc]
push edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
call fcn.10047f30
add esp, 4
mov dword [esp + 0x14], eax
cmp al, 6
jne case.0x1004ea03.12
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [esp + 0x1c]
push str.database_table_is_locked:__s
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 8
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 0x10]
mov ecx, dword [esp + 0x18]
push ecx
mov eax, ebx
call fcn.1007c170
add esp, 4
mov dword [esp + 0x14], eax
test ebx, ebx
je case.0x1004ea03.12
mov edx, dword [edi + 0x74]
mov eax, dword [esp + 0x18]
push edx
push eax
call fcn.100349a0
mov ecx, dword [ebx + 8]
mov dword [edi + 0x74], ecx
add esp, 8
mov dword [ebx + 8], 0
jmp case.0x1004ea03.12
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
add edi, 0x74
push edi
push edx
call fcn.1007bcd0
add esp, 8
mov dword [esp + 0x14], eax
jmp case.0x1004ea03.12
mov esi, dword [esp + 0x18]
mov byte [edi + 0x80], 2
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
call fcn.1007bf40
add esp, 4
mov dword [esp + 0x14], eax
mov byte [edi + 0x80], 0
jmp case.0x1004ea03.12
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x30], 0
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x30]
push ecx
push esi
mov dword [esp + 0x24], eax
call edx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x74]
push eax
push ecx
call fcn.100349a0
mov edx, dword [esi + 8]
add esp, 0x10
cmp dword [esp + 0x14], 0
mov dword [edi + 0x74], edx
mov dword [esi + 8], 0
jne case.0x1004ea03.12
mov eax, dword [esp + 0x30]
push 0
mov dword [eax], esi
mov ecx, dword [ebx + 4]
push 0xffffffffffffffff
push 0
push ecx
mov eax, edi
call fcn.1004e580
add esp, 0x10
test eax, eax
je 0x10052408
mov edx, dword [esp + 0x30]
mov dword [eax + 0x50], edx
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [eax + 0x54], ecx
jmp case.0x1004ea03.12
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov byte [edx + 0x1e], 1
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp case.0x1004ea03.12
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [edi + 0x30]
mov ecx, dword [ecx + edx*4]
mov dword [esp + 0x74], ecx
mov ecx, dword [ecx + 0x50]
mov esi, dword [ecx]
mov edx, dword [esi]
mov dword [esp + 0x48], edx
mov edx, dword [eax]
mov dword [esp + 0x44], edx
mov edx, dword [edi + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
xor edx, edx
mov dword [esp + 0x30], ecx
test ecx, ecx
jle 0x10052491
add eax, 0x50
mov dword [esp + 0x1c], eax
jmp 0x10052475
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov dword [ecx + edx*4], eax
mov ecx, eax
call fcn.1004e550
mov ecx, dword [esp + 0x30]
add dword [esp + 0x1c], 0x28
inc edx
cmp edx, ecx
jl 0x10052471
inc dword [esi + 4]
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x4c]
mov byte [edi + 0x80], 1
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [eax + 0x20]
push edx
call ecx
mov edx, dword [edi + 0x74]
add esp, 0x14
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
push edx
push eax
mov byte [edi + 0x80], 0
call fcn.100349a0
mov ecx, dword [esi + 8]
mov dword [edi + 0x74], ecx
mov ecx, dword [esp + 0x20]
add esp, 8
mov eax, esi
mov dword [esi + 8], 0
call fcn.1007b280
cmp dword [esp + 0x14], 0
jne 0x10052513
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
je 0x10052513
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x74]
mov byte [edx + 0x14], 0
jmp case.0x1004ea03.12
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x30]
mov ecx, dword [ecx + eax*4]
cmp byte [ecx + 0x14], 0
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x1c], edx
je 0x1005254f
mov esi, edx
call fcn.10049310
jmp case.0x1004ea03.12
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x50]
mov esi, dword [ecx]
mov edx, dword [esi]
push 0x40
lea eax, [esp + 0x264]
push 0
push eax
mov dword [esp + 0x30], edx
call fcn.100b5b30
mov ecx, dword [esp + 0x28]
add esp, 0xc
push ecx
lea eax, [esp + 0x26c]
call fcn.10049590
mov edx, dword [esp + 0x288]
mov eax, dword [ebx + 8]
and edx, 0xbf01
or edx, 1
add esp, 4
mov word [esp + 0x284], dx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [edx + 0x50]
lea ecx, [esp + 0x264]
push ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x74]
add esp, 0xc
push eax
push ecx
call fcn.100349a0
mov edx, dword [esi + 8]
movzx ecx, byte [esp + 0x5c]
mov dword [edi + 0x74], edx
lea eax, [esp + 0x270]
mov dword [esi + 8], 0
call fcn.10048bb0
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x270]
push eax
mov eax, esi
call fcn.10049590
add esp, 0xc
mov ecx, esi
call fcn.10049490
test eax, eax
jne 0x1004ec6d
jmp case.0x1004ea03.12
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + ecx*4]
cmp byte [eax + 0x14], 0
mov dword [esp + 0x1c], eax
jne case.0x1004ea03.12
mov ecx, eax
mov eax, dword [ecx + 0x50]
mov esi, dword [eax]
mov eax, dword [esi]
inc dword [esi + 4]
mov byte [edi + 0x80], 1
mov ecx, dword [ecx + 0x50]
mov edx, dword [eax + 0x24]
push ecx
mov dword [esp + 0x3c], eax
call edx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x74]
add esp, 4
push eax
push ecx
mov byte [edi + 0x80], 0
call fcn.100349a0
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x74], edx
add esp, 8
mov eax, esi
mov dword [esi + 8], 0
call fcn.1007b280
cmp dword [esp + 0x14], 0
jne 0x100526a9
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x50]
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne case.0x1004ea03.12
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x1004ea03.12
mov esi, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov edx, dword [edi + 0x4c]
lea ecx, [ebx + ebx*4]
test byte [edx + ecx*8 + 0x1c], 0x12
lea ebx, [edx + ecx*8]
mov dword [esp + 0x1c], esi
jne 0x100526ec
movzx edi, byte [esp + 0x54]
mov esi, ebx
call fcn.10048e20
test eax, eax
jne 0x1004ee0d
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
inc dword [esi + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
push ecx
push esi
call edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x74]
push eax
push ebx
call fcn.100349a0
mov ecx, dword [esi + 8]
mov dword [edi + 0x74], ecx
add esp, 0x10
mov eax, esi
mov ecx, ebx
mov dword [esi + 8], 0
call fcn.1007b280
jmp case.0x1004ea03.12
mov esi, dword [ebx + 0x10]
mov eax, dword [esi]
cmp dword [eax + 0x34], 0
mov edx, dword [ebx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x38], edx
jne 0x1005274b
push str.read_only_table
jmp 0x1005050f
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x10052788
call fcn.1004e550
mov eax, dword [esp + 0x1c]
mov dword [edx + eax*4], ecx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
add ecx, 0x28
cmp dword [esp + 0x1c], eax
jl 0x1005276a
inc dword [esi + 4]
lea ecx, [esp + 0x140]
push ecx
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [edx + 0x34]
push esi
call eax
mov ecx, dword [edi + 0x74]
mov edx, dword [esp + 0x28]
push ecx
push edx
mov dword [esp + 0x2c], eax
call fcn.100349a0
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x30]
mov dword [edi + 0x74], eax
add esp, 0x18
mov eax, esi
mov dword [esi + 8], 0
call fcn.1007b280
cmp dword [ebx + 4], 0
je 0x100527f1
cmp dword [esp + 0x14], 0
jne 0x100527f1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x144]
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
inc dword [edi + 0x84]
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
lea eax, [ebx + ebx*2]
mov eax, dword [edx + eax*8 + 4]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
lea edx, [esp + 0x114]
push edx
call fcn.1003cd10
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne case.0x1004ea03.12
mov ecx, dword [esp + 0x2c]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x114]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x1004ea03.12
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x10052858
mov edi, ebx
jmp 0x1005285e
mov edi, dword [edi + 0xcc]
test edi, edi
je case.0x1004ea03.12
mov edx, dword [edx + 0x98]
test edx, edx
je case.0x1004ea03.12
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x9c]
push edi
push eax
call edx
add esp, 8
jmp case.0x1004ea03.12
mov dword [esp + 0x14], 9
jmp 0x1004ee31
lea eax, [esp + 0x180]
push eax
call fcn.10048fa0
add esp, 4
jmp 0x1004ee0d
mov dword [esp + 0x14], 0x14
jmp 0x1005295f
mov ecx, dword [esp + 0x28]
mov dword [edi + 0x60], ecx
mov byte [esi + 0x1c], 0
mov esi, 5
mov dword [edi + 0x64], esi
jmp 0x1004ee5a
mov esi, dword [esp + 0x18]
test ebx, ebx
je 0x100528ff
mov eax, esi
call fcn.100849a0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 0x18]
call fcn.10084340
mov esi, dword [edi + 0x64]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x1004ee5a
mov bl, byte [esp + 0x1c]
push edi
mov byte [esi + 0x1c], bl
call fcn.1004ba70
add esp, 4
cmp eax, 5
jne 0x100528e4
mov edx, dword [esp + 0x28]
mov al, 1
sub al, bl
mov dword [edi + 0x60], edx
mov byte [esi + 0x1c], al
mov esi, 5
mov dword [edi + 0x64], esi
jmp 0x1004ee5a
mov ecx, dword [esp + 0x28]
mov esi, 5
mov dword [edi + 0x60], ecx
mov dword [edi + 0x64], esi
jmp 0x1004ee5a
mov edx, dword [esp + 0x28]
mov esi, 5
mov dword [edi + 0x60], edx
mov dword [edi + 0x64], esi
jmp 0x1004ee5a
mov dword [esp + 0x14], 0xd
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x1e], 0
je 0x10052973
mov dword [esp + 0x14], 7
jmp 0x10052981
cmp dword [esp + 0x14], 0xc0a
je 0x1004ee31
mov eax, dword [esp + 0x14]
and eax, 0xff
cmp eax, 0x1a
ja 0x1005299a
mov eax, dword [eax*4 + 0x100e7810]
test eax, eax
jne 0x1005299f
mov eax, str.unknown_error
mov esi, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x1c]
push 0x100ec558
add esi, 0x74
call fcn.10034db0
add esp, 8
jmp 0x1004ee31
mov eax, 9
mov dword [esp + 0x14], eax
mov dword [edi + 0x64], eax
mov eax, dword [str.interrupted]
test eax, eax
jne 0x100529d7
mov eax, str.unknown_error
push eax
mov eax, dword [esp + 0x1c]
push 0x100ec558
lea esi, [edi + 0x74]
call fcn.10034db0
add esp, 8
jmp 0x1004ee31