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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x33c
mov eax, dword [0x100a5428]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
mov dword [ebp - 0xac], eax
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x14]
mov al, byte [edx + 0x39]
xor ecx, ecx
mov byte [ebp - 0xe8], al
lea eax, [esi + 0x94]
push edi
push eax
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x170], eax
call fcn.10025d30
add esp, 4
cmp dword [esi + 0x64], 7
je 0x10037f3d
mov eax, dword [ebp - 0xac]
mov ecx, esi
xor esi, esi
mov dword [ecx + 0x64], esi
mov dword [ecx + 0x78], esi
mov edx, dword [eax + 0xd8]
mov dword [eax + 0x19c], esi
test edx, edx
jne 0x1003c0f0
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0xbc], eax
jmp 0x10037890
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0x1e], 0
jne 0x10037f3d
mov eax, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xa4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x14]
lea edi, [eax + edx*4]
mov eax, dword [ecx + 0x100]
xor ebx, ebx
mov dword [ebp - 0xe4], edi
cmp eax, ebx
je 0x100378f5
mov edx, dword [ecx + 0x108]
cmp edx, dword [ebp - 0x144]
jne 0x100378ef
mov ecx, dword [ecx + 0x104]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x1003bf8b
mov dword [ebp - 0x144], ebx
inc dword [ebp - 0x144]
movzx edx, byte [edi]
mov cl, byte [edx + 0x10099c60]
test cl, 2
je 0x1003792b
mov eax, dword [edi + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [ebp - 0xb8], esi
call fcn.100317e0
mov edx, 1
mov word [esi + 0x1c], dx
mov dword [esi + 0x18], ebx
jmp 0x100379ac
test cl, 4
je 0x1003797c
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x4c]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [ebp - 0xb4], edx
test cl, 8
je 0x1003796c
mov edx, dword [edi + 8]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [ebp - 0xf0], edx
test cl, 0x20
je 0x100379ac
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [ebp - 0xb8], edx
jmp 0x100379ac
test cl, 0x10
je 0x100379ac
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
jmp 0x100379a6
test cl, 8
je 0x10037995
mov eax, dword [edi + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0xf0], edx
jmp 0x100379ac
test cl, 0x10
je 0x100379ac
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [ebp - 0xec], edx
mov al, byte [edi]
movzx esi, al
lea ecx, [esi - 1]
mov dword [ebp - 0xc4], esi
cmp ecx, 0x90
ja case.0x100379c6.12
jmp dword [ecx*4 + 0x1003c124]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
jne 0x1003c0e8
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
mov eax, dword [ebp - 0xbc]
lea ecx, [ecx + edx*8]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xbc], eax
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
mov edx, dword [ecx]
mov dword [ebp - 0xbc], edx
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
mov esi, dword [ecx]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xbc]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ebp - 0xbc], esi
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xec]
test byte [ecx + 0x1c], 1
je case.0x100379c6.12
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], ecx
mov edx, dword [edi + 8]
mov dword [eax + 0x68], edx
mov edi, dword [edi + 0x10]
test edi, edi
je 0x10037ab0
push edi
lea esi, [eax + 0x74]
mov eax, dword [ebp - 0xac]
push 0x1009d28c
call fcn.1001b7d0
add esp, 8
mov ebx, dword [ebp - 0xa4]
call fcn.10034500
mov esi, 5
cmp eax, esi
jne 0x1003bff7
mov dword [ebx + 0x64], esi
jmp 0x10037f96
mov ecx, dword [ebp - 0xb8]
mov edx, 4
mov word [ecx + 0x1c], dx
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb8]
mov ecx, 4
mov word [eax + 0x1c], cx
mov edi, dword [edi + 0x10]
mov edx, dword [edi]
mov dword [eax], edx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb8]
mov edx, 8
mov word [eax + 0x1c], dx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x100379c6.12
mov ecx, dword [edi + 0x10]
mov byte [edi], 0x1c
mov dword [ebp - 0xc8], ecx
call fcn.1001d5a0
cmp byte [ebp - 0xe8], 1
mov dword [edi + 4], eax
je 0x10037cc2
mov esi, dword [ebp - 0xb8]
test ecx, ecx
jne 0x10037b85
test byte [esi + 0x1c], 0x20
je 0x10037b68
mov edi, dword [esi]
call fcn.10021750
mov edi, dword [ebp - 0xe4]
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 0x10037c21
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10037b97
mov ecx, dword [eax + 0x50]
mov dword [ebp - 0xdc], ecx
jmp 0x10037ba1
mov dword [ebp - 0xdc], 0x3b9aca00
mov eax, dword [ebp - 0xdc]
xor ebx, ebx
test eax, eax
js 0x10037bbe
mov ecx, dword [ebp - 0xc8]
cmp byte [ebx + ecx], 0
je 0x10037bbe
inc ebx
cmp ebx, eax
jle 0x10037bb3
xor edx, edx
mov dword [ebp - 0xb0], 0x202
push esi
cmp edx, fcn.1001b3e0
jne 0x10037be3
call fcn.10031840
mov eax, dword [ebp - 0xc8]
mov dword [esi + 0x24], eax
jmp 0x10037bf8
call fcn.10031840
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0xb0], 0xa02
add esp, 4
mov dword [esi + 0x20], 0
mov dword [esi + 0x14], eax
cmp ebx, dword [ebp - 0xdc]
jg 0x10037c21
mov cx, word [ebp - 0xb0]
mov dword [esi + 0x18], ebx
mov word [esi + 0x1c], cx
mov word [esi + 0x1e], 0x103
movzx ecx, byte [ebp - 0xe8]
mov eax, esi
call fcn.10031420
test eax, eax
jne 0x10037f3d
mov eax, esi
call fcn.10031570
test eax, eax
jne 0x10037f3d
mov dx, word [esi + 0x1c]
mov dword [esi + 0x24], eax
mov eax, 0xfbff
and dx, ax
mov ecx, 0x800
or dx, cx
or bl, 0xff
mov word [esi + 0x1c], dx
cmp byte [edi + 1], bl
jne 0x10037c7c
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0xac]
push edx
push eax
call fcn.1001b3e0
add esp, 8
mov edx, dword [ebp - 0xac]
mov byte [edi + 1], bl
mov ecx, dword [esi + 0x14]
mov dword [edi + 0x10], ecx
mov esi, dword [esi + 0x18]
mov dword [edi + 4], esi
cmp esi, dword [edx + 0x50]
jle case.0x100379c6.12
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xac]
push str.string_or_blob_too_big
add esi, 0x74
call fcn.1001b7d0
mov dword [ebp - 0xa8], 0x12
jmp 0x10037f64
mov ecx, dword [ebp - 0xac]
cmp eax, dword [ecx + 0x50]
jg 0x10037c9a
mov eax, dword [ebp - 0xb8]
mov edx, 0xa02
mov word [eax + 0x1c], dx
mov ecx, dword [edi + 0x10]
mov dword [eax + 0x14], ecx
mov edx, dword [edi + 4]
mov cl, byte [ebp - 0xe8]
mov dword [eax + 0x18], edx
mov byte [eax + 0x1f], cl
jmp case.0x100379c6.12
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov esi, dword [ebp - 0xb8]
test ebx, ebx
jne 0x10037d39
test byte [esi + 0x1c], 0x20
je 0x10037d13
mov edi, dword [esi]
call fcn.10021750
mov dx, word [esi + 0x1c]
mov cl, byte [ebp - 0xe8]
mov eax, 0xbf01
and dx, ax
or dx, 1
mov word [esi + 0x1c], dx
mov byte [esi + 0x1e], 5
mov byte [esi + 0x1f], cl
jmp case.0x100379c6.12
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10037d45
mov eax, dword [eax + 0x50]
jmp 0x10037d4a
mov eax, 0x3b9aca00
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xc4], 0x10
test edi, edi
jns 0x10037d7e
xor edi, edi
test eax, eax
js 0x10037d74
mov cl, byte [edi + ebx + 1]
or cl, byte [edi + ebx]
je 0x10037d74
add edi, 2
cmp edi, eax
jle 0x10037d64
mov dword [ebp - 0xc4], 0x210
xor edx, edx
push esi
cmp edx, fcn.1001b3e0
jne 0x10037d96
call fcn.10031840
add esp, 4
mov dword [esi + 0x24], ebx
jmp 0x10037da8
call fcn.10031840
add esp, 4
or dword [ebp - 0xc4], 0x800
mov dword [esi + 0x20], 0
mov dword [esi + 0x14], ebx
cmp edi, dword [ebp - 0xb0]
jg 0x10037dce
mov ax, word [ebp - 0xc4]
mov dword [esi + 0x18], edi
mov word [esi + 0x1c], ax
mov word [esi + 0x1e], 0x104
mov cl, byte [ebp - 0xe8]
mov byte [esi + 0x1f], cl
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0xc8], edi
test edi, edi
jle case.0x100379c6.12
lea eax, [eax + eax*4 - 5]
lea edi, [ecx + ecx*4]
add edi, edi
add eax, eax
add edi, edi
add eax, eax
add edi, edi
add eax, eax
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xb0]
mov ebx, dword [edx + 0x38]
dec dword [ebp - 0xc8]
add ebx, eax
add eax, 0x28
mov ecx, ebx
mov dword [ebp - 0xb0], eax
call fcn.10031d90
test eax, eax
jne 0x10037c9a
mov eax, dword [ebp - 0xa4]
mov esi, dword [eax + 0x4c]
add esi, edi
mov dword [ebp - 0xb8], esi
add edi, 0x28
call fcn.100317e0
push 0x800
mov ecx, 1
push ebx
mov ebx, esi
mov word [esi + 0x1c], cx
call fcn.10031dc0
add esp, 8
cmp dword [ebp - 0xc8], 0
jg 0x10037e0c
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov eax, dword [edx + 0x4c]
mov edi, dword [edi + 8]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
lea ecx, [edi + edi*4]
mov dword [ebp - 0xb4], edx
lea edx, [eax + ecx*8]
mov dword [ebp - 0xb8], edx
test esi, esi
je case.0x100379c6.12
mov edi, dword [ebp - 0xb8]
mov eax, dword [edi + 0x24]
mov ebx, dword [ebp - 0xb4]
mov dword [ebp - 0xb0], eax
mov eax, edi
mov dword [edi + 0x24], 0
call fcn.10031f10
mov ecx, dword [ebp - 0xb0]
mov dword [ebx + 0x24], ecx
add ebx, 0x28
add edi, 0x28
dec esi
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb8], edi
jne 0x10037ead
jmp case.0x100379c6.12
mov edi, dword [edi + 8]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
lea edx, [edi + edi*4]
lea ebx, [ecx + edx*8]
mov edx, dword [ebp - 0xb4]
push 0x1000
push edx
mov dword [ebp - 0xb8], ebx
call fcn.10031dc0
mov eax, 0x1000
add esp, 8
test word [ebx + 0x1c], ax
je case.0x100379c6.12
mov eax, ebx
call fcn.10031570
test eax, eax
je case.0x100379c6.12
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0xa4]
push str.out_of_memory
add esi, 0x74
mov byte [eax + 0x1e], 1
call fcn.1001b7d0
mov dword [ebp - 0xa8], 7
add esp, 4
mov eax, dword [ebp - 0xa8]
mov ebx, dword [ebp - 0xa4]
mov dword [ebx + 0x64], eax
call fcn.10034500
cmp dword [ebp - 0xa8], 0xc0a
jne 0x10037f91
mov ecx, dword [ebp - 0xac]
mov byte [ecx + 0x1e], 1
mov esi, 1
mov ecx, dword [ebp - 0x170]
xor ebx, ebx
cmp dword [ecx], ebx
jle 0x10037fe8
lea edx, [ecx + 4]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x110]
mov edi, dword [eax]
dec dword [edi + 0xc]
jne 0x10037fdc
cmp byte [edi + 0xa], 0
je 0x10037fdc
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x10037fd8
push eax
call dword [0x100a6698]
mov ecx, dword [ebp - 0x170]
add esp, 4
mov byte [edi + 0xa], 0
add dword [ebp - 0x110], 4
inc ebx
cmp ebx, dword [ecx]
jl 0x10037fab
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.10075b7f
mov esp, ebp
pop ebp
ret
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x4c]
lea ecx, [edi + edi*4]
lea ebx, [eax + ecx*8]
mov ecx, dword [ebp - 0xb4]
push 0x1000
push ecx
mov dword [ebp - 0xb8], ebx
call fcn.10031dc0
jmp 0x1003bf70
mov esi, dword [ebp - 0xa4]
push 1
push esi
call fcn.10034450
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
add eax, 2
or eax, 1
mov dword [esi + 0x50], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
mov dword [esi + 0x78], ebx
cmp dword [edi + 8], 0
mov dword [ebp - 0x118], 0
jle 0x10038096
mov eax, ebx
call fcn.10031630
mov ecx, ebx
call fcn.100374f0
mov eax, dword [ebp - 0x118]
inc eax
add ebx, 0x28
mov dword [ebp - 0x118], eax
cmp eax, dword [edi + 8]
jl 0x10038073
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x1e], 0
jne 0x10037f3d
mov ecx, dword [ebp - 0xbc]
inc ecx
mov dword [esi + 0x60], ecx
mov esi, 0x64
jmp 0x10037f96
mov ebx, dword [ebp - 0xb4]
movzx eax, word [ebx + 0x1c]
mov edi, dword [ebp - 0xf0]
mov dl, byte [edi + 0x1c]
or dl, al
test dl, 1
je 0x100380e4
mov esi, dword [ebp - 0xb8]
call fcn.10031c10
jmp case.0x100379c6.12
test eax, 0x4000
je 0x100380f2
mov eax, ebx
call fcn.100315d0
test byte [ebx + 0x1c], 0x12
jne 0x1003810e
movzx esi, byte [ebp - 0xe8]
mov eax, ebx
call fcn.10031680
test eax, eax
jne 0x10037f3d
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x10038120
mov eax, edi
call fcn.100315d0
test byte [edi + 0x1c], 0x12
jne 0x1003813c
movzx esi, byte [ebp - 0xe8]
mov eax, edi
call fcn.10031680
test eax, eax
jne 0x10037f3d
mov eax, dword [edi + 0x18]
add eax, dword [ebx + 0x18]
cdq
mov ecx, edx
mov edx, dword [ebp - 0xac]
mov edi, eax
mov eax, dword [edx + 0x50]
cdq
cmp ecx, edx
jg 0x10037c9a
jl 0x10038163
cmp edi, eax
ja 0x10037c9a
mov ebx, dword [ebp - 0xb8]
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
mov word [ebx + 0x1c], ax
xor eax, eax
cmp ebx, dword [ebp - 0xf0]
lea ecx, [edi + 2]
sete al
call fcn.10031440
test eax, eax
jne 0x10037f3d
mov esi, ebx
mov ebx, dword [ebp - 0xf0]
cmp esi, ebx
je 0x100381b8
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov ecx, dword [esi + 0x14]
push edx
push eax
push ecx
call fcn.100777a0
add esp, 0xc
mov eax, dword [ebp - 0xb4]
mov edx, dword [eax + 0x18]
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax + 0x14]
add ecx, dword [esi + 0x14]
push edx
push eax
push ecx
call fcn.100777a0
mov edx, dword [esi + 0x14]
mov byte [edi + edx], 0
mov eax, dword [esi + 0x14]
mov dl, byte [ebp - 0xe8]
mov byte [edi + eax + 1], 0
mov ecx, 0x200
add esp, 0xc
or word [esi + 0x1c], cx
mov dword [esi + 0x18], edi
mov byte [esi + 0x1f], dl
jmp case.0x100379c6.12
mov edi, dword [ebp - 0xb4]
call fcn.100375e0
mov edi, dword [ebp - 0xf0]
call fcn.100375e0
mov esi, dword [ebp - 0xb4]
movzx ecx, word [esi + 0x1c]
movzx eax, word [edi + 0x1c]
mov ebx, ecx
or ebx, eax
test bl, 1
jne 0x100383e6
and cl, al
test cl, 4
je 0x100382eb
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov edi, dword [ebp - 0xe4]
movzx edi, byte [edi]
mov ecx, dword [esi]
mov esi, dword [esi + 4]
add edi, 0xffffffac
cmp edi, 3
ja case.default.0x10038255
jmp dword [edi*4 + 0x1003c368]
add eax, ecx
adc edx, esi
jmp 0x100382c7
sub eax, ecx
sbb edx, esi
jmp 0x100382c7
push esi
push ecx
push edx
push eax
call fcn.10084810
jmp 0x100382c7
mov edi, ecx
or edi, esi
je 0x100383e6
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x10038299
test eax, eax
jne 0x10038299
cmp edx, 0x80000000
jne 0x10038299
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.1007c4e0
jmp 0x100382c7
mov edi, ecx
or edi, esi
je 0x100383e6
mov edi, ecx
and edi, esi
cmp edi, 0xffffffff
jne 0x100382be
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.1007c590
mov ecx, dword [ebp - 0xb8]
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.0x100379c6.12
call fcn.100319f0
fstp qword [ebp - 0xd8]
mov esi, edi
call fcn.100319f0
mov eax, dword [ebp - 0xe4]
movzx eax, byte [eax]
add eax, 0xffffffac
cmp eax, 3
ja case.default.0x1003830e
jmp dword [eax*4 + 0x1003c378]
fadd qword [ebp - 0xd8]
jmp 0x10038394
fsub qword [ebp - 0xd8]
jmp 0x10038394
fmul qword [ebp - 0xd8]
jmp 0x10038394
fld qword [ebp - 0xd8]
fld st(0)
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100383e2
fdivp st(1)
jmp 0x10038394
fld qword [ebp - 0xd8]
call fcn.10088fb6
mov esi, eax
mov edi, edx
call fcn.10088fb6
mov ecx, esi
or ecx, edi
je 0x100383e6
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x10038379
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.1007c590
mov dword [ebp - 0x200], eax
mov dword [ebp - 0x1fc], edx
fild qword [ebp - 0x200]
sub esp, 8
fst qword [ebp - 0xd8]
fstp qword [esp]
call fcn.1001d570
add esp, 8
test eax, eax
jne 0x100383e6
mov esi, dword [ebp - 0xb8]
fld qword [ebp - 0xd8]
mov dx, word [esi + 0x1c]
fstp qword [esi + 8]
mov eax, 0xbf08
and dx, ax
or dx, 8
mov word [esi + 0x1c], dx
test bl, 8
jne case.0x100379c6.12
call fcn.10031a70
jmp case.0x100379c6.12
fstp st(0)
fstp st(0)
mov esi, dword [ebp - 0xb8]
call fcn.10031c10
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 8]
movzx esi, byte [edi + 3]
mov ebx, dword [ecx + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x4c]
lea ecx, [eax + edx*8]
xor edx, edx
mov dword [ebp - 0xb0], ebx
test esi, esi
jle 0x10038430
jmp 0x10038420
mov dword [ebx + edx*4], ecx
call fcn.100374f0
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x10038420
cmp byte [edi + 1], 0xfb
jne 0x1003844b
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x250], ecx
mov dword [ebp - 0x24c], 0
jmp 0x1003845c
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x24c], eax
mov edx, dword [eax]
mov dword [ebp - 0x250], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx + 0x4c]
mov ecx, dword [ebp - 0xac]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, 1
mov word [ebp - 0x22c], ax
xor eax, eax
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0x238], ecx
call fcn.10031f10
mov edx, dword [ebp - 0x22c]
mov eax, dword [ebp - 0x250]
and edx, 0xbf01
or edx, 1
mov word [ebp - 0x22c], dx
mov dword [ebp - 0x21c], 0
test byte [eax + 3], 8
je 0x100384da
mov ecx, dword [edi - 4]
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0xb0]
push edx
mov edx, dword [eax + 0xc]
lea ecx, [ebp - 0x250]
push esi
push ecx
call edx
mov eax, dword [ebp - 0xac]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x1003bf9a
mov ebx, dword [ebp - 0x24c]
test ebx, ebx
je 0x10038524
mov ecx, dword [edi + 4]
push ecx
call fcn.10034a00
mov edx, dword [ebp - 0x24c]
add esp, 4
mov dword [edi + 0x10], edx
mov byte [edi + 1], 0xf9
cmp dword [ebp - 0x21c], 0
je 0x10038563
mov bl, 1
lea edi, [ebp - 0x248]
call fcn.10032460
mov esi, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xac]
push 0x1009d28c
add esi, 0x74
call fcn.1001b7d0
mov eax, dword [ebp - 0x21c]
add esp, 8
mov dword [ebp - 0xa8], eax
movzx ecx, byte [ebp - 0xe8]
lea eax, [ebp - 0x248]
call fcn.10031420
mov esi, dword [ebp - 0xb8]
lea ebx, [ebp - 0x248]
mov eax, esi
call fcn.10031f10
mov ecx, esi
call fcn.10031d90
test eax, eax
jne 0x10037c9a
jmp case.0x100379c6.12
mov esi, dword [ebp - 0xf0]
mov cl, byte [esi + 0x1c]
mov edx, dword [ebp - 0xb4]
or cl, byte [edx + 0x1c]
test cl, 1
je 0x100385c3
mov esi, dword [ebp - 0xb8]
call fcn.10031c10
jmp case.0x100379c6.12
call fcn.10031960
mov esi, dword [ebp - 0xb4]
mov ebx, eax
mov dword [ebp - 0x124], edx
call fcn.10031960
mov ecx, eax
movzx eax, byte [edi]
sub eax, 0x50
je 0x1003861b
dec eax
je 0x10038611
mov edx, dword [ebp - 0x124]
dec eax
mov eax, ebx
je 0x10038602
call fcn.100890b0
mov ebx, eax
mov dword [ebp - 0x124], edx
jmp 0x10038623
call fcn.10088f60
mov ebx, eax
mov dword [ebp - 0x124], edx
jmp 0x10038623
or ebx, ecx
or dword [ebp - 0x124], edx
jmp 0x10038623
and ebx, ecx
and dword [ebp - 0x124], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x124]
mov dx, word [eax + 0x1c]
mov dword [eax + 4], ecx
mov ecx, 0xbf04
and dx, cx
or dx, 4
mov dword [eax], ebx
mov word [eax + 0x1c], dx
jmp case.0x100379c6.12
mov esi, dword [ebp - 0xb4]
mov eax, esi
call fcn.10031af0
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x100379c6.12
mov edi, dword [ebp - 0xb4]
call fcn.100375e0
mov esi, edi
test byte [esi + 0x1c], 8
je 0x10038680
call fcn.10031a70
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x100386a5
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 8]
test eax, eax
je 0x1003bfae
dec eax
mov dword [ebp - 0xbc], eax
jmp case.0x100379c6.12
and eax, 0xbf04
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb4]
test byte [eax + 0x1c], 4
je case.0x100379c6.12
call fcn.10031b20
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
movzx ecx, word [ecx + 0x1c]
test cl, 1
jne case.0x100379c6.12
mov edi, dword [ebp - 0xb4]
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [edi + 0x1c], ax
test al, 2
jne 0x1003870d
test al, 0xc
je 0x1003870d
movzx esi, byte [ebp - 0xe8]
mov eax, edi
call fcn.10031680
mov eax, 0xfff3
and word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x1003873c
mov eax, edi
call fcn.100315d0
mov ecx, 0xbfe3
and word [edi + 0x1c], cx
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov ecx, 0xbfe3
and word [edi + 0x1c], cx
mov dword [ebp - 0xa8], ebx
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xb4]
movzx eax, word [edx + 0x1c]
test al, 1
jne case.0x100379c6.12
test al, 0x10
jne 0x1003879f
test al, 2
jne 0x10038780
test al, 0xc
je 0x10038780
movzx esi, byte [ebp - 0xe8]
mov edi, edx
mov eax, edi
call fcn.10031680
jmp 0x10038786
mov edi, dword [ebp - 0xb4]
mov ax, word [edi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xb4]
and eax, 0xff10
mov word [edx + 0x1c], ax
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb4]
test byte [eax + 0x1c], 0xd
jne case.0x100379c6.12
call fcn.10031b50
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
test byte [ecx + 0x1c], 1
jne case.0x100379c6.12
mov eax, ecx
call fcn.10031af0
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xb4]
test byte [edx + 0x1c], 1
jne case.0x100379c6.12
mov eax, edx
call fcn.10031b20
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xec]
mov cl, byte [eax + 0x1c]
mov esi, dword [ebp - 0xb4]
or cl, byte [esi + 0x1c]
test cl, 1
je 0x1003886b
mov al, byte [edi + 3]
test al, 0x10
je 0x10038854
mov edi, dword [edi + 8]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
lea edx, [edi + edi*4]
lea eax, [ecx + edx*8]
mov dx, word [eax + 0x1c]
mov ecx, 0xbf01
and dx, cx
or dx, 1
mov dword [ebp - 0xb8], eax
mov word [eax + 0x1c], dx
jmp case.0x100379c6.12
test al, 8
je case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov bl, byte [edi + 3]
and bl, 0x67
je 0x100388ad
mov edx, dword [ebp - 0xe8]
push edx
mov al, bl
mov ecx, esi
call fcn.100376d0
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xec]
add esp, 4
push eax
mov al, bl
call fcn.100376d0
mov ecx, dword [ebp - 0xac]
add esp, 4
cmp byte [ecx + 0x1e], 0
jne 0x10037f3d
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x100388bf
mov eax, esi
call fcn.100315d0
mov eax, dword [ebp - 0xec]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x100388d5
call fcn.100315d0
mov edx, dword [edi + 0x10]
mov ecx, dword [ebp - 0xec]
push edx
mov eax, esi
call fcn.100320d0
movzx ecx, byte [edi]
add ecx, 0xffffffb7
add esp, 4
cmp ecx, 4
ja case.default.0x100388f4
jmp dword [ecx*4 + 0x1003c388]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x10038937
xor edx, edx
test eax, eax
setne dl
jmp 0x10038935
xor ecx, ecx
test eax, eax
sets cl
mov eax, ecx
jmp 0x10038937
xor edx, edx
test eax, eax
setle dl
jmp 0x10038935
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x10038937
xor edx, edx
test eax, eax
setns dl
mov eax, edx
test byte [edi + 3], 0x10
je 0x10038bfa
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0xa4]
mov edx, dword [edx + 0x4c]
lea ecx, [edi + edi*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 [ebp - 0xb8], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x100379c6.12
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x12c], eax
jmp case.0x100379c6.12
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 8]
mov ebx, dword [edi + 4]
xor esi, esi
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xc0], edx
test eax, eax
jle 0x10038a46
lea edi, [ecx + 0xc]
jmp 0x100389c6
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x100389d5
mov edx, dword [eax + esi*4]
jmp 0x100389d7
mov edx, esi
mov ecx, dword [ecx + 8]
movzx ecx, byte [ecx + esi]
mov eax, dword [edi]
push eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xdc], ecx
mov ecx, dword [ebp - 0xa4]
mov ecx, dword [ecx + 0x4c]
add eax, edx
add edx, ebx
lea eax, [eax + eax*4]
lea edx, [edx + edx*4]
lea eax, [ecx + eax*8]
lea ecx, [ecx + edx*8]
call fcn.100320d0
add esp, 4
mov dword [ebp - 0x13c], eax
test eax, eax
jne 0x10038a2f
inc esi
add edi, 4
cmp esi, dword [ebp - 0xc8]
jl 0x100389c0
mov dword [ebp - 0x12c], eax
jmp case.0x100379c6.12
cmp dword [ebp - 0xdc], 0
je 0x10038a46
mov eax, dword [ebp - 0x13c]
neg eax
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x12c], 0
jmp case.0x100379c6.12
mov eax, dword [ebp - 0x13c]
test eax, eax
jns 0x10038a6e
mov edi, dword [edi + 4]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
jne 0x10038a7f
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov edi, dword [edi + 0xc]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov esi, dword [ebp - 0xb4]
test byte [esi + 0x1c], 1
je 0x10038aa1
mov ebx, 2
jmp 0x10038ab3
call fcn.10031960
or eax, edx
je 0x10038ab1
mov ebx, 1
jmp 0x10038ab3
xor ebx, ebx
mov esi, dword [ebp - 0xf0]
test byte [esi + 0x1c], 1
je 0x10038ac6
mov eax, 2
jmp 0x10038ad8
call fcn.10031960
or eax, edx
je 0x10038ad6
mov eax, 1
jmp 0x10038ad8
xor eax, eax
cmp byte [edi], 0x43
jne 0x10038aea
lea ecx, [eax + ebx*2]
movzx eax, byte [ebx + ecx + 0x10099cf4]
jmp 0x10038af5
lea edx, [eax + ebx*2]
movzx eax, byte [ebx + edx + 0x10099d00]
cmp eax, 2
jne 0x100399ba
mov eax, dword [ebp - 0xb8]
mov cx, word [eax + 0x1c]
mov edx, 0xbf01
and cx, dx
or cx, 1
mov word [eax + 0x1c], cx
jmp case.0x100379c6.12
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx + 0x4c]
mov esi, dword [ebp - 0xb4]
test byte [esi + 0x1c], 1
lea eax, [edi + edi*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xb8], edi
je 0x10038b4d
mov esi, edi
call fcn.10031c10
jmp case.0x100379c6.12
call fcn.10031960
or eax, edx
jne 0x10038b6a
mov eax, 1
cdq
push edx
push eax
mov esi, edi
call fcn.10031c40
jmp 0x1003bf70
xor eax, eax
cdq
push edx
push eax
mov esi, edi
call fcn.10031c40
jmp 0x1003bf70
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx + 0x4c]
mov esi, dword [ebp - 0xb4]
test byte [esi + 0x1c], 1
lea eax, [edi + edi*4]
lea edi, [edx + eax*8]
mov dword [ebp - 0xb8], edi
je 0x10038bab
mov esi, edi
call fcn.10031c10
jmp case.0x100379c6.12
call fcn.10031960
not edx
not eax
push edx
push eax
mov esi, edi
call fcn.10031c40
jmp 0x1003bf70
mov esi, dword [ebp - 0xb4]
test byte [esi + 0x1c], 1
je 0x10038bd3
mov eax, dword [edi + 0xc]
jmp 0x10038bfa
call fcn.100319f0
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x10038bea
mov eax, 1
jmp 0x10038bec
xor eax, eax
cmp byte [edi], 0x44
jne 0x10038bfa
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
je case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [edi + 0xc]
jmp 0x10038c20
mov edx, dword [ebp - 0xb4]
test byte [edx + 0x1c], 1
jne 0x100379e1
add dword [ebp - 0xb4], 0x28
dec eax
test eax, eax
jg 0x10038c20
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb4]
test byte [eax + 0x1c], 1
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
xor eax, eax
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xc4], edx
mov edx, dword [ebp - 0xa4]
mov esi, dword [edx + 0x4c]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov si, word [eax + 0x1c]
mov ebx, 0xbf01
and si, bx
or si, 1
mov word [eax + 0x1c], si
mov edx, dword [edx + 0x30]
mov esi, dword [edx + ecx*4]
xor ebx, ebx
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xb0], esi
cmp dword [esi], ebx
je 0x10038d96
mov edi, esi
call fcn.10034cd0
mov dword [ebp - 0xa8], eax
cmp eax, ebx
jne 0x1003c082
mov eax, dword [esi]
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0x114], eax
cmp byte [esi + 0x14], bl
je 0x10038d27
mov edi, dword [ebp - 0xe4]
xor ecx, ecx
mov dword [ebp - 0x104], ecx
jmp 0x10038db1
mov ecx, dword [esi + 0x5c]
mov edx, dword [ebp - 0xa4]
cmp ecx, dword [edx + 0x50]
jne 0x10038d4f
mov ecx, dword [esi + 0x60]
mov eax, dword [esi + 0x6c]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xcc], eax
jmp 0x10038db1
cmp byte [esi + 0x19], bl
je 0x10038d79
mov eax, dword [ebp - 0x114]
lea ebx, [ebp - 0x2c8]
call fcn.100297f0
mov ecx, dword [ebp - 0x2c8]
mov edi, dword [ebp - 0xe4]
mov dword [ebp - 0x104], ecx
jmp 0x10038db1
lea edx, [ebp - 0x104]
push edx
call fcn.10029870
mov ecx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
add esp, 4
jmp 0x10038db1
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0xcc], eax
mov dword [esi + 0x5c], ebx
mov dword [ebp - 0x114], ebx
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xc0], eax
test ecx, ecx
je case.0x100379c6.12
mov edx, dword [ebp - 0xac]
cmp ecx, dword [edx + 0x50]
jg 0x10037c9a
mov edx, dword [esi + 0x64]
mov ebx, dword [esi + 0x5c]
mov dword [ebp - 0xe0], edx
mov edx, dword [ebp - 0xa4]
cmp ebx, dword [edx + 0x50]
jne 0x10038df6
mov eax, dword [esi + 0x68]
mov dword [ebp - 0xc8], eax
jmp 0x1003901b
mov ebx, dword [ebp - 0xe0]
lea eax, [ebx + eax*4]
mov ebx, dword [ebp - 0xcc]
mov dword [esi + 0x68], eax
mov dword [esi + 0x60], ecx
mov ecx, dword [edx + 0x50]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xc8], eax
mov dword [esi + 0x5c], ecx
test ebx, ebx
jne 0x10038e7b
cmp byte [esi + 0x19], bl
je 0x10038e44
mov esi, dword [ebp - 0x114]
lea edx, [ebp - 0xdc]
push edx
call fcn.10029ec0
mov esi, dword [ebp - 0xb0]
jmp 0x10038e56
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [ebp - 0x114]
call fcn.10029f50
mov ecx, dword [ebp - 0xdc]
add esp, 4
mov ebx, eax
cmp ecx, dword [ebp - 0x104]
jl 0x10038e74
mov dword [ebp - 0xcc], ebx
mov dword [esi + 0x6c], ebx
jmp 0x10038e7b
mov dword [esi + 0x6c], 0
mov al, byte [ebx]
cmp al, 0x80
jae 0x10038e91
movzx edx, al
mov dword [ebp - 0x108], edx
mov eax, 1
jmp 0x10038ea7
lea esi, [ebp - 0x108]
mov ecx, ebx
call fcn.1001e110
mov esi, dword [ebp - 0xb0]
movzx eax, al
cmp dword [ebp - 0xcc], 0
movzx eax, al
mov dword [ebp - 0xd4], eax
jne 0x10038f0c
mov ecx, dword [ebp - 0x108]
cmp dword [ebp - 0xdc], ecx
jge 0x10038f0c
xor edx, edx
mov word [ebp - 0x184], dx
mov dword [ebp - 0x190], edx
movzx eax, byte [esi + 0x19]
push eax
mov edi, ecx
mov ecx, dword [ebp - 0x114]
push edx
lea eax, [ebp - 0x1a0]
call fcn.10032350
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov ebx, dword [ebp - 0x18c]
mov edi, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0x108]
add ecx, ebx
add ebx, dword [ebp - 0xd4]
cmp dword [ebp - 0xc0], 0
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xe4], ebx
jle 0x10038fd0
mov ebx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc0]
sub eax, ebx
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xd4], eax
cmp ecx, dword [ebp - 0xdc]
jae 0x10038fb8
mov edx, dword [ebp - 0x108]
mov dword [eax + ebx], edx
mov al, byte [ecx]
cmp al, 0x80
jae 0x10038f7c
movzx eax, al
mov dword [ebx], eax
mov eax, 1
jmp 0x10038f98
mov ecx, dword [ebp - 0xe4]
mov esi, ebx
call fcn.1001e110
mov esi, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xe4]
movzx eax, al
movzx edx, al
mov eax, dword [ebx]
add ecx, edx
mov dword [ebp - 0xe4], ecx
call fcn.10034e50
add dword [ebp - 0x108], eax
mov eax, dword [ebp - 0xd4]
jmp 0x10038fbf
mov dword [eax + ebx], 0
add ebx, 4
dec dword [ebp - 0xc0]
jne 0x10038f59
mov ebx, dword [ebp - 0xe4]
lea eax, [ebp - 0x1a0]
push eax
call fcn.10031840
add esp, 4
mov ecx, 1
mov word [ebp - 0x184], cx
cmp ebx, dword [ebp - 0xdc]
ja 0x1003915d
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x104]
cmp eax, ecx
jg 0x1003915d
cmp ebx, dword [ebp - 0xdc]
jne 0x1003901b
cmp eax, ecx
jne 0x1003915d
mov edx, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0xc8]
cmp dword [ebx + edx*4], 0
je 0x100390f1
cmp dword [ebp - 0xcc], 0
je 0x10039062
mov esi, dword [ebp - 0x10c]
call fcn.100317e0
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx + eax*4]
mov ecx, dword [ebx + eax*4]
add ecx, dword [ebp - 0xcc]
jmp 0x100390d5
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [eax + ecx*4]
call fcn.10034e50
mov ebx, dword [ebp - 0x10c]
mov edi, eax
lea eax, [ebp - 0x1a0]
call fcn.10031f10
movzx edx, byte [esi + 0x19]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
push edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x114]
push edx
lea eax, [ebp - 0x1a0]
call fcn.10032350
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xe0]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x18c]
mov esi, dword [ebp - 0x10c]
push edx
call fcn.10034f20
mov al, byte [ebp - 0xe8]
mov ecx, esi
add esp, 4
mov byte [ecx + 0x1f], al
jmp 0x1003910e
cmp byte [edi + 1], 0xf8
jne 0x1003910e
mov edx, dword [edi + 0x10]
mov ebx, dword [ebp - 0x10c]
push 0x800
push edx
call fcn.10031dc0
add esp, 8
cmp dword [ebp - 0x17c], 0
je 0x10039147
mov eax, dword [ebp - 0x10c]
mov cx, word [eax + 0x1c]
mov edx, 0xe7ff
and cx, dx
mov edx, 0x200
or cx, dx
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x18c]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x17c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0x10c]
call fcn.10031570
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov dword [ebp - 0xa8], 0xb
jmp case.0x100379c6.12
mov eax, dword [edi + 0x10]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xd4], eax
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
lea ebx, [eax + ecx*8]
lea ecx, [edi + edi*4]
lea eax, [ebx + ecx*8 - 0x28]
mov dword [ebp - 0xb0], eax
mov esi, ebx
cmp ebx, eax
ja case.0x100379c6.12
xor edi, edi
mov edx, 0x4000
test word [ebx + edi + 0x1c], dx
je 0x100391b6
mov eax, esi
call fcn.100315d0
mov eax, dword [ebp - 0xe8]
push eax
mov eax, 0x66666667
imul edi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0xd4]
mov al, byte [ecx + edx]
mov ecx, esi
call fcn.100376d0
add esi, 0x28
add esp, 4
add edi, 0x28
cmp esi, dword [ebp - 0xb0]
jbe 0x100391a3
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov esi, dword [edx + 0x4c]
movzx edx, byte [edx + 0x7f]
mov ecx, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8 - 0x28]
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
mov ebx, esi
cmp esi, eax
ja 0x1003933c
mov eax, 0xffffffe8
sub eax, esi
mov esi, dword [ebp - 0x150]
mov dword [ebp - 0xd4], eax
jmp 0x1003927c
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x100392a9
mov edx, dword [ebp - 0xe8]
push edx
lea edx, [eax + ebx + 0x18]
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov al, byte [eax + ecx]
mov ecx, ebx
call fcn.100376d0
add esp, 4
mov ecx, 0x4000
test word [ebx + 0x1c], cx
je 0x100392c1
cmp dword [ebx + 0x18], 0
jle 0x100392c1
mov eax, ebx
call fcn.100315d0
mov edx, dword [ebp - 0xc0]
push edx
mov edx, ebx
call fcn.10034d70
add esp, 4
mov ecx, eax
call fcn.10034e50
mov dword [ebp - 0xc8], eax
cdq
add esi, eax
adc dword [ebp - 0x14c], edx
push 0
push ecx
call fcn.1001e170
add dword [ebp - 0xcc], eax
mov eax, 0x4000
add esp, 8
test word [ebx + 0x1c], ax
je 0x1003930e
mov ecx, dword [ebx]
add dword [ebp - 0xe0], ecx
jmp 0x10039321
cmp dword [ebp - 0xc8], 0
je 0x10039321
mov dword [ebp - 0xe0], 0
add ebx, 0x28
cmp ebx, dword [ebp - 0xc4]
jbe 0x10039270
mov dword [ebp - 0x150], esi
mov esi, dword [ebp - 0xdc]
mov ebx, dword [ebp - 0xcc]
mov eax, ebx
cdq
push edx
push eax
call fcn.1001e170
add ebx, eax
mov dword [ebp - 0xd4], eax
mov eax, ebx
cdq
push edx
push eax
mov dword [ebp - 0xcc], ebx
call fcn.1001e170
add esp, 0x10
cmp dword [ebp - 0xd4], eax
jge 0x10039376
inc ebx
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebp - 0xe0]
cdq
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xb0], edx
cdq
mov ecx, eax
sub ecx, dword [ebp - 0xd4]
mov ebx, edx
sbb ebx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x50]
adc ebx, dword [ebp - 0x14c]
cdq
mov dword [ebp - 0x210], ecx
cmp ebx, edx
jg 0x10037c9a
jl 0x100393ce
cmp ecx, eax
ja 0x10037c9a
mov edi, dword [edi + 0xc]
mov edx, dword [ebp - 0xa4]
mov edx, dword [edx + 0x4c]
lea eax, [edi + edi*4]
lea ebx, [edx + eax*8]
xor eax, eax
mov dword [ebp - 0xb8], ebx
call fcn.10031440
test eax, eax
jne 0x10037f3d
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0xb0], ecx
cmp eax, 0x80
jae 0x10039414
mov byte [ecx], al
mov eax, 1
jmp 0x10039419
call fcn.1001df60
movzx edi, al
mov ebx, esi
cmp esi, dword [ebp - 0xc4]
ja 0x100394af
lea ebx, [ebx]
mov eax, dword [ebp - 0xc0]
push eax
mov edx, ebx
call fcn.10034d70
add esp, 4
cmp eax, 0x80
jae 0x10039458
mov ecx, dword [ebp - 0xb0]
mov byte [edi + ecx], al
mov eax, 1
jmp 0x10039466
mov edx, dword [ebp - 0xb0]
lea ecx, [edi + edx]
call fcn.1001df60
movzx eax, al
add ebx, 0x28
add edi, eax
cmp ebx, dword [ebp - 0xc4]
jbe 0x10039430
cmp esi, dword [ebp - 0xc4]
ja 0x100394af
mov edi, edi
mov ecx, dword [ebp - 0x210]
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc0]
sub ecx, edi
push ecx
lea ebx, [edi + edx]
mov ecx, esi
call fcn.10034e70
add esi, 0x28
add esp, 4
add edi, eax
cmp esi, dword [ebp - 0xc4]
jbe 0x10039480
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x210]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0xe0]
mov edx, 0x410
mov word [eax + 0x1c], dx
mov dword [eax + 0x20], 0
test ecx, ecx
je 0x100394e3
mov dword [eax], ecx
mov ecx, 0x4410
mov word [eax + 0x1c], cx
mov byte [eax + 0x1f], 1
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x30]
mov edx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
mov ebx, dword [edx]
xor eax, eax
cmp ebx, eax
je 0x1003951a
lea eax, [ebp - 0x178]
push eax
call fcn.1002f0a0
add esp, 4
mov dword [ebp - 0xa8], eax
jmp 0x10039526
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x178]
mov ecx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x174]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0x1c], bl
je 0x10039563
cmp dword [ecx + 0x90], 1
jle case.0x100379c6.12
mov edi, dword [edi + 4]
mov eax, dword [ecx + 8]
lea edx, [edi + edi*2]
mov eax, dword [eax + edx*8 + 4]
mov edx, dword [ebp - 0xa4]
cmp dword [edx + 0xd4], ebx
jne 0x10039598
inc dword [ecx + 0x1dc]
mov esi, dword [ecx + 0x1dc]
mov ecx, dword [ecx + 0x1d8]
add ecx, esi
mov dword [edx + 0xd4], ecx
mov edx, dword [edx + 0xd4]
push edx
call fcn.10029200
add esp, 4
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
mov edi, dword [edi + 0x10]
mov dword [ebp - 0xc4], eax
test eax, eax
jne 0x1003966e
mov edx, dword [ebp - 0xac]
cmp dword [edx + 0x94], ebx
jle 0x100395fb
mov esi, dword [ebp - 0xa4]
push str.cannot_open_savepoint___SQL_statements_in_progress
add esi, 0x74
mov eax, edx
call fcn.1001b7d0
add esp, 4
mov dword [ebp - 0xa8], 5
jmp case.0x100379c6.12
mov ecx, edi
call fcn.1001d5a0
mov ebx, eax
lea ecx, [ebx + 9]
mov esi, edx
call fcn.1001b5e0
mov esi, eax
test esi, esi
je case.0x100379c6.12
inc ebx
push ebx
lea eax, [esi + 8]
push edi
push eax
mov dword [esi], eax
call fcn.100777a0
mov eax, dword [ebp - 0xac]
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x10039654
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.0x100379c6.12
mov ecx, dword [eax + 0x1d4]
inc dword [eax + 0x1d8]
mov dword [esi + 4], ecx
mov dword [eax + 0x1d4], esi
jmp case.0x100379c6.12
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 0xac]
mov esi, dword [ebx + 0x1d4]
test esi, esi
je 0x1003969e
mov ecx, dword [esi]
mov edx, edi
call fcn.1001d800
test eax, eax
je 0x100396c3
mov esi, dword [esi + 4]
inc dword [ebp - 0xb0]
test esi, esi
jne 0x10039684
mov esi, dword [ebp - 0xa4]
push edi
push str.no_such_savepoint:__s
add esi, 0x74
mov eax, ebx
call fcn.1001b7d0
mov dword [ebp - 0xa8], 1
jmp 0x1003bf70
cmp dword [ebx + 0x94], 0
jg 0x1003984b
mov eax, dword [ebp - 0xc4]
cmp eax, 2
jne 0x100396e8
cmp dword [ebx + 0x90], 1
jg 0x10039854
cmp dword [esi + 4], 0
jne 0x10039736
cmp byte [ebx + 0x1e0], 0
je 0x10039736
mov dword [ebp - 0xc8], 1
cmp eax, 1
jne 0x10039740
mov edi, ebx
mov ebx, dword [ebp - 0xa4]
mov byte [edi + 0x1c], al
call fcn.10034500
cmp eax, 5
je 0x1003bfbd
mov byte [edi + 0x1e0], 0
mov edx, dword [ebx + 0x64]
mov dword [ebp - 0xa8], edx
mov ebx, edi
jmp 0x100397d6
mov dword [ebp - 0xc8], 0
mov edi, dword [ebx + 0x1d8]
sub edi, dword [ebp - 0xb0]
mov dword [ebp - 0xc0], 0
dec edi
cmp dword [ebx + 4], 0
jle 0x100397b4
mov dword [ebp - 0xb0], 0
jmp 0x10039770
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebx + 8]
mov edx, dword [ebp - 0xb0]
push edi
push eax
mov eax, dword [edx + ecx + 4]
call fcn.10029260
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
mov eax, dword [ebp - 0xc0]
add dword [ebp - 0xb0], 0x18
inc eax
mov dword [ebp - 0xc0], eax
cmp eax, dword [ebx + 4]
jl 0x10039770
cmp dword [ebp - 0xc4], 2
jne 0x100397d6
test byte [ebx + 0xc], 0x10
je 0x100397d6
mov eax, ebx
call fcn.100357a0
push 0
mov eax, ebx
call fcn.10047d80
add esp, 4
cmp dword [ebx + 0x1d4], esi
je 0x10039807
mov edi, edi
mov eax, dword [ebx + 0x1d4]
mov ecx, dword [eax + 4]
push eax
push ebx
mov dword [ebx + 0x1d4], ecx
call fcn.1001b3e0
dec dword [ebx + 0x1d8]
add esp, 8
cmp dword [ebx + 0x1d4], esi
jne 0x100397e0
cmp dword [ebp - 0xc4], 1
jne case.0x100379c6.12
mov eax, dword [ebp - 0xac]
mov edx, dword [esi + 4]
push esi
push eax
mov dword [eax + 0x1d4], edx
call fcn.1001b3e0
add esp, 8
cmp dword [ebp - 0xc8], 0
jne case.0x100379c6.12
mov eax, dword [ebp - 0xac]
dec dword [eax + 0x1d8]
jmp case.0x100379c6.12
cmp dword [ebp - 0xc4], 2
jne 0x1003985b
mov eax, str.rollback
jmp 0x10039860
mov eax, str.release
mov esi, dword [ebp - 0xa4]
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
add esi, 0x74
mov eax, ebx
call fcn.1001b7d0
mov dword [ebp - 0xa8], 5
jmp 0x1003bf70
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
mov ebx, dword [ebp - 0xac]
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x100398e5
cmp byte [ebx + 0x1c], 0
jne 0x100398e5
test edi, edi
je 0x100398b5
cmp dword [ebx + 0x90], 1
jle 0x100398e5
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x100398c3
cmp dword [ebx + 0x94], 1
jle 0x100398e5
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, dword [ebp - 0xa4]
add esi, 0x74
mov eax, ebx
call fcn.1001b7d0
add esp, 4
mov dword [ebp - 0xa8], 5
jmp case.0x100379c6.12
movzx ecx, byte [ebx + 0x1c]
cmp eax, ecx
jne 0x1003bfd7
test eax, eax
jne 0x100398fc
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1003990a
mov eax, str.cannot_rollback___no_transaction_is_active
test edi, edi
jne 0x1003990a
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [ebp - 0xa4]
push eax
add esi, 0x74
mov eax, ebx
call fcn.1001b7d0
add esp, 4
mov dword [ebp - 0xa8], 1
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + edx*8 + 4]
test eax, eax
je case.0x100379c6.12
mov edx, dword [edi + 8]
push edx
call fcn.10028120
add esp, 4
mov dword [ebp - 0xa8], eax
cmp eax, 5
je 0x1003c040
test eax, eax
je case.0x100379c6.12
cmp eax, 8
jne 0x1003c082
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
mov edi, dword [edi + 0xc]
test eax, eax
jns 0x1003998c
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
neg edi
mov ecx, dword [ebp - 0xac]
lea edx, [ebp - 0x1a4]
push edx
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
lea ebx, [edi + 1]
call fcn.1002ee30
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x1a4]
add esp, 4
mov ecx, dword [ebp - 0xb8]
cdq
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.0x100379c6.12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0xec]
lea eax, [eax + eax*2]
lea esi, [edx + eax*8]
mov eax, ebx
call fcn.10031af0
mov eax, dword [ebx]
mov ecx, dword [edi + 8]
push eax
mov eax, dword [esi + 4]
inc ecx
push ecx
call fcn.1002efa0
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + 8]
add esp, 8
test eax, eax
jne 0x10039a31
mov eax, dword [ebx]
mov edx, dword [esi + 0x14]
mov dword [edx], eax
mov eax, dword [ebp - 0xac]
or dword [eax + 0xc], 0x10
jmp 0x10039a3e
cmp eax, 1
jne 0x10039a3e
mov ecx, dword [esi + 0x14]
mov dl, byte [ebx]
mov byte [ecx + 0x38], dl
cmp dword [edi + 4], 1
jne case.0x100379c6.12
mov eax, dword [ebp - 0xac]
call fcn.100357a0
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
xor ebx, ebx
cmp eax, ebx
je 0x10039b0b
lea ecx, [ebp - 0x16c]
push ecx
mov ebx, 1
call fcn.1002ee30
add esp, 4
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov ebx, dword [ebp - 0x16c]
cmp ebx, dword [edi + 8]
je case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x74]
mov esi, dword [ebp - 0xac]
push eax
push esi
call fcn.1001b3e0
push esi
mov edi, str.database_schema_has_changed
call fcn.1001b750
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xe4]
mov dword [ecx + 0x74], eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*2]
mov ecx, dword [edx + ecx*8 + 0x14]
add esp, 0xc
cmp dword [ecx], ebx
je 0x10039af5
push eax
mov eax, esi
call fcn.10047d80
add esp, 4
mov eax, esi
call fcn.100357a0
mov dword [ebp - 0xa8], 0x11
jmp case.0x100379c6.12
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x16c], ebx
jmp 0x10039a9d
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx + 8]
mov dword [ebp - 0xd4], edx
lea edx, [esi + esi*2]
lea ecx, [ecx + edx*8]
mov edx, dword [ecx + 4]
xor ebx, ebx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xdc], edx
cmp al, 0xa
jne 0x10039b72
mov eax, dword [ecx + 0x14]
mov al, byte [eax + 0x38]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xc8], 1
cmp al, byte [ecx + 0x7f]
jae 0x10039b78
mov byte [ecx + 0x7f], al
jmp 0x10039b78
mov dword [ebp - 0xc8], ebx
cmp byte [edi + 3], bl
je 0x10039bb4
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xa4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
lea eax, [eax + ecx*8]
mov dword [ebp - 0xf0], eax
call fcn.10031af0
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
cmp eax, 2
jl 0x10039cc3
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x10039bdf
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x14]
mov ebx, dword [edi + 0x10]
mov al, byte [edx + 0x39]
mov byte [ebx + 4], al
movzx eax, word [ebx + 6]
inc eax
mov dword [ebp - 0xb0], eax
jmp 0x10039bec
cmp al, 0xf2
jne 0x10039bec
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xb0], ecx
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xa4]
push 1
push esi
mov esi, dword [ebp - 0xd4]
push edx
call fcn.10037520
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10037f3d
mov eax, dword [esi]
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xdc]
push ebx
push ecx
push edx
mov byte [esi + 0x14], 1
call fcn.100293e0
add esp, 0x10
mov dword [ebp - 0xa8], eax
mov dword [esi + 0x40], ebx
test eax, eax
je 0x10039c7e
cmp eax, 5
je 0x1003c05c
cmp eax, 0x10
jne 0x1003c082
cmp byte [edi + 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 [ebp - 0xa8], 0
jmp case.0x100379c6.12
mov eax, dword [esi]
call fcn.1002f030
test al, 0xf0
jne 0x10039cc3
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x10039c98
cmp ecx, 2
jne 0x10039cc3
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 0x10039cb1
cmp byte [edi + 1], 0xfa
je 0x10039cc3
test al, al
je case.0x100379c6.12
cmp byte [edi + 1], 0xfa
je case.0x100379c6.12
mov dword [ebp - 0xa8], 0xb
jmp 0x1003c082
mov edx, dword [edi + 8]
mov esi, dword [edi + 4]
mov eax, dword [ebp - 0xa4]
push 1
push 0xffffffffffffffff
push edx
call fcn.10037520
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10037f3d
mov edx, dword [ebp - 0xac]
lea ebx, [esi + 0x28]
push ebx
push 0x1f4
push 1
mov eax, 0x41e
xor ecx, ecx
mov byte [esi + 0x14], 1
call fcn.10070d10
add esp, 0xc
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x10039dcd
mov eax, dword [ebx]
push 1
call fcn.10028120
add esp, 4
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x10039dcd
cmp dword [edi + 0x10], eax
je 0x10039db0
lea eax, [ebp - 0x1bc]
push 2
push eax
mov eax, dword [ebx]
call fcn.1002e910
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x10039d9d
mov ecx, dword [esi]
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0x1bc]
push ecx
push edx
push 1
push eax
mov eax, dword [ebx]
call fcn.100293e0
mov edi, dword [edi + 0x10]
mov ecx, dword [ebp - 0xa4]
mov dword [esi + 0x40], edi
mov edx, dword [ecx]
mov dword [ebp - 0xa8], eax
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x39]
add esp, 0x10
mov byte [edi + 4], dl
mov byte [esi + 0x18], 0
cmp byte [esi + 0x18], 0
sete cl
mov byte [esi + 0x19], cl
jmp case.0x100379c6.12
mov eax, dword [esi]
push eax
mov eax, dword [ebx]
push 0
push 1
push 1
call fcn.100293e0
add esp, 0x10
mov dword [ebp - 0xa8], eax
mov byte [esi + 0x18], 1
cmp byte [esi + 0x18], 0
sete cl
mov byte [esi + 0x19], cl
jmp case.0x100379c6.12
mov edx, dword [edi + 0xc]
mov esi, dword [edi + 4]
mov eax, dword [ebp - 0xa4]
push 0
push 0xffffffffffffffff
push edx
call fcn.10037520
add esp, 0xc
test eax, eax
je 0x10037f3d
mov word [eax + 0x14], 0x101
mov cl, byte [edi + 8]
mov byte [eax + 0x16], cl
mov word [eax + 0x18], 1
jmp case.0x100379c6.12
mov esi, dword [edi + 4]
mov edi, dword [ebp - 0xa4]
mov edx, dword [edi + 0x30]
mov eax, dword [edx + esi*4]
call fcn.10033b50
mov eax, edi
mov ecx, dword [eax + 0x30]
mov dword [ecx + esi*4], ebx
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edx + 0x30]
mov eax, dword [edi + 4]
mov ebx, dword [ecx + eax*4]
mov ecx, dword [ebx]
mov dword [ebp - 0xb0], ebx
test ecx, ecx
je 0x1003a127
cmp byte [ebx + 0x18], 0
mov byte [ebx + 0x14], 0
je 0x1003a047
mov edi, dword [ebp - 0xec]
call fcn.100375e0
mov esi, edi
call fcn.10031960
mov edi, eax
mov byte [ebx + 0x11], 0
movzx eax, word [esi + 0x1c]
mov dword [ebp - 0x160], edi
mov dword [ebp - 0x15c], edx
test al, 4
jne 0x10039fb7
test al, 8
jne 0x10039eab
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xbc], eax
jmp case.0x100379c6.12
test edi, edi
jne 0x10039f73
cmp edx, 0x80000000
jne 0x10039f73
mov dword [ebp - 0x1e8], edi
mov dword [ebp - 0x1e4], edx
fild qword [ebp - 0x1e8]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x10039eeb
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x10039f73
fldz
mov dword [ebp - 0xf4], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
mov eax, dword [ebp - 0xc4]
jne 0x10039f26
cmp eax, 0x7b
je 0x10039f11
cmp eax, 0x6d
jne 0x10039f5e
mov eax, dword [ebp - 0xb0]
mov eax, dword [eax]
lea ebx, [ebp - 0xf4]
call fcn.1002a340
jmp 0x10039f43
cmp eax, 0x46
je 0x10039f30
cmp eax, 0x37
jne 0x10039f5e
mov ecx, dword [ebp - 0xb0]
mov eax, dword [ecx]
lea ebx, [ebp - 0xf4]
call fcn.1002a370
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
cmp dword [ebp - 0xf4], 0
je case.0x100379c6.12
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 8]
dec eax
mov dword [ebp - 0xbc], eax
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xc4]
cmp eax, 0x46
je 0x10039f9b
cmp eax, 0x6d
je 0x10039f9b
fild qword [ebp - 0x160]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x10039fb7
add edi, 0xffffffff
adc edx, 0xffffffff
jmp 0x10039fb1
fild qword [ebp - 0x160]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x10039fb7
add edi, 1
adc edx, 0
mov dword [ebp - 0x15c], edx
mov ecx, dword [ebx]
lea eax, [ebp - 0xf4]
push eax
push 0
push edx
push edi
push 0
push ecx
call fcn.1002a3c0
add esp, 0x18
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
mov eax, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xc4]
test eax, eax
jne 0x10039ffd
mov edx, dword [ebp - 0x15c]
mov byte [ebx + 0x11], 1
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edx
mov edi, dword [ebp - 0xe4]
xor ecx, ecx
mov byte [ebx + 0x17], 0
mov dword [ebx + 0x5c], ecx
cmp esi, 0x6d
je 0x1003a0d1
cmp esi, 0x7b
je 0x1003a0d1
cmp eax, ecx
jg 0x1003a0c0
jne 0x1003a031
cmp esi, 0x46
je 0x1003a0c0
mov ecx, dword [ebx]
xor edx, edx
cmp byte [ecx + 0x43], 1
setne dl
mov dword [ebp - 0xf4], edx
jmp 0x1003a10b
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x280], eax
mov ax, word [edi + 0x10]
mov word [ebp - 0x27c], ax
cmp esi, 0x7b
je 0x1003a069
cmp esi, 0x37
je 0x1003a069
xor eax, eax
jmp 0x1003a06e
mov eax, 8
mov edx, dword [edx + 0x4c]
mov word [ebp - 0x27a], ax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [ebp - 0xf4]
push edx
push 0
push 0
mov dword [ebp - 0x270], eax
push 0
lea eax, [ebp - 0x280]
push eax
push ecx
call fcn.1002a3c0
add esp, 0x18
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
mov byte [ebx + 0x11], al
mov eax, dword [ebp - 0xf4]
jmp 0x1003a003
mov ecx, dword [ebx]
lea eax, [ebp - 0xf4]
push eax
push ecx
call fcn.1002aad0
jmp 0x1003a0f6
cmp eax, ecx
jl 0x1003a0e7
jne 0x1003a0dc
cmp esi, 0x7b
je 0x1003a0e7
mov dword [ebp - 0xf4], ecx
jmp case.0x100379c6.12
mov eax, dword [ebx]
lea edx, [ebp - 0xf4]
push edx
push eax
call fcn.1002a920
add esp, 8
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
mov byte [ebx + 0x11], 0
cmp dword [ebp - 0xf4], 0
je case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
cmp byte [ebx + 0x15], 0
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x30]
mov edi, dword [eax + ecx*4]
cmp dword [edi], ebx
je case.0x100379c6.12
mov esi, dword [ebp - 0xf0]
mov byte [edi + 0x14], bl
call fcn.10031960
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
mov byte [edi + 0x11], bl
mov byte [edi + 0x17], 1
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x30]
mov ebx, dword [edx + ecx*4]
xor eax, eax
cmp dword [ebx], eax
je 0x1003a210
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 0x40]
push ecx
push edx
push eax
mov edx, 0x97
lea eax, [ebp - 0xa0]
call fcn.10035150
mov esi, eax
add esp, 0xc
test esi, esi
je 0x10037f3d
cmp byte [edi], 0x80
jne 0x1003a1c9
or word [esi + 6], 0x10
mov edx, dword [ebx]
lea ecx, [ebp - 0x1a8]
push ecx
push 0
push 0
push 0
push esi
push edx
call fcn.1002a3c0
add esp, 0x18
mov dword [ebp - 0xa8], eax
call fcn.10035320
cmp dword [ebp - 0xa8], 0
jne case.0x100379c6.12
xor eax, eax
cmp dword [ebp - 0x1a8], eax
mov byte [ebx + 0x17], 0
sete al
mov dword [ebx + 0x5c], 0
cmp byte [edi], 0x80
jne 0x1003bd57
test eax, eax
je case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [edi + 0x10]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax + 0x4c]
lea esi, [edx + ecx*8]
mov edx, dword [eax + 0x30]
mov ecx, dword [edi + 4]
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax]
xor edx, edx
lea ebx, [eax + 0x58]
mov dword [eax + 0x5c], edx
mov eax, dword [eax + 0x40]
mov dword [ebx], edx
mov dword [ebp - 0xb0], ecx
movzx ecx, word [eax + 6]
mov dword [ebp - 0xd4], eax
xor eax, eax
cmp ax, cx
jae 0x1003a288
movzx eax, dx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x100379e1
inc edx
cmp dx, cx
jb 0x1003a271
cmp dword [ebp - 0xb0], 0
je case.0x100379c6.12
mov edx, dword [ebp - 0xd4]
mov eax, 0x20
mov dword [ebp - 0x258], esi
mov esi, dword [ebp - 0xec]
inc ecx
mov word [ebp - 0x262], ax
mov eax, esi
mov dword [ebp - 0x268], edx
mov word [ebp - 0x264], cx
call fcn.10031af0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push ebx
push 0
push 0
push 0
lea eax, [ebp - 0x268]
mov dword [ebp - 0x1b8], ecx
mov ecx, dword [ebp - 0xb0]
push eax
push ecx
mov dword [ebp - 0x1b4], edx
call fcn.1002a3c0
add esp, 0x18
test byte [ebp - 0x262], 0x20
mov dword [ebp - 0xa8], eax
jne 0x100379e1
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x25c]
cmp eax, dword [ebp - 0x1b8]
jne 0x1003a329
cmp ecx, dword [ebp - 0x1b4]
je 0x100379e1
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x30]
mov edx, dword [edi + 4]
mov esi, dword [ecx + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x1003a3b7
lea edx, [ebp - 0xb0]
push edx
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 0xec]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
push 0
push edx
push ecx
push 0
push eax
call fcn.1002a3c0
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebx + 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 0x1003a3af
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
mov dword [esi + 0x58], eax
jmp case.0x100379c6.12
cmp byte [esi + 0x15], bl
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
mov dword [esi + 0x58], ebx
jmp case.0x100379c6.12
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + edi*4]
mov esi, dword [eax + 0x48]
mov ecx, dword [ebp - 0xb8]
mov dword [ecx], esi
mov eax, dword [eax + 0x4c]
mov dword [ecx + 4], eax
mov edx, dword [edx + 0x30]
mov eax, dword [edx + edi*4]
add dword [eax + 0x48], 1
mov edx, 0xbf04
adc dword [eax + 0x4c], ebx
mov ax, word [ecx + 0x1c]
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
xor ebx, ebx
xor esi, esi
test eax, eax
je 0x1003a691
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xb0], ecx
call fcn.1002f030
and al, 3
cmp al, 1
jne 0x10039cc3
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x13], bl
jne 0x1003a590
mov eax, dword [eax]
mov ebx, dword [eax + 0x18]
mov esi, dword [eax + 0x1c]
mov ecx, ebx
or ecx, esi
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], esi
jne 0x1003a4f1
lea ebx, [ebp - 0xc4]
call fcn.1002a370
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
cmp dword [ebp - 0xc4], eax
je 0x1003a4b1
lea ebx, [eax + 1]
mov dword [ebp - 0xfc], eax
jmp 0x1003a4eb
mov esi, dword [ebp - 0xcc]
mov eax, dword [esi]
lea ebx, [ebp - 0x100]
call fcn.100297f0
mov ebx, dword [ebp - 0x100]
cmp ebx, 0xffffffff
jne 0x1003a4e1
cmp dword [ebp - 0xfc], 0x7fffffff
jne 0x1003a4e1
mov byte [esi + 0x13], 1
jmp 0x1003a4eb
add ebx, 1
adc dword [ebp - 0xfc], 0
mov esi, dword [ebp - 0xfc]
mov edi, dword [edi + 0xc]
test edi, edi
je 0x1003a553
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
lea edx, [edi + edi*4]
lea edi, [ecx + edx*8]
mov eax, edi
call fcn.10031af0
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x1003a524
cmp ecx, 0x7fffffff
je 0x1003c078
mov edx, dword [ebp - 0xcc]
cmp byte [edx + 0x13], 0
jne 0x1003c078
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x1003a54e
jl 0x1003a544
cmp ebx, eax
jae 0x1003a54e
mov esi, ecx
mov ebx, eax
mov dword [ebp - 0xfc], esi
mov dword [edi], ebx
mov dword [edi + 4], esi
cmp esi, 0x7fffffff
jg 0x1003a56e
jl 0x1003a562
cmp ebx, 0xffffffff
jae 0x1003a56e
mov eax, ebx
add eax, 1
mov ecx, esi
adc ecx, 0
jmp 0x1003a572
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax]
call fcn.10029430
mov esi, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xcc]
add esp, 8
cmp byte [eax + 0x13], 0
je 0x1003a67c
mov eax, dword [ebp - 0xac]
mov ebx, dword [eax + 0x38]
mov esi, dword [eax + 0x3c]
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], esi
xor edi, edi
test edi, edi
jne 0x1003a5dc
mov eax, ebx
and eax, 0xffffff
xor ecx, ecx
cmp eax, ebx
jne 0x1003a5dc
cmp ecx, esi
jne 0x1003a5dc
add ebx, 1
adc esi, ecx
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], esi
jmp 0x1003a614
lea ecx, [ebp - 0x100]
push ecx
push 8
call fcn.1001cd20
mov ebx, dword [ebp - 0x100]
add esp, 8
cmp edi, 5
jge 0x1003a60e
and ebx, 0xffffff
xor esi, esi
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], esi
jmp 0x1003a614
mov esi, dword [ebp - 0xfc]
mov edx, ebx
or edx, esi
je 0x1003a63f
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
lea eax, [ebp - 0xc4]
push eax
push 0
push esi
push ebx
push 0
push edx
call fcn.1002a3c0
add esp, 0x18
mov dword [ebp - 0xb0], eax
inc edi
cmp edi, 0x64
jge 0x1003a65a
cmp dword [ebp - 0xb0], 0
jne 0x1003a65a
cmp dword [ebp - 0xc4], 0
je 0x1003a5b4
cmp dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xac]
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], esi
jne 0x1003a67c
cmp dword [ebp - 0xc4], 0
je 0x1003c078
mov eax, dword [ebp - 0xcc]
mov byte [eax + 0x11], 0
mov byte [eax + 0x17], 0
mov dword [eax + 0x5c], 0
mov eax, dword [ebp - 0xb8]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
mov dword [eax], ebx
mov dword [eax + 4], esi
jmp case.0x100379c6.12
test byte [edi + 3], 1
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 8]
mov eax, dword [edx + 0x4c]
mov ebx, dword [edx + 0x30]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [edi + 4]
mov ebx, dword [ebx + ecx*4]
mov ecx, dword [eax]
mov dword [ebp - 0x158], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x154], ecx
je 0x1003a6fc
inc dword [edx + 0x84]
test byte [edi + 3], 2
mov ecx, dword [ebp - 0xac]
je 0x1003a713
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x34], eax
movzx eax, word [esi + 0x1c]
xor edx, edx
test al, 1
je 0x1003a723
mov dword [esi + 0x14], edx
mov dword [esi + 0x18], edx
cmp byte [ebx + 0x15], 0
je 0x1003a7dc
cmp byte [ebx + 0x16], 0
jne 0x1003a742
mov edx, dword [ebx + 0x30]
push edx
push ecx
call fcn.1001b3e0
add esp, 8
xor edx, edx
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], ecx
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x2c], eax
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x24]
je 0x1003a7af
cmp byte [ebx + 0x16], 0
jne 0x1003a7af
add eax, 2
push eax
call fcn.1001b050
add esp, 4
mov dword [ebx + 0x30], eax
test eax, eax
je 0x10037f3d
mov edx, dword [ebx + 0x2c]
mov ecx, dword [esi + 0x14]
push edx
push ecx
push eax
call fcn.100777a0
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x2c]
mov byte [edx + eax], 0
mov edx, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
mov byte [ecx + edx + 1], 0
add esp, 0xc
xor edx, edx
mov byte [ebx + 0x14], dl
jmp 0x1003a853
cmp byte [ebx + 0x16], 0
mov dword [ebx + 0x30], ecx
jne 0x1003a7d3
mov ax, word [esi + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [esi + 0x1c], ax
mov dword [esi + 0x24], edx
mov byte [ebx + 0x14], 0
jmp 0x1003a853
test byte [edi + 3], 0x10
je 0x1003a7ed
mov ecx, dword [ebx + 0x58]
mov dword [ebp - 0xb0], ecx
jmp 0x1003a7f3
mov dword [ebp - 0xb0], edx
test eax, 0x4000
je 0x1003a7fc
mov edx, dword [esi]
mov esi, dword [ebx]
push 0
push 0
mov dword [ebp - 0xc0], edx
call fcn.10029430
movzx ecx, byte [edi + 3]
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xd4]
and ecx, 8
push ecx
mov ecx, dword [eax + 0x18]
push edx
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 0x154]
push ecx
mov ecx, dword [ebp - 0x158]
push edx
push eax
mov eax, dword [ebx]
push ecx
push 0
call fcn.1002e100
add esp, 0x28
mov dword [ebp - 0xa8], eax
xor edx, edx
mov byte [ebx + 0x11], 0
mov byte [ebx + 0x17], 0
mov dword [ebx + 0x5c], edx
cmp dword [ebp - 0xa8], edx
jne case.0x100379c6.12
mov edx, dword [ebp - 0xac]
mov ecx, dword [edx + 0xbc]
test ecx, ecx
je case.0x100379c6.12
mov eax, dword [edi + 0x10]
test eax, eax
je case.0x100379c6.12
mov edx, dword [ebp - 0x154]
mov ebx, dword [ebx + 4]
push edx
mov edx, dword [ebp - 0x158]
push edx
push eax
mov eax, dword [ebp - 0xac]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xb8]
lea edx, [ebx + ebx*2]
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [edi + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x30]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xac]
xor esi, esi
mov dword [ebp - 0x168], esi
mov dword [ebp - 0x164], esi
cmp dword [ecx + 0xbc], esi
je 0x1003a912
cmp dword [edi + 0x10], esi
je 0x1003a912
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x164], eax
mov edi, ebx
call fcn.10034cd0
mov dword [ebp - 0xa8], eax
cmp eax, esi
jne 0x1003c082
mov esi, dword [ebx]
push 0
push 0
call fcn.10029430
mov ecx, dword [ebx]
add esp, 8
call fcn.1002e320
mov dword [ebp - 0xa8], eax
mov dword [ebx + 0x5c], 0
test eax, eax
jne 0x1003a994
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 0xbc]
test edx, edx
je 0x1003a994
mov ecx, dword [ebp - 0xe4]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x1003a994
mov esi, dword [ebp - 0x164]
mov ebx, dword [ebx + 4]
push esi
mov esi, dword [ebp - 0x168]
push esi
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xb8]
push ecx
lea ecx, [ebx + ebx*2]
mov ecx, dword [esi + ecx*8]
push ecx
push 9
push eax
call edx
add esp, 0x18
mov ecx, dword [ebp - 0xe4]
test byte [ecx + 8], 1
je case.0x100379c6.12
mov eax, dword [ebp - 0xa4]
inc dword [eax + 0x84]
jmp case.0x100379c6.12
cmp dword [edi + 4], ebx
je 0x1003a9d2
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx + 0x84]
mov ecx, dword [ebp - 0xac]
add dword [ecx + 0x48], eax
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0xa4]
mov dword [eax + 0x84], ebx
jmp case.0x100379c6.12
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax + 0x4c]
lea esi, [edx + ecx*8]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 0x30]
mov edi, dword [edx + ecx*4]
mov ebx, dword [edi]
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb0], ebx
call fcn.10034cd0
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
cmp byte [edi + 0x19], al
je 0x1003aa63
mov eax, dword [ebp - 0xb0]
lea ebx, [ebp - 0x208]
call fcn.100297f0
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x50]
cdq
cmp dword [ebp - 0x204], edx
jg 0x10037c9a
mov ecx, dword [ebp - 0x208]
jl 0x1003aa5b
cmp ecx, eax
ja 0x10037c9a
mov dword [ebp - 0x11c], ecx
jmp 0x1003aa89
lea edx, [ebp - 0x11c]
push edx
mov eax, ebx
call fcn.10029870
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x11c]
add esp, 4
cmp ecx, dword [eax + 0x50]
jg 0x10037c9a
mov ecx, dword [ebp - 0x11c]
xor eax, eax
mov ebx, esi
call fcn.10031440
test eax, eax
jne 0x10037f3d
mov dx, word [esi + 0x1c]
mov eax, dword [ebp - 0x11c]
mov ecx, 0xbf10
and dx, cx
or dx, 0x10
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], dx
cmp byte [edi + 0x19], 0
je 0x1003aae7
mov edx, dword [esi + 0x14]
push edx
push eax
mov eax, dword [ebp - 0xb0]
push 0
call fcn.10029de0
add esp, 0xc
mov dword [ebp - 0xa8], eax
mov byte [esi + 0x1f], 1
jmp case.0x100379c6.12
mov ecx, dword [esi + 0x14]
mov edx, dword [ebp - 0xb0]
push ecx
push eax
push 0
push edx
call fcn.10029e70
add esp, 0x10
mov dword [ebp - 0xa8], eax
mov byte [esi + 0x1f], 1
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov edi, dword [edx + eax*4]
cmp byte [edi + 0x14], bl
jne case.0x100379c6.12
cmp byte [edi + 0x17], bl
je 0x1003ab40
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x138], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp - 0x134], ecx
jmp 0x1003abd7
cmp byte [edi + 0x15], bl
je 0x1003ab5c
mov edx, dword [edi + 0x38]
mov dword [ebp - 0x138], edx
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x134], eax
jmp 0x1003abd7
mov eax, dword [edi + 0x50]
test eax, eax
je 0x1003ab9e
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x138]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov edi, dword [ebp - 0xa4]
mov ecx, dword [edi + 0x74]
mov edx, dword [ebp - 0xac]
push ecx
push edx
mov dword [ebp - 0xa8], eax
call fcn.1001b3e0
mov eax, dword [esi + 8]
mov dword [edi + 0x74], eax
add esp, 0x10
mov dword [esi + 8], ebx
jmp 0x1003abd7
call fcn.10034cd0
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
cmp byte [edi + 0x11], bl
je 0x1003abca
mov ecx, dword [edi + 8]
mov dword [ebp - 0x138], ecx
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x134], edx
jmp 0x1003abd7
mov eax, dword [edi]
lea ebx, [ebp - 0x138]
call fcn.100297f0
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
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.0x100379c6.12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov byte [eax + 0x14], 1
mov byte [eax + 0x11], bl
mov eax, dword [eax]
test eax, eax
je case.0x100379c6.12
mov esi, eax
call fcn.10026310
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
lea ebx, [ebp - 0x1c8]
call fcn.1002a370
xor ecx, ecx
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x1c8]
mov byte [esi + 0x14], al
mov byte [esi + 0x17], cl
mov byte [esi + 0x11], cl
mov dword [esi + 0x5c], ecx
cmp eax, ecx
je case.0x100379c6.12
mov edi, dword [edi + 8]
test edi, edi
jle case.0x100379c6.12
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xa4]
inc dword [eax + 0xc8]
jmp 0x1003ac9c
mov eax, dword [ebp - 0xa4]
mov edx, dword [eax + 0x30]
mov ecx, dword [edi + 4]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
test eax, eax
je 0x1003acd7
lea ebx, [ebp - 0x118]
call fcn.1002a340
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xa8], eax
xor eax, eax
cmp ecx, eax
sete dl
mov byte [esi + 0x12], dl
mov byte [esi + 0x17], al
mov dword [esi + 0x5c], eax
mov byte [esi + 0x11], al
jmp 0x1003ace2
mov ecx, 1
mov dword [ebp - 0x118], ecx
mov byte [esi + 0x14], cl
test ecx, ecx
je case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0xd8]
test ecx, ecx
jne 0x1003c0e8
mov eax, dword [ebp - 0xa4]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x30]
mov esi, dword [ecx + edx*4]
test esi, esi
je case.0x100379c6.12
mov eax, dword [esi]
mov dword [ebp - 0x148], 1
cmp byte [edi], 0x6a
jne 0x1003ad47
lea edx, [ebp - 0x148]
push edx
push eax
call fcn.1002a920
jmp 0x1003ad54
lea ecx, [ebp - 0x148]
push ecx
push eax
call fcn.1002aad0
mov dl, byte [ebp - 0x148]
add esp, 8
mov byte [esi + 0x14], dl
mov dword [esi + 0x5c], ebx
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0x148], ebx
jne 0x1003ad99
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0xbc], eax
mov al, byte [edi + 3]
test al, al
je 0x1003ad99
mov ecx, dword [ebp - 0xa4]
movzx eax, al
inc dword [ecx + eax*4 + 0xc0]
lea eax, [ecx + eax*4 + 0xc0]
mov byte [esi + 0x11], bl
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x30]
mov edx, dword [edi + 4]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esi]
mov dword [ebp - 0xd4], ecx
test ecx, ecx
je case.0x100379c6.12
mov ebx, dword [ebp - 0xf0]
mov edx, 0x4000
test word [ebx + 0x1c], dx
je 0x1003adec
mov eax, ebx
call fcn.100315d0
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov ecx, dword [ebp - 0xd4]
test byte [edi + 3], 0x10
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebx + 0x14]
je 0x1003adfd
mov edx, dword [esi + 0x58]
jmp 0x1003adff
xor edx, edx
push edx
mov edx, dword [edi + 0xc]
push edx
push 0
push 0
cdq
push 0x1009d260
push edx
push eax
push ebx
mov eax, ecx
call fcn.1002e100
add esp, 0x20
mov dword [ebp - 0xa8], eax
mov dword [esi + 0x5c], 0
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov ebx, dword [edx + eax*4]
mov esi, dword [ebx]
test esi, esi
je case.0x100379c6.12
mov cx, word [edi + 0xc]
mov eax, dword [ebx + 0x40]
mov edi, dword [edi + 8]
xor edx, edx
mov word [ebp - 0x2f4], cx
mov ecx, dword [ebp - 0xa4]
mov word [ebp - 0x2f2], dx
mov edx, dword [ecx + 0x4c]
lea ecx, [ebp - 0x1ac]
push ecx
push 0
mov dword [ebp - 0x2f8], eax
push 0
lea eax, [edi + edi*4]
lea eax, [edx + eax*8]
push 0
lea edx, [ebp - 0x2f8]
push edx
push esi
mov dword [ebp - 0x2e8], eax
call fcn.1002a3c0
add esp, 0x18
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003aeb7
cmp dword [ebp - 0x1ac], eax
jne 0x1003aeb7
mov ecx, esi
call fcn.1002e320
mov dword [ebp - 0xa8], eax
mov dword [ebx + 0x5c], 0
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov edi, dword [edx + eax*4]
mov esi, dword [edi]
test esi, esi
je case.0x100379c6.12
call fcn.10034cd0
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
cmp byte [edi + 0x14], bl
jne case.0x100379c6.12
lea eax, [ebp - 0x1f0]
push eax
mov eax, esi
call fcn.100355f0
add esp, 4
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003c082
mov eax, dword [ebp - 0xb8]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
mov edx, dword [ebp - 0x1ec]
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x1f0]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov esi, dword [edx + eax*4]
cmp dword [esi], ebx
je case.0x100379c6.12
mov eax, dword [esi + 0x40]
mov cx, word [edi + 0x10]
mov dword [ebp - 0x2e0], eax
mov word [ebp - 0x2dc], cx
cmp byte [edi + 3], bl
je 0x1003af85
mov edx, 0xc
mov word [ebp - 0x2da], dx
jmp 0x1003af91
mov eax, 4
mov word [ebp - 0x2da], ax
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xa4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
lea ecx, [eax + ecx*8]
lea edx, [ebp - 0x140]
push edx
lea eax, [ebp - 0x2e0]
push eax
mov dword [ebp - 0x2d0], ecx
call fcn.10035700
add esp, 8
cmp byte [edi], 0x29
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x140]
jne 0x1003afd4
neg eax
jmp 0x1003afd5
inc eax
mov dword [ebp - 0x140], eax
test eax, eax
jle case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xac]
mov eax, dword [edx + 0x8c]
xor ecx, ecx
test eax, eax
je 0x1003b044
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x1003b01c
cmp byte [eax + 0x80], 2
jae 0x1003b01c
cmp dword [eax + 0x60], ebx
jl 0x1003b01c
inc ecx
mov eax, dword [eax + 8]
test eax, eax
jne 0x1003b004
cmp ecx, 1
jle 0x1003b044
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xa8], 6
mov dword [eax + 0x68], 2
jmp case.0x100379c6.12
mov ebx, dword [edi + 0xc]
mov eax, dword [ebp - 0xac]
mov edx, dword [edi + 4]
lea ebx, [ebx + ebx*2]
add ebx, ebx
lea ecx, [ebp - 0x110]
push ecx
mov ecx, dword [eax + 8]
add ebx, ebx
add ebx, ebx
mov eax, dword [ecx + ebx + 4]
push edx
call fcn.1002ede0
mov ecx, dword [ebp - 0xb8]
mov dx, word [ecx + 0x1c]
mov esi, eax
mov eax, 0xbf04
and dx, ax
mov eax, dword [ebp - 0x110]
or dx, 4
mov word [ecx + 0x1c], dx
cdq
add esp, 8
mov dword [ebp - 0xa8], esi
mov dword [ecx], eax
mov dword [ecx + 4], edx
test esi, esi
jne case.0x100379c6.12
cmp dword [ebp - 0x110], esi
je case.0x100379c6.12
mov ecx, dword [ebp - 0xac]
mov esi, dword [ecx + 8]
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0x110]
add esi, ebx
call fcn.1004a380
jmp case.0x100379c6.12
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
neg edx
sbb edx, edx
lea eax, [ebp - 0xc0]
and edx, eax
mov eax, dword [edi + 8]
push edx
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0xac]
push ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc0], ebx
mov ebx, dword [ecx + edx*8 + 4]
call fcn.1002eb10
add esp, 8
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xa8], eax
je case.0x100379c6.12
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xa4]
add dword [ecx + 0x84], eax
mov edi, dword [edi + 0xc]
test edi, edi
jle case.0x100379c6.12
mov ecx, dword [ecx + 0x4c]
lea edx, [edi + edi*4]
lea ecx, [ecx + edx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x100379c6.12
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xac]
mov ecx, dword [ecx + 8]
lea edx, [edi + edi*2]
lea ecx, [ecx + edx*8]
xor edx, edx
cmp al, 0x35
setne dl
mov dword [ebp - 0xc8], ebx
lea eax, [edx - 1]
and eax, 3
add eax, 2
push eax
lea eax, [ebp - 0xc8]
push eax
mov eax, dword [ecx + 4]
call fcn.1002e910
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc8]
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x1c]
mov dword [ecx], eax
mov eax, 0xbf04
and dx, ax
add esp, 8
or dx, 4
mov word [ecx + 0x1c], dx
jmp case.0x100379c6.12
mov esi, dword [ebp - 0xac]
mov ebx, dword [edi + 4]
push esi
call fcn.10025b90
add esp, 4
cmp dword [edi + 8], 0
jne 0x1003b1de
mov edx, dword [esi + 8]
lea ecx, [ebx + ebx*2]
mov eax, dword [edx + ecx*8 + 0x14]
test byte [eax + 0x3a], 1
je 0x1003b28a
mov eax, str.sqlite_temp_master
cmp ebx, 1
je 0x1003b1ed
mov eax, str.sqlite_master
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [edi + 0x10]
push ecx
add edx, 0x74
push eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x1d8], edx
lea edx, [ebx + ebx*2]
mov dword [ebp - 0x1e0], esi
mov ecx, dword [eax + edx*8]
push ecx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push esi
call fcn.1001c9f0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x1003b23a
mov dword [ebp - 0xa8], 7
jmp 0x1003b28a
push 0
lea edx, [ebp - 0x1e0]
push edx
push fcn.10057ca0
push edi
push esi
mov byte [esi + 0x80], 1
mov dword [ebp - 0x1d4], 0
call fcn.10054f90
add esp, 0x14
mov dword [ebp - 0xa8], eax
test eax, eax
jne 0x1003b279
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0xa8], eax
push edi
push esi
call fcn.1001b3e0
add esp, 8
mov byte [esi + 0x80], 0
mov ebx, esi
call fcn.10025c70
cmp dword [ebp - 0xa8], 7
je 0x10037f3d
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xac]
call fcn.10046370
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0xac]
mov eax, dword [edi + 4]
push ecx
push edx
call fcn.10048550
jmp 0x1003bf70
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xac]
push eax
mov eax, dword [edi + 4]
push ecx
call fcn.10047c70
jmp 0x1003bf70
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0xac]
push edx
push eax
mov eax, dword [edi + 4]
call fcn.10062a90
jmp 0x1003bf70
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0xac]
lea ecx, [eax*4 + 4]
mov dword [ebp - 0xc0], eax
call fcn.1001b5e0
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x10037f3d
cmp dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ecx + 0x4c]
mov ecx, dword [edi + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
lea ebx, [eax + edx*8]
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], 0
jle 0x1003b387
call fcn.10031960
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xc8]
mov dword [edx + ecx*4], eax
inc ecx
add esi, 0x28
mov dword [ebp - 0xb0], ecx
cmp ecx, dword [ebp - 0xc0]
jl 0x1003b361
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xc0]
mov dword [esi + eax*4], 0
mov ecx, dword [ebx]
movzx eax, byte [edi + 3]
mov edi, dword [ebp - 0xac]
push ecx
mov ecx, dword [edi + 8]
push edx
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8 + 4]
push esi
lea edx, [ebp - 0x1c0]
call fcn.10030190
add esp, 0xc
push esi
push edi
mov dword [ebp - 0xd4], eax
call fcn.1001b3e0
mov edi, dword [ebp - 0x1c0]
mov esi, dword [ebp - 0xb4]
mov eax, edi
cdq
add esp, 8
sub dword [ebx], eax
sbb dword [ebx + 4], edx
call fcn.10031c10
test edi, edi
je 0x1003b417
mov eax, dword [ebp - 0xd4]
test eax, eax
je 0x10037f3d
push 1
push eax
mov eax, fcn.1001b360
or ecx, 0xffffffff
mov edx, esi
call fcn.10031f40
add esp, 8
movzx ecx, byte [ebp - 0xe8]
mov eax, dword [ebp - 0xb4]
call fcn.10031420
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x4c]
mov edi, dword [edi + 8]
lea ecx, [ecx + ecx*4]
test byte [eax + ecx*8 + 0x1c], 0x20
lea ebx, [eax + ecx*8]
lea edx, [edi + edi*4]
lea esi, [eax + edx*8]
jne 0x1003b45f
call fcn.10031ce0
test byte [ebx + 0x1c], 0x20
je 0x10037f3d
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [ebx]
push eax
push ecx
call fcn.100217b0
jmp 0x1003bf70
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 0xd8]
test edx, edx
jne 0x1003c0e8
mov eax, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x4c]
lea ecx, [ecx + ecx*4]
test byte [eax + ecx*8 + 0x1c], 0x20
lea ebx, [eax + ecx*8]
mov ecx, dword [edi + 0xc]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
mov dword [ebp - 0xb8], eax
je 0x1003b4dd
mov eax, dword [ebx]
lea esi, [ebp - 0x1f8]
call fcn.10021b70
test eax, eax
je 0x1003b4dd
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [ebp - 0x1f8]
mov esi, dword [ebp - 0xb8]
push ecx
push edx
call fcn.10031c40
jmp 0x1003bf70
mov esi, ebx
call fcn.10031c10
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb4]
test byte [eax + 0x1c], 0x20
mov esi, dword [edi + 0x10]
mov ebx, eax
jne 0x1003b513
call fcn.10031ce0
test byte [ebx + 0x1c], 0x20
je 0x10037f3d
test esi, esi
je 0x1003b551
js 0x1003b520
mov eax, esi
and eax, 0xf
jmp 0x1003b525
mov eax, 0xff
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
push ecx
mov ecx, dword [ebx]
call fcn.10021bf0
add esp, 8
test eax, eax
je 0x1003b54f
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
test esi, esi
js case.0x100379c6.12
mov eax, dword [ebp - 0xec]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb4]
mov edi, dword [ecx]
push edx
push eax
call fcn.100217b0
jmp 0x1003bf70
mov ecx, dword [ebp - 0xa4]
mov ebx, dword [ecx + 0x54]
lea eax, [ebx + 1]
mov dword [ecx + 0x54], eax
cmp ebx, dword [ecx + 0x58]
jl 0x1003b5b4
mov edi, dword [ecx + 0x5c]
mov esi, dword [ebp - 0xac]
mov dword [ecx + 0x58], eax
lea eax, [ebx + 1]
shl eax, 4
call fcn.1001b700
mov edx, dword [ebp - 0xa4]
mov dword [edx + 0x5c], eax
test eax, eax
je 0x10037f3d
mov ecx, edx
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 0x30]
shl ebx, 4
add ebx, dword [ecx + 0x5c]
mov dword [ebx], edx
mov eax, dword [eax + 0x34]
mov dword [ebx + 4], eax
mov ecx, dword [ecx + 0x84]
mov dword [ebx + 8], ecx
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
dec dword [ecx + 0x54]
mov eax, dword [ecx + 0x54]
mov edx, dword [ebp - 0xac]
shl eax, 4
add eax, dword [ecx + 0x5c]
mov esi, dword [eax]
mov dword [edx + 0x30], esi
mov esi, dword [eax + 4]
mov dword [edx + 0x34], esi
mov edx, dword [eax + 8]
mov dword [ecx + 0x84], edx
jmp case.0x100379c6.12
mov edi, dword [ebp - 0xb4]
mov eax, edi
call fcn.10031af0
mov esi, dword [ebp - 0xf0]
mov eax, esi
call fcn.10031af0
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp dword [edi + 4], esi
jg case.0x100379c6.12
jl 0x1003b63e
mov edx, edi
cmp dword [edx], eax
jae case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xb4]
cmp dword [edx + 4], ebx
jl case.0x100379c6.12
jg 0x1003b669
mov eax, edx
cmp dword [eax], ebx
jbe case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xb4]
cmp dword [ecx + 4], ebx
jg case.0x100379c6.12
jl 0x1003b693
mov edx, ecx
cmp dword [edx], ebx
jae case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov eax, dword [edi + 8]
movzx esi, byte [edi + 3]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
mov ebx, dword [eax + 0x24]
lea ecx, [ecx + edx*8]
xor edx, edx
test esi, esi
jle 0x1003b6f1
mov dword [ebx + edx*4], ecx
call fcn.100374f0
inc edx
add ecx, 0x28
cmp edx, esi
jl 0x1003b6e1
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x2c0], edx
mov edx, dword [ecx + 0x4c]
mov ecx, dword [ebp - 0xac]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x290], eax
inc dword [eax + 0x18]
mov eax, 1
mov word [ebp - 0x29c], ax
xor eax, eax
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x298], eax
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], eax
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2a8], ecx
test byte [eax + 3], 8
je 0x1003b762
mov edx, dword [edi - 4]
mov dword [ebp - 0x288], edx
mov edx, dword [eax + 0x10]
push ebx
lea ecx, [ebp - 0x2c0]
push esi
push ecx
call edx
add esp, 0xc
cmp dword [ebp - 0x28c], 0
je 0x1003b7b2
mov bl, 1
lea edi, [ebp - 0x2b8]
call fcn.10032460
mov esi, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xac]
push 0x1009d28c
add esi, 0x74
call fcn.1001b7d0
mov eax, dword [ebp - 0x28c]
add esp, 8
mov dword [ebp - 0xa8], eax
lea ecx, [ebp - 0x2b8]
push ecx
call fcn.10031840
add esp, 4
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0x4c]
mov eax, dword [edi + 0x10]
lea esi, [ecx + edx*8]
mov ecx, esi
mov dword [ebp - 0xb0], esi
call fcn.10031730
mov dword [ebp - 0xa8], eax
cmp eax, 1
jne 0x1003b81b
mov bl, al
mov edi, esi
call fcn.10032460
mov esi, dword [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0xac]
push 0x1009d28c
add esi, 0x74
call fcn.1001b7d0
add esp, 8
mov esi, edi
movzx ecx, byte [ebp - 0xe8]
mov eax, esi
call fcn.10031420
mov ecx, esi
call fcn.10031d90
test eax, eax
jne 0x10037c9a
jmp case.0x100379c6.12
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x1c], bl
jne 0x1003b86d
mov esi, dword [ebp - 0xa4]
push str.cannot_VACUUM_from_within_a_transaction
add esi, 0x74
call fcn.1001b7d0
add esp, 4
mov dword [ebp - 0xa8], 1
jmp case.0x100379c6.12
mov esi, eax
call fcn.100662c0
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + edx*8 + 4]
push eax
call fcn.100289f0
add esp, 4
mov dword [ebp - 0xa8], eax
cmp eax, 0x65
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xa8], ebx
jmp case.0x100379c6.12
cmp dword [edi + 4], ebx
jne 0x1003b8d4
mov eax, dword [ebp - 0xac]
call fcn.100357a0
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xa4]
mov byte [edx + 0x7e], 1
jmp case.0x100379c6.12
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xac]
mov cl, byte [edi + 0xc]
push edx
mov edx, dword [ebx + 8]
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*8 + 4]
call fcn.10030930
add esp, 4
mov dword [ebp - 0xa8], eax
cmp al, 6
jne case.0x100379c6.12
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 0xa4]
push eax
push str.database_table_is_locked:__s
add esi, 0x74
mov eax, ebx
call fcn.1001b7d0
jmp 0x1003bf70
mov edi, dword [edi + 0x10]
mov ebx, dword [ebp - 0xac]
push ebx
mov eax, edi
call fcn.10067610
add esp, 4
mov dword [ebp - 0xa8], eax
test edi, edi
je case.0x100379c6.12
mov esi, dword [ebp - 0xa4]
mov ecx, dword [esi + 0x74]
push ecx
push ebx
call fcn.1001b3e0
mov edx, dword [edi + 8]
mov dword [esi + 0x74], edx
mov dword [edi + 8], 0
jmp 0x1003bf70
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xac]
push eax
mov eax, dword [edi + 4]
add ebx, 0x74
call fcn.10067170
add esp, 4
mov dword [ebp - 0xa8], eax
jmp case.0x100379c6.12
mov ebx, dword [ebp - 0xa4]
mov esi, dword [ebp - 0xac]
mov byte [ebx + 0x80], 2
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
push ecx
call fcn.100673e0
add esp, 4
mov dword [ebp - 0xa8], eax
mov byte [ebx + 0x80], 0
jmp case.0x100379c6.12
mov esi, dword [edi + 0x10]
mov dword [ebp - 0xe0], ebx
mov eax, dword [esi]
lea edx, [ebp - 0xe0]
push edx
mov dword [ebp - 0xd4], eax
mov eax, dword [eax + 0x18]
push esi
call eax
mov ebx, dword [ebp - 0xa4]
mov ecx, dword [ebx + 0x74]
mov edx, dword [ebp - 0xac]
push ecx
push edx
mov dword [ebp - 0xa8], eax
call fcn.1001b3e0
mov eax, dword [esi + 8]
add esp, 0x10
cmp dword [ebp - 0xa8], 0
mov dword [ebx + 0x74], eax
mov dword [esi + 8], 0
jne case.0x100379c6.12
mov ecx, dword [ebp - 0xe0]
push 0
mov dword [ecx], esi
mov esi, dword [edi + 4]
push 0xffffffffffffffff
push 0
mov eax, ebx
call fcn.10037520
add esp, 0xc
test eax, eax
je 0x1003ba63
mov edx, dword [ebp - 0xe0]
mov dword [eax + 0x50], edx
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [eax + 0x54], ecx
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov byte [edx + 0x1e], 1
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp case.0x100379c6.12
mov esi, dword [ebp - 0xa4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x4c]
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ecx + 0x50]
mov ebx, dword [ecx]
mov edx, dword [ebx]
mov dword [ebp - 0xdc], edx
mov edx, dword [eax]
mov dword [ebp - 0xc4], edx
mov edx, dword [esi + 0x24]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0xc0], edx
xor edx, edx
mov dword [ebp - 0xd4], ecx
test ecx, ecx
jle 0x1003bb18
add eax, 0x50
mov dword [ebp - 0xb0], eax
jmp 0x1003baf6
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + edx*4], eax
mov ecx, eax
call fcn.100374f0
mov ecx, dword [ebp - 0xd4]
add dword [ebp - 0xb0], 0x28
inc edx
cmp edx, ecx
jl 0x1003baf0
inc dword [ebx + 4]
mov edx, dword [ebp - 0xc0]
push edx
mov edx, dword [ebp - 0xc8]
push ecx
mov ecx, dword [ebp - 0xc4]
mov byte [esi + 0x80], 1
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [ebp - 0xdc]
push ecx
mov ecx, dword [eax + 0x20]
push edx
call ecx
mov edx, dword [esi + 0x74]
add esp, 0x14
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xac]
push edx
push eax
mov byte [esi + 0x80], 0
call fcn.1001b3e0
mov ecx, dword [ebx + 8]
mov dword [esi + 0x74], ecx
mov ecx, dword [ebp - 0xac]
add esp, 8
mov eax, ebx
mov dword [ebx + 8], 0
call fcn.10066700
cmp dword [ebp - 0xa8], 0
jne 0x1003bbb0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
je 0x1003bbb0
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
mov edx, dword [ebp - 0xe0]
mov byte [edx + 0x14], 0
jmp case.0x100379c6.12
mov ecx, dword [ebp - 0xa4]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x30]
mov edx, dword [edx + eax*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [ecx + 0x4c]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xc0], esi
cmp byte [edx + 0x14], bl
je 0x1003bbf5
call fcn.10031c10
jmp case.0x100379c6.12
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx + 0x50]
mov esi, dword [eax]
mov ecx, dword [esi]
push 0x40
lea edx, [ebp - 0x338]
push 0
push edx
mov dword [ebp - 0xd4], ecx
call fcn.100775d0
mov ebx, dword [ebp - 0xc0]
add esp, 0xc
lea eax, [ebp - 0x330]
call fcn.10031f10
mov eax, dword [ebp - 0x314]
mov ecx, dword [edi + 8]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x314], ax
mov eax, dword [ebp - 0xb0]
push ecx
mov ecx, dword [eax + 0x50]
lea edx, [ebp - 0x338]
push edx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x2c]
push ecx
call eax
mov edi, dword [ebp - 0xa4]
mov ecx, dword [edi + 0x74]
mov edx, dword [ebp - 0xac]
add esp, 0xc
push ecx
push edx
mov dword [ebp - 0xa8], eax
call fcn.1001b3e0
mov eax, dword [esi + 8]
movzx ecx, byte [ebp - 0xe8]
mov dword [edi + 0x74], eax
add esp, 8
lea eax, [ebp - 0x330]
mov dword [esi + 8], 0
call fcn.10031420
mov esi, dword [ebp - 0xc0]
lea ebx, [ebp - 0x330]
jmp 0x10038581
mov edx, dword [ebp - 0xa4]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xb0], eax
cmp byte [eax + 0x14], bl
jne case.0x100379c6.12
mov ebx, dword [ebp - 0xa4]
mov ecx, eax
mov edx, dword [ecx + 0x50]
mov esi, dword [edx]
mov eax, dword [esi]
inc dword [esi + 4]
mov byte [ebx + 0x80], 1
mov ecx, dword [ecx + 0x50]
mov edx, dword [eax + 0x24]
push ecx
mov dword [ebp - 0xd4], eax
call edx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx + 0x74]
add esp, 4
push eax
push ecx
mov byte [ebx + 0x80], 0
call fcn.1001b3e0
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0xac]
mov dword [ebx + 0x74], edx
add esp, 8
mov eax, esi
mov dword [esi + 8], 0
call fcn.10066700
cmp dword [ebp - 0xa8], 0
jne 0x1003bd5f
mov eax, dword [ebp - 0xb0]
mov ecx, dword [eax + 0x50]
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
test eax, eax
jne case.0x100379c6.12
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xbc], edi
jmp case.0x100379c6.12
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov esi, dword [ebp - 0xa4]
mov edx, dword [esi + 0x4c]
lea ecx, [edi + edi*4]
test byte [edx + ecx*8 + 0x1c], 0x12
lea edi, [edx + ecx*8]
jne 0x1003bda6
movzx esi, byte [ebp - 0xe8]
mov eax, edi
call fcn.10031680
test eax, eax
jne 0x10037f3d
mov esi, dword [ebp - 0xa4]
inc dword [ebx + 4]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx]
mov edx, dword [eax + 0x4c]
push ecx
push ebx
call edx
mov edi, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.1001b3e0
mov ecx, dword [ebx + 8]
mov dword [esi + 0x74], ecx
add esp, 0x10
mov eax, ebx
mov ecx, edi
mov dword [ebx + 8], 0
call fcn.10066700
jmp case.0x100379c6.12
mov esi, dword [edi + 0x10]
mov ecx, dword [esi]
mov eax, dword [edi + 8]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xc0], eax
cmp dword [ecx + 0x34], ebx
jne 0x1003be2d
mov esi, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xac]
push str.read_only_table
add esi, 0x74
call fcn.1001b7d0
add esp, 4
mov dword [ebp - 0xa8], 1
jmp case.0x100379c6.12
mov ebx, dword [ebp - 0xa4]
mov edx, dword [ebx + 0x24]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0xb0], edx
mov edx, dword [ebx + 0x4c]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
xor edx, edx
test eax, eax
jle 0x1003be6a
mov edi, edi
call fcn.100374f0
mov eax, dword [ebp - 0xb0]
mov dword [eax + edx*4], ecx
inc edx
add ecx, 0x28
cmp edx, dword [ebp - 0xc0]
jl 0x1003be50
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc0]
inc dword [esi + 4]
lea ecx, [ebp - 0x1d0]
push ecx
mov ecx, dword [ebp - 0xd4]
push edx
mov edx, dword [ecx + 0x34]
push eax
push esi
call edx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx + 0x74]
push eax
push ecx
call fcn.1001b3e0
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0xac]
mov dword [ebx + 0x74], edx
add esp, 0x18
mov eax, esi
mov dword [esi + 8], 0
call fcn.10066700
cmp dword [edi + 4], 0
je 0x1003bee8
cmp dword [ebp - 0xa8], 0
jne 0x1003bee8
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
inc dword [ebx + 0x84]
jmp case.0x100379c6.12
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx + 8]
lea eax, [edi + edi*2]
mov eax, dword [edx + eax*8 + 4]
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
lea ebx, [ebp - 0x1c4]
call fcn.10023b90
mov dword [ebp - 0xa8], eax
test eax, eax
jne case.0x100379c6.12
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x1c4]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x100379c6.12
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x1003bf54
mov eax, dword [ebp - 0xa4]
mov edi, dword [eax + 0xcc]
test edi, edi
je case.0x100379c6.12
mov ecx, dword [ebp - 0xac]
mov eax, dword [ecx + 0x98]
test eax, eax
je case.0x100379c6.12
mov edx, ecx
mov ecx, dword [edx + 0x9c]
push edi
push ecx
call eax
add esp, 8
inc dword [ebp - 0xbc]
cmp dword [ebp - 0xa8], 0
je 0x10037890
jmp 0x10037f67
mov dword [ebp - 0xa8], 9
jmp 0x10037f67
lea edx, [ebp - 0x248]
push edx
call fcn.10031840
add esp, 4
jmp 0x10037f3d
mov dword [ebp - 0xa8], 0x14
jmp 0x1003c082
mov eax, dword [ebp - 0xbc]
mov dword [ebx + 0x60], eax
mov esi, 5
mov byte [edi + 0x1c], 0
mov dword [ebx + 0x64], esi
jmp 0x10037f96
test edi, edi
je 0x1003c009
mov eax, ebx
call fcn.10070580
mov esi, dword [ebp - 0xac]
mov byte [ebx + 0x1c], 1
mov ebx, dword [ebp - 0xa4]
call fcn.1006fdf0
mov esi, dword [ebx + 0x64]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x10037f96
mov esi, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xa4]
mov byte [esi + 0x1c], al
call fcn.10034500
cmp eax, 5
jne 0x1003bff2
mov ecx, dword [ebp - 0xbc]
mov dl, 1
sub dl, byte [ebp - 0xd4]
mov dword [ebx + 0x60], ecx
mov byte [esi + 0x1c], dl
mov esi, eax
mov dword [ebx + 0x64], esi
jmp 0x10037f96
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xbc]
mov esi, 5
mov dword [eax + 0x60], ecx
mov dword [eax + 0x64], esi
jmp 0x10037f96
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xbc]
mov esi, 5
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], esi
jmp 0x10037f96
mov dword [ebp - 0xa8], 0xd
mov ecx, dword [ebp - 0xac]
cmp byte [ecx + 0x1e], 0
je 0x1003c09a
mov dword [ebp - 0xa8], 7
jmp 0x1003c0aa
cmp dword [ebp - 0xa8], 0xc0a
je 0x10037f67
mov eax, dword [ebp - 0xa8]
and eax, 0xff
cmp eax, 0x1a
ja 0x1003c0c5
mov eax, dword [eax*4 + 0x1009d088]
test eax, eax
jne 0x1003c0ca
mov eax, str.unknown_error
mov esi, dword [ebp - 0xa4]
push eax
push 0x1009d28c
add esi, 0x74
mov eax, ecx
call fcn.1001b7d0
add esp, 8
jmp 0x10037f67
mov ecx, dword [ebp - 0xa4]
xor esi, esi
mov edx, 9
mov dword [ebp - 0xa8], edx
mov dword [ecx + 0x64], edx
mov edx, dword [str.interrupted]
cmp edx, esi
jne 0x1003c10d
mov edx, str.unknown_error
push edx
push 0x1009d28c
lea esi, [ecx + 0x74]
call fcn.1001b7d0
add esp, 8
jmp 0x10037f67