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

Disassembly:
sub esp, 0x11c
mov eax, dword [0x100cc020]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebp, dword [edi]
mov ecx, dword [edi + 0x14]
mov edx, dword [ebp + 8]
mov esi, dword [edi + 0x4c]
xor eax, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 0xc]
mov dl, byte [ecx + 0x49]
lea ebx, [edi + 0x80]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebp
mov byte [esp + 0x2f], al
mov byte [esp + 0x2b], dl
mov dword [esp + 0x44], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ebx
call fcn.10047c20
cmp dword [edi + 0x58], 7
je 0x10058815
xor eax, eax
mov dword [edi + 0x58], eax
mov dword [edi + 0x2c], eax
mov ecx, dword [ebp + 0xe0]
mov dword [ebp + 0x1a8], eax
test ecx, ecx
jne 0x1005ce69
xor edx, edx
cmp dword [ebp + 0x108], eax
mov eax, dword [edi + 0x54]
setne dl
mov dword [esp + 0x18], eax
mov dword [esp + 0x48], edx
jmp 0x10058380
cmp byte [ebp + 0x1e], 0
jne 0x10058815
cmp dword [esp + 0x48], 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
lea ecx, [eax + eax*4]
lea ebp, [edx + ecx*4]
je 0x100583ce
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x110], eax
jne 0x100583c9
mov eax, dword [ecx + 0x10c]
mov ecx, dword [ecx + 0x108]
push eax
call ecx
add esp, 4
test eax, eax
jne 0x1005cca8
inc eax
mov dword [esp + 0x44], eax
test byte [ebp + 2], 2
je 0x100583fb
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ebx, [eax + edx*8]
mov esi, ebx
mov dword [esp + 0x20], ebx
call fcn.10052500
mov esi, dword [esp + 0x24]
mov ecx, 4
mov word [ebx + 0x1c], cx
jmp 0x100583ff
mov ebx, dword [esp + 0x20]
movzx eax, byte [ebp]
dec eax
cmp eax, 0x90
ja case.0x1005840f.17
jmp dword [eax*4 + 0x1005cea4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xe0]
test eax, eax
jne 0x1005ce69
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [esi + ecx*8]
mov edx, 4
mov word [esi + 0x1c], dx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x18], eax
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
mov edx, dword [esi + ecx*8]
mov dword [esp + 0x18], edx
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
mov edx, dword [esi + eax*8]
lea esi, [esi + eax*8]
mov eax, dword [esp + 0x18]
mov ecx, 4
mov word [esi + 0x1c], cx
mov dword [esp + 0x60], edx
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x18], eax
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x1c], 1
je case.0x1005840f.17
cmp dword [ebp + 4], 0
jne 0x1005ccb5
mov eax, dword [edi + 0xdc]
test eax, eax
je 0x1005ccb5
mov edx, dword [eax + 0x3c]
mov ecx, dword [edi + 0x6c]
dec dword [edi + 0xe0]
mov dword [edi + 0xdc], edx
mov edx, dword [esp + 0x14]
add dword [edx + 0x40], ecx
mov dword [edx + 0x3c], ecx
call fcn.100547e0
cmp dword [ebp + 8], 4
mov dword [esp + 0x18], eax
jne 0x10058505
mov ecx, dword [edi + 0x14]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [esp + 0x18], edx
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x24], ecx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x1005840f.17
mov ebp, dword [ebp + 0x10]
mov edx, dword [ebp]
mov dword [ebx], edx
mov eax, dword [ebp + 4]
mov dword [ebx + 4], eax
jmp case.0x1005840f.17
mov ecx, 8
mov word [ebx + 0x1c], cx
mov edx, dword [ebp + 0x10]
fld qword [edx]
fstp qword [ebx + 8]
jmp case.0x1005840f.17
mov edi, dword [ebp + 0x10]
mov ecx, edi
mov byte [ebp], 9
call fcn.1003c910
cmp byte [esp + 0x2b], 1
mov dword [ebp + 4], eax
je 0x10058662
test edi, edi
jne 0x1005857d
push ebx
call fcn.10052850
add esp, 4
jmp 0x10058600
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x1005858d
mov eax, dword [eax + 0x48]
mov dword [esp + 0x10], eax
jmp 0x10058595
mov dword [esp + 0x10], 0x3b9aca00
mov eax, dword [esp + 0x10]
xor esi, esi
test eax, eax
jl 0x100585ab
nop
cmp byte [esi + edi], 0
je 0x100585ab
inc esi
cmp esi, eax
jle 0x100585a0
xor ecx, ecx
mov dword [esp + 0x30], 0x202
push ebx
cmp ecx, fcn.1003a9f0
jne 0x100585c8
call fcn.10052570
mov dword [ebx + 0x24], edi
jmp 0x100585d5
call fcn.10052570
mov dword [esp + 0x34], 0xa02
mov dx, word [esp + 0x34]
add esp, 4
cmp esi, dword [esp + 0x10]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x14], edi
mov dword [ebx + 0x18], esi
mov word [ebx + 0x1c], dx
mov byte [ebx + 0x1f], 1
mov byte [ebx + 0x1e], 3
jg 0x10058e5a
movzx ecx, byte [esp + 0x2b]
mov eax, ebx
mov dword [esp + 0x10], 0
call fcn.100521a0
test eax, eax
jne 0x10058815
mov ebx, dword [esp + 0x20]
mov dword [ebx + 0x24], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov edx, 0x800
or ax, dx
mov word [ebx + 0x1c], ax
cmp byte [ebp + 1], 0xff
jne 0x10058652
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.1003a9f0
add esp, 8
mov byte [ebp + 1], 0xff
mov edx, dword [ebx + 0x14]
mov dword [ebp + 0x10], edx
mov eax, dword [ebx + 0x18]
mov dword [ebp + 4], eax
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x48]
jg 0x10058e5a
mov eax, 0xa02
mov word [ebx + 0x1c], ax
mov ecx, dword [ebp + 0x10]
mov al, byte [esp + 0x2b]
mov dword [ebx + 0x14], ecx
mov edx, dword [ebp + 4]
mov dword [ebx + 0x18], edx
mov byte [ebx + 0x1f], al
jmp case.0x1005840f.17
mov esi, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
test esi, esi
jne 0x100586b2
push ebx
call fcn.10052850
mov cl, byte [esp + 0x2f]
add esp, 4
mov byte [ebx + 0x1f], cl
jmp case.0x1005840f.17
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x100586be
mov eax, dword [eax + 0x48]
jmp 0x100586c3
mov eax, 0x3b9aca00
mov edi, 0x10
test ebp, ebp
jge 0x100586e7
xor ebp, ebp
test eax, eax
jl 0x100586e2
mov dl, byte [esi + ebp + 1]
or dl, byte [esi + ebp]
je 0x100586e2
add ebp, 2
cmp ebp, eax
jle 0x100586d2
mov edi, 0x210
xor eax, eax
push ebx
cmp eax, fcn.1003a9f0
jne 0x100586fe
call fcn.10052570
add esp, 4
mov dword [ebx + 0x24], esi
jmp 0x1005870c
call fcn.10052570
add esp, 4
or edi, 0x800
mov cl, byte [esp + 0x2b]
mov byte [ebx + 0x1f], 1
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x18], ebp
mov word [ebx + 0x1c], di
mov byte [ebx + 0x1e], 4
mov byte [ebx + 0x1f], cl
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
mov eax, dword [edi + 0x3c]
lea edx, [ebp + ebp*4]
lea esi, [eax + edx*8 - 0x28]
mov ecx, esi
mov dword [esp + 0x60], esi
call fcn.10052a80
test eax, eax
jne 0x10058e5a
mov ebx, dword [esp + 0x20]
push 0x800
push esi
call fcn.10052ab0
add esp, 8
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
mov ecx, dword [ebp + 4]
mov dword [esp + 0x68], ecx
mov ebp, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
lea edx, [ebp + ebp*4]
lea ebx, [esi + ecx*8]
lea ecx, [esi + edx*8]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x20], ecx
test eax, eax
je 0x100587c8
mov esi, ecx
dec eax
mov dword [esp + 0x64], eax
mov edx, dword [esi + 0x24]
mov dword [esp + 0x60], edx
mov eax, esi
mov dword [esi + 0x24], 0
call fcn.10052b60
mov eax, dword [esp + 0x60]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x64]
add ebx, 0x28
add esi, 0x28
test eax, eax
jne 0x10058795
mov dword [esp + 0x20], esi
dec eax
mov dword [esp + 0x64], eax
jmp case.0x1005840f.17
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea edx, [ebp + ebp*4]
lea eax, [esi + edx*8]
lea ebx, [esi + ecx*8]
push 0x1000
push eax
mov dword [esp + 0x28], ebx
call fcn.10052ab0
mov ecx, 0x1000
add esp, 8
test word [ebx + 0x1c], cx
je case.0x1005840f.17
mov eax, ebx
call fcn.100522d0
test eax, eax
je case.0x1005840f.17
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
push str.out_of_memory
add edi, 0x5c
mov byte [eax + 0x1e], 1
call fcn.1003add0
mov dword [esp + 0x14], 7
jmp 0x10058e77
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea ecx, [esi + eax*8]
lea ebx, [esi + edx*8]
push 0x1000
push ecx
mov dword [esp + 0x28], ebx
call fcn.10052ab0
add esp, 8
jmp case.0x1005840f.17
push 0
mov ecx, edi
call fcn.10055040
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x1005840f.17
push 1
push edi
call fcn.10054f70
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x1005840f.17
mov edx, dword [edi + 0x50]
add edx, 2
or edx, 1
mov dword [edi + 0x50], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [edi + 0x2c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], eax
cmp dword [ebp + 8], eax
jle 0x100588eb
mov edx, dword [esp + 0x60]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.10052390
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.10057f40
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
cmp eax, dword [ebp + 8]
jl 0x100588bb
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x1e], 0
jne 0x10058815
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
mov dword [ecx + 0x54], eax
mov esi, 0x64
jmp 0x10058ed4
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea edi, [esi + edx*8]
lea eax, [eax + eax*4]
mov dl, byte [esi + eax*8 + 0x1c]
lea ebx, [esi + eax*8]
movzx eax, word [edi + 0x1c]
lea ecx, [ebp + ebp*4]
or dl, al
lea esi, [esi + ecx*8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x20], esi
test dl, 1
je 0x10058950
push esi
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
test eax, 0x4000
je 0x10058966
mov eax, edi
call fcn.10052330
test eax, eax
jne 0x10058815
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x10058980
mov eax, ebx
call fcn.10052330
test eax, eax
jne 0x10058815
test byte [edi + 0x1c], 0x12
jne 0x1005899a
movzx esi, byte [esp + 0x2b]
mov eax, edi
call fcn.100523e0
test eax, eax
jne 0x10058815
test byte [ebx + 0x1c], 0x12
jne 0x100589b4
movzx esi, byte [esp + 0x2b]
mov eax, ebx
call fcn.100523e0
test eax, eax
jne 0x10058815
mov eax, dword [edi + 0x18]
add eax, dword [ebx + 0x18]
cdq
mov ecx, edx
mov edx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], ecx
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x10058e5a
jl 0x100589e1
cmp esi, eax
ja 0x10058e5a
mov edi, dword [esp + 0x20]
mov ax, word [edi + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
mov word [edi + 0x1c], ax
mov ecx, dword [esp + 0x60]
xor eax, eax
cmp edi, ebx
sete al
add ecx, 2
call fcn.100521c0
test eax, eax
jne 0x10058815
mov esi, edi
cmp esi, ebx
je 0x10058a2e
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov ecx, dword [esi + 0x14]
push edx
push eax
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
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 sub.MSVCR90.dll_memcpy
mov eax, dword [esp + 0x6c]
mov edx, dword [esi + 0x14]
mov byte [eax + edx], 0
mov edx, dword [esp + 0x6c]
mov ecx, dword [esi + 0x14]
mov byte [edx + ecx + 1], 0
mov dl, byte [esp + 0x37]
mov eax, 0x200
add esp, 0xc
or word [esi + 0x1c], ax
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x18], ecx
mov byte [esi + 0x1f], dl
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov edi, esi
call fcn.10058080
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edi, [ebx + ecx*8]
call fcn.10058080
mov eax, dword [ebp + 0xc]
movzx ecx, word [esi + 0x1c]
lea edx, [eax + eax*4]
movzx eax, word [edi + 0x1c]
or eax, ecx
lea ebx, [ebx + edx*8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x60], eax
test al, 1
jne 0x10058caf
mov dl, byte [edi + 0x1c]
and dl, byte [esi + 0x1c]
test dl, 4
je 0x10058bad
mov ecx, dword [esi]
mov dword [esp + 0x68], ecx
mov esi, dword [esi + 4]
mov dword [esp + 0x6c], esi
mov eax, dword [edi]
mov dword [esp + 0x70], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x74], edi
movzx edx, byte [ebp]
add edx, 0xffffffaa
cmp edx, 3
ja case.default.0x10058af6
jmp dword [edx*4 + 0x1005d0e8]
add eax, ecx
adc edi, esi
mov dword [esp + 0x74], edi
jmp 0x10058b87
sub eax, ecx
sbb edi, esi
mov dword [esp + 0x74], edi
jmp 0x10058b87
push esi
push ecx
push edi
push eax
call fcn.1009f890
jmp 0x10058b83
mov edx, ecx
or edx, esi
je 0x10058caf
mov edx, ecx
and edx, esi
cmp edx, 0xffffffff
jne 0x10058b4d
test eax, eax
jne 0x10058b4d
cmp edi, 0x80000000
jne 0x10058b4d
mov ecx, 1
xor esi, esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], esi
push esi
push ecx
push edi
push eax
call fcn.1009f8d0
jmp 0x10058b83
mov edx, ecx
or edx, esi
je 0x10058caf
mov edx, ecx
and edx, esi
cmp edx, 0xffffffff
jne 0x10058b7a
mov ecx, 1
xor esi, esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], esi
push esi
push ecx
push edi
push eax
call fcn.1009f720
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov cx, word [ebx + 0x1c]
mov edx, 0xbf04
and cx, dx
mov dword [ebx], eax
mov eax, dword [esp + 0x74]
or cx, 4
mov dword [ebx + 4], eax
mov word [ebx + 0x1c], cx
jmp case.0x1005840f.17
call fcn.10052690
fstp qword [esp + 0x78]
mov esi, edi
call fcn.10052690
fst qword [esp + 0x80]
movzx eax, byte [ebp]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x10058bd0
jmp dword [eax*4 + 0x1005d0f8]
fadd qword [esp + 0x78]
jmp 0x10058c5b
fsub qword [esp + 0x78]
jmp 0x10058c5b
fmul qword [esp + 0x78]
jmp 0x10058c5b
fldz
fld qword [esp + 0x78]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x10058cab
fdivp st(1)
jmp 0x10058c5b
fld qword [esp + 0x78]
call fcn.1009f816
mov esi, eax
mov edi, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
call fcn.1009f816
mov ecx, esi
or ecx, edi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
je 0x10058caf
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x10058c46
mov esi, 1
xor edi, edi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], edi
push edi
push esi
push edx
push eax
call fcn.1009f720
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
fild qword [esp + 0x50]
sub esp, 8
fst qword [esp + 0x88]
fstp qword [esp]
call fcn.1003c8d0
add esp, 8
test eax, eax
jne 0x10058caf
mov dx, word [ebx + 0x1c]
fld qword [esp + 0x80]
mov eax, 0xbf08
fstp qword [ebx + 8]
and dx, ax
or dx, 8
mov word [ebx + 0x1c], dx
test byte [esp + 0x60], 8
jne case.0x1005840f.17
mov esi, dword [esp + 0x20]
call fcn.10052710
jmp case.0x1005840f.17
fstp st(0)
fstp st(0)
push ebx
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
movzx ecx, byte [ebp + 3]
mov edx, dword [edi + 0x24]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xa8], edx
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], eax
test ecx, ecx
jle 0x10058d19
mov ecx, dword [esp + 0xa8]
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x64]
call fcn.10057f40
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
inc eax
add esi, 0x28
cmp eax, dword [esp + 0xac]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
jl 0x10058ce9
xor ecx, ecx
cmp byte [ebp + 1], 0xfb
jne 0x10058d2e
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
jmp 0x10058d3b
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x6c], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea esi, [eax + edx*8]
mov edx, 1
mov ebx, esi
lea eax, [esp + 0x70]
mov dword [esp + 0x20], esi
mov word [esp + 0x8c], dx
mov dword [esp + 0x80], edi
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
call fcn.10052b60
mov eax, dword [esp + 0x8c]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x8c], ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x9c], 0
test byte [eax + 3], 8
je 0x10058db3
mov ecx, dword [ebp - 4]
mov dword [esp + 0xa0], ecx
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov eax, dword [eax + 0xc]
push edx
push ecx
lea edx, [esp + 0x70]
push edx
call eax
add esp, 0xc
cmp byte [edi + 0x1e], 0
jne 0x1005cd45
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x10058df9
mov ecx, dword [ebp + 4]
push ecx
call fcn.100555a0
mov edx, dword [esp + 0x70]
add esp, 4
mov dword [ebp + 0x10], edx
mov byte [ebp + 1], 0xf9
cmp dword [esp + 0x9c], 0
je 0x10058e32
mov bl, 1
lea edi, [esp + 0x70]
call fcn.100530e0
mov edi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push 0x100b6f14
add edi, 0x5c
call fcn.1003add0
mov eax, dword [esp + 0xa4]
add esp, 8
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x2b]
lea eax, [esp + 0x70]
call fcn.100521a0
lea ebx, [esp + 0x70]
mov eax, esi
call fcn.10052b60
mov ecx, esi
call fcn.10052a80
test eax, eax
je case.0x1005840f.17
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push str.string_or_blob_too_big
add edi, 0x5c
call fcn.1003add0
mov dword [esp + 0x14], 0x12
add esp, 4
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 0xbc]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
push edx
push eax
push ecx
push str.statement_aborts_at__d:___s___s
mov eax, edi
mov dword [esi + 0x58], edi
call fcn.1003c0c0
push esi
call fcn.100550a0
add esp, 0x14
cmp edi, 0xc0a
jne 0x10058eba
mov edx, dword [esp + 0x14]
mov byte [edx + 0x1e], 1
cmp byte [esp + 0x2f], 0
mov esi, 1
je 0x10058ed4
mov ebx, dword [esp + 0x14]
push 0
call fcn.10067f40
add esp, 4
mov ebx, dword [esp + 0x38]
call fcn.10047c70
mov ecx, dword [esp + 0x124]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1009ecb4
add esp, 0x11c
ret
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ebx, [esi + ecx*8]
lea ecx, [esi + edx*8]
mov dl, byte [ecx + 0x1c]
or dl, byte [ebx + 0x1c]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov dword [esp + 0x20], edi
test dl, 1
je 0x10058f30
push edi
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
mov esi, ecx
call fcn.10052600
mov esi, ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.10052600
mov ecx, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
movzx eax, byte [ebp]
sub eax, 0x52
je 0x10058f93
sub eax, 1
je 0x10058f89
mov edx, dword [esp + 0x64]
sub eax, 1
mov eax, dword [esp + 0x60]
je 0x10058f7a
call fcn.1009fbb0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
jmp 0x10058f9b
call fcn.1009f700
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
jmp 0x10058f9b
or dword [esp + 0x60], ecx
or dword [esp + 0x64], edx
jmp 0x10058f9b
and dword [esp + 0x60], ecx
and dword [esp + 0x64], edx
mov eax, dword [esp + 0x60]
mov dx, word [edi + 0x1c]
mov dword [edi], eax
mov ecx, dword [esp + 0x64]
mov eax, 0xbf04
and dx, ax
or dx, 4
mov dword [edi + 4], ecx
mov word [edi + 0x1c], dx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.10052770
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea esi, [eax + edx*8]
mov edi, esi
call fcn.10058080
test byte [esi + 0x1c], 8
je 0x10058ffe
call fcn.10052710
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x1005901b
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x1005cd57
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
and eax, 0xbf04
or eax, 4
mov word [esi + 0x1c], ax
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
test byte [esi + ecx*8 + 0x1c], 4
lea eax, [esi + ecx*8]
je case.0x1005840f.17
call fcn.100527a0
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
movzx ecx, word [esi + edx*8 + 0x1c]
lea edi, [esi + edx*8]
test cl, 1
jne case.0x1005840f.17
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [edi + 0x1c], ax
test al, 2
jne 0x10059085
test al, 0xc
je 0x10059085
movzx esi, byte [esp + 0x2b]
mov eax, edi
call fcn.100523e0
mov eax, 0xfff3
and word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x100590b2
mov eax, edi
call fcn.10052330
mov ecx, 0xbfe3
and word [edi + 0x1c], cx
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov ecx, 0xbfe3
and word [edi + 0x1c], cx
mov dword [esp + 0x10], 0
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
movzx eax, word [esi + edx*8 + 0x1c]
lea edi, [esi + edx*8]
test al, 1
jne case.0x1005840f.17
test al, 0x10
jne 0x10059110
test al, 2
jne 0x100590f7
test al, 0xc
je 0x100590f7
movzx esi, byte [esp + 0x2b]
mov eax, edi
call fcn.100523e0
mov ax, word [edi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
jmp case.0x1005840f.17
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
test byte [esi + edx*8 + 0x1c], 0xd
lea eax, [esi + edx*8]
jne case.0x1005840f.17
call fcn.100527d0
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
test byte [esi + eax*8 + 0x1c], 1
lea eax, [esi + eax*8]
jne case.0x1005840f.17
call fcn.10052770
jmp case.0x1005840f.17
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
test byte [esi + ecx*8 + 0x1c], 1
lea eax, [esi + ecx*8]
jne case.0x1005840f.17
call fcn.100527a0
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov cx, word [esi + edx*8 + 0x1c]
lea edi, [esi + edx*8]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov word [esp + 0x66], cx
mov dx, word [ebx + 0x1c]
mov word [esp + 0x68], dx
movzx eax, word [ebx + 0x1c]
movzx ecx, word [edi + 0x1c]
mov dl, al
or dl, cl
test dl, 1
je 0x1005920c
mov dl, byte [ebp + 3]
test dl, dl
jns 0x100591c9
and al, cl
test al, 1
mov eax, 0
sete al
jmp 0x1005927b
test dl, 0x10
je 0x100591f6
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
mov cx, word [esi + eax*8 + 0x1c]
lea esi, [esi + eax*8]
mov edx, 0xbf01
and cx, dx
or cx, 1
mov dword [esp + 0x20], esi
mov word [esi + 0x1c], cx
jmp case.0x1005840f.17
test dl, 8
je case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov al, byte [ebp + 3]
and al, 0x67
mov byte [esp + 0x64], al
je 0x10059247
mov esi, dword [esp + 0x2b]
push esi
mov ecx, edi
call fcn.10058160
mov al, byte [esp + 0x68]
add esp, 4
push esi
mov ecx, ebx
call fcn.10058160
mov eax, dword [esp + 0x18]
add esp, 4
cmp byte [eax + 0x1e], 0
jne 0x10058815
mov esi, dword [esp + 0x24]
mov ecx, 0x4000
test word [edi + 0x1c], cx
je 0x10059259
mov eax, edi
call fcn.10052330
mov edx, 0x4000
test word [ebx + 0x1c], dx
je 0x1005926b
mov eax, ebx
call fcn.10052330
mov eax, dword [ebp + 0x10]
push eax
mov eax, edi
mov ecx, ebx
call fcn.10052d40
add esp, 4
mov dword [esp + 0x60], eax
movzx ecx, byte [ebp]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x1005928b
jmp dword [ecx*4 + 0x1005d108]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x100592ce
xor edx, edx
test eax, eax
setne dl
jmp 0x100592cc
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x100592ce
xor edx, edx
test eax, eax
setle dl
jmp 0x100592cc
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x100592ce
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x60], eax
test byte [ebp + 3], 0x10
je 0x10059318
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
mov cx, word [esi + eax*8 + 0x1c]
lea esi, [esi + eax*8]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [esi + 0x1c], cx
mov eax, dword [esp + 0x60]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov al, byte [esp + 0x66]
mov byte [edi + 0x1c], al
mov cl, byte [esp + 0x68]
mov dword [esp + 0x20], esi
mov byte [ebx + 0x1c], cl
jmp case.0x1005840f.17
test eax, eax
je 0x10059324
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov al, byte [esp + 0x66]
mov byte [edi + 0x1c], al
mov cl, byte [esp + 0x68]
mov byte [ebx + 0x1c], cl
jmp case.0x1005840f.17
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x3c], edx
jmp case.0x1005840f.17
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x60], ecx
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x70], esi
mov eax, dword [ebp + 4]
mov dword [esp + 0x68], eax
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x6c], edx
mov dword [esp + 0x64], eax
test ecx, ecx
jle 0x100593f3
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
jmp 0x1005937b
mov esi, dword [esp + 0x70]
test ebx, ebx
je 0x10059384
mov ecx, dword [ebx + eax*4]
jmp 0x10059386
mov ecx, eax
mov dword [esp + 0x74], ecx
mov edx, dword [esi + eax*4 + 0xc]
mov dword [esp + 0x78], edx
mov esi, dword [esi + 8]
movzx eax, byte [esi + eax]
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x80], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
add ecx, edx
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edi + eax*8]
lea ecx, [edi + ecx*8]
call fcn.10052d40
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
jne 0x100593e6
mov eax, dword [esp + 0x64]
inc eax
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
jl 0x10059377
mov dword [esp + 0x3c], 0
jmp case.0x1005840f.17
cmp dword [esp + 0x7c], 0
je 0x100593f3
neg eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], 0
jmp case.0x1005840f.17
mov eax, dword [esp + 0x34]
test eax, eax
jge 0x10059415
mov ebp, dword [ebp + 4]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
jne 0x10059424
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov ebp, dword [ebp + 0xc]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x1c], 1
lea esi, [esi + edx*8]
je 0x10059448
mov ecx, 2
jmp 0x1005945a
call fcn.10052600
or eax, edx
je 0x10059458
mov ecx, 1
jmp 0x1005945a
xor ecx, ecx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x60], ecx
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea esi, [edi + eax*8]
je 0x10059479
mov eax, 2
jmp 0x1005948f
call fcn.10052600
or eax, edx
mov ecx, dword [esp + 0x60]
je 0x1005948d
mov eax, 1
jmp 0x1005948f
xor eax, eax
mov dword [esp + 0x64], eax
cmp byte [ebp], 0x45
jne 0x100594a6
lea edx, [eax + ecx*2]
movzx eax, byte [ecx + edx + 0x100afd58]
jmp 0x100594b1
lea eax, [eax + ecx*2]
movzx eax, byte [ecx + eax + 0x100afd64]
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x20], ecx
cmp eax, 2
jne 0x100594e1
mov dx, word [ecx + 0x1c]
mov eax, 0xbf01
and dx, ax
or dx, 1
mov word [ecx + 0x1c], dx
jmp case.0x1005840f.17
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x1c]
mov dword [ecx], eax
mov eax, 0xbf04
and dx, ax
or dx, 4
mov word [ecx + 0x1c], dx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [esi + ecx*8 + 0x1c], 1
lea edx, [ebp + ebp*4]
lea eax, [esi + ecx*8]
lea edi, [esi + edx*8]
mov dword [esp + 0x20], edi
je 0x1005952c
push edi
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
mov esi, eax
call fcn.10052600
or eax, edx
jne 0x1005954e
mov eax, 1
cdq
push edx
push eax
mov eax, edi
call fcn.100528f0
add esp, 8
jmp case.0x1005840f.17
xor eax, eax
cdq
push edx
push eax
mov eax, edi
call fcn.100528f0
add esp, 8
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
lea ecx, [ebp + ebp*4]
lea eax, [esi + eax*8]
lea edi, [esi + ecx*8]
mov dword [esp + 0x20], edi
je 0x1005958e
push edi
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
mov esi, eax
call fcn.10052600
not edx
not eax
push edx
push eax
mov eax, edi
call fcn.100528f0
add esp, 8
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x1c], 1
lea esi, [esi + edx*8]
je 0x100595bf
mov eax, dword [ebp + 0xc]
jmp 0x100595ed
call fcn.10052690
fcomp qword [0x100bb2e0]
fnstsw ax
test ah, 0x44
jnp 0x100595d8
mov eax, 1
jmp 0x100595da
xor eax, eax
mov dword [esp + 0x60], eax
cmp byte [ebp], 0x1b
jne 0x100595f1
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov dword [esp + 0x60], eax
test eax, eax
je case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x1c], 1
je case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
xor eax, eax
mov dword [esp + 0x70], ecx
mov edx, dword [ebp + 8]
mov dword [esp + 0x74], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
xor edx, edx
mov dword [esp + 0x78], edx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x9c], eax
mov cx, word [eax + 0x1c]
mov ebx, 0xbf01
and cx, bx
or cx, 1
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x70]
mov eax, dword [edi + 0x34]
mov dword [esp + 0x7c], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x78], eax
mov ecx, dword [eax]
mov dword [esp + 0x80], ecx
cmp ecx, edx
je 0x100597b4
mov edi, eax
call fcn.100556e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov eax, dword [esp + 0x78]
cmp byte [eax + 0x14], 0
je 0x1005970f
mov dword [esp + 0x60], 0
jmp case.0x1005840f.17
mov edx, dword [eax + 0x44]
mov ecx, dword [esp + 0x1c]
cmp edx, dword [ecx + 0x50]
jne 0x1005972b
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x60], ecx
mov edx, dword [eax + 0x54]
mov dword [esp + 0x7c], edx
jmp 0x10059751
cmp byte [eax + 0x17], 0
je 0x10059795
mov eax, dword [esp + 0x80]
lea edi, [esp + 0x68]
call fcn.1004b7c0
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x10], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x78]
test ecx, ecx
je case.0x1005840f.17
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x48]
ja 0x10058e5a
mov edx, dword [eax + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0x84], ecx
mov edi, dword [eax + 0x44]
cmp edi, dword [esi + 0x50]
jne 0x10059802
mov eax, dword [eax + 0x50]
mov dword [esp + 0x88], eax
jmp 0x10059abf
mov esi, dword [esp + 0x80]
mov edi, esi
call fcn.1004b770
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x10], 0
jmp 0x1005974d
mov ecx, dword [eax + 0x24]
cmp ecx, edx
jle 0x100597f9
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
mov dword [esp + 0xe0], esi
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x60], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x7c], ecx
test byte [ebp + 3], 0x20
je 0x100597ea
xor edi, edi
mov dword [eax + 0x44], edi
mov ecx, dword [esp + 0x60]
jmp 0x1005974d
mov edi, dword [edi + 0x50]
mov dword [eax + 0x44], edi
mov ecx, dword [esp + 0x60]
jmp 0x1005974d
mov dword [esp + 0x60], edx
jmp case.0x1005840f.17
lea ecx, [ecx + edx*4]
mov dword [esp + 0x88], ecx
mov dword [esp + 0xdc], 0
mov dword [eax + 0x50], ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
mov dword [ecx + 0x48], edx
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0x50]
mov dword [ecx + 0x44], eax
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x10059840
mov dword [esp + 0x98], ecx
jmp 0x100598ac
mov edx, dword [esp + 0x78]
cmp byte [edx + 0x17], 0
mov esi, dword [esp + 0x80]
je 0x10059860
lea eax, [esp + 0xdc]
push eax
call fcn.1004bea0
jmp 0x10059876
xor eax, eax
cmp byte [esi + 0x43], 1
jne 0x10059879
push 1
lea ebx, [esp + 0xe0]
call fcn.1004be20
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x98], eax
cmp ecx, dword [esp + 0xdc]
ja 0x1005989a
mov edx, dword [esp + 0x78]
mov dword [esp + 0x7c], eax
mov dword [edx + 0x54], eax
jmp 0x100598a5
mov eax, dword [esp + 0x78]
mov dword [eax + 0x54], 0
mov ecx, dword [esp + 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x100598c3
movzx edx, al
mov dword [esp + 0xd0], edx
mov eax, 1
jmp 0x100598e0
lea esi, [esp + 0xd0]
call fcn.1003d590
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x98]
movzx eax, al
movzx eax, al
mov dword [esp + 0xd8], eax
cmp edx, 0x18003
jbe 0x10059905
mov eax, 0xf0f2
call fcn.10091390
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov esi, dword [esp + 0x8c]
lea eax, [esi + esi*4 + 3]
cmp eax, edx
mov dword [esp + 0x90], eax
jle 0x10059924
mov eax, edx
mov dword [esp + 0x90], eax
cmp dword [esp + 0x7c], 0
jne 0x10059996
cmp dword [esp + 0xdc], eax
jge 0x10059996
mov edx, dword [esp + 0x78]
xor ecx, ecx
mov word [esp + 0xbc], cx
mov dword [esp + 0xb0], ecx
movzx ecx, byte [edx + 0x17]
push ecx
mov ecx, dword [esp + 0x84]
push eax
push 0
lea eax, [esp + 0xac]
call fcn.10052fd0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x1005840f.17
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x98], ecx
add eax, ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd8]
add eax, ecx
xor ecx, ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0x94], ecx
test esi, esi
jle 0x10059a66
mov eax, dword [esp + 0xc8]
cmp eax, dword [esp + 0xcc]
mov eax, dword [esp + 0x88]
jae 0x10059b08
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xc8]
mov al, byte [ecx]
mov edx, dword [esp + 0x94]
cmp al, 0x80
jae 0x10059a06
movzx ecx, al
mov eax, dword [esp + 0x84]
mov dword [eax + edx*4], ecx
mov eax, 1
jmp 0x10059a18
mov eax, dword [esp + 0x84]
lea esi, [eax + edx*4]
call fcn.1003d590
movzx eax, al
mov edx, dword [esp + 0x84]
movzx ecx, al
add dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x94]
mov eax, dword [edx + ecx*4]
call fcn.10055860
mov edx, dword [esp + 0xd0]
add edx, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], edx
cmp edx, eax
jae 0x10059b1d
mov ecx, dword [esp + 0xcc]
inc ecx
mov dword [esp + 0xc8], ecx
lea edx, [esp + 0xa0]
push edx
call fcn.10052570
mov ecx, dword [esp + 0xd0]
mov eax, 1
mov word [esp + 0xc0], ax
mov eax, dword [esp + 0xcc]
add esp, 4
cmp eax, ecx
ja 0x10059c52
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0x60]
cmp edx, esi
ja 0x10059c52
cmp eax, ecx
jne 0x10059ab8
cmp edx, esi
jne 0x10059c52
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x88]
cmp dword [edx + eax*4], 0
je 0x10059bd3
cmp dword [esp + 0x7c], 0
je 0x10059b37
mov esi, dword [esp + 0x9c]
call fcn.10052500
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x88]
mov ecx, dword [ecx + eax*4]
mov edx, dword [esp + 0x84]
add ecx, dword [esp + 0x7c]
mov eax, dword [edx + eax*4]
jmp 0x10059bb7
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x94]
inc ecx
cmp ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], ecx
jl 0x100599c0
jmp 0x10059a66
mov eax, dword [ecx + eax*4]
call fcn.10055860
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
lea eax, [esp + 0xa0]
call fcn.10052b60
mov eax, dword [esp + 0x78]
movzx ecx, byte [eax + 0x17]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
push edx
lea eax, [esp + 0xac]
call fcn.10052fd0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x1005840f.17
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x98], ecx
mov eax, dword [eax + edx*4]
mov esi, dword [esp + 0x9c]
call fcn.10055930
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x2b]
mov byte [eax + 0x1f], cl
jmp 0x10059bf1
cmp byte [ebp + 1], 0xf8
jne 0x10059bf1
mov edx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x9c]
push 0x800
push edx
call fcn.10052ab0
add esp, 8
cmp dword [esp + 0xc4], 0
je 0x10059c3d
mov eax, dword [esp + 0x9c]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [esp + 0x9c]
mov edx, 0x200
or word [eax + 0x1c], dx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xb4]
mov dword [eax + 0x14], ecx
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x9c]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x9c]
call fcn.100522d0
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov eax, 0xf13c
call fcn.10091390
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x60], ecx
mov ebp, dword [ebp + 4]
mov al, byte [ecx]
lea edx, [ebp + ebp*4]
lea esi, [esi + edx*8]
mov byte [esp + 0x64], al
test al, al
je 0x10059cbb
inc ecx
mov dword [esp + 0x60], ecx
mov ecx, 0x4000
test word [esi + 0x1c], cx
je 0x10059c9b
mov eax, esi
call fcn.10052330
mov al, byte [esp + 0x64]
mov edx, dword [esp + 0x2b]
push edx
mov ecx, esi
call fcn.10058160
mov ecx, dword [esp + 0x64]
mov al, byte [ecx]
add esp, 4
add esi, 0x28
mov byte [esp + 0x64], al
test al, al
jne 0x10059c80
inc ecx
mov dword [esp + 0x60], ecx
jmp case.0x1005840f.17
xor ebx, ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov eax, dword [ebp + 4]
mov dword [esp + 0x94], eax
mov ecx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x98], ecx
movzx ecx, byte [edi + 0x64]
mov dword [esp + 0x8c], esi
mov eax, dword [ebp + 8]
mov dword [esp + 0x94], eax
lea eax, [eax + eax*4]
lea eax, [esi + eax*8 - 0x28]
mov edi, esi
mov dword [esp + 0x90], eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x64], edi
cmp esi, eax
ja 0x10059e18
mov ebx, dword [esp + 0x98]
test ebx, ebx
je 0x10059d71
mov edx, dword [esp + 0x2b]
mov ecx, edi
sub ecx, esi
push edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov al, byte [eax + ebx]
mov ecx, edi
call fcn.10058160
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x68]
add esp, 4
mov ecx, 0x4000
test word [edi + 0x1c], cx
je 0x10059d94
cmp dword [edi + 0x18], 0
jle 0x10059d94
mov eax, edi
call fcn.10052330
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x9c]
push edx
mov ecx, edi
call fcn.10055780
mov ecx, eax
add esp, 4
mov dword [esp + 0x88], ecx
call fcn.10055860
mov dword [esp + 0xa4], eax
cdq
add dword [esp + 0x68], eax
push 0
push ecx
adc dword [esp + 0x74], edx
call fcn.1003d610
mov ebx, dword [esp + 0x78]
add ebx, eax
mov eax, 0x4000
add esp, 8
mov dword [esp + 0x70], ebx
test word [edi + 0x1c], ax
je 0x10059def
mov ecx, dword [edi]
add dword [esp + 0x80], ecx
jmp 0x10059e04
cmp dword [esp + 0xa4], 0
je 0x10059e04
mov dword [esp + 0x80], 0
add edi, 0x28
mov dword [esp + 0x64], edi
cmp edi, dword [esp + 0x90]
jbe 0x10059d34
mov eax, ebx
cdq
push edx
push eax
call fcn.1003d610
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x80], ebx
call fcn.1003d610
add esp, 0x10
cmp esi, eax
jge 0x10059e4a
inc ebx
mov dword [esp + 0x70], ebx
mov eax, ebx
cdq
mov ecx, eax
mov eax, dword [esp + 0x80]
mov esi, edx
cdq
sub ecx, eax
sbb esi, edx
add ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
adc esi, dword [esp + 0x6c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], esi
mov eax, dword [edx + 0x48]
cdq
cmp esi, edx
jg 0x10058e5a
jl 0x10059e87
cmp ecx, eax
ja 0x10058e5a
mov ebp, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [ebp + ebp*4]
lea edi, [edx + eax*8]
xor eax, eax
mov dword [esp + 0x20], edi
call fcn.100521c0
test eax, eax
jne 0x10058815
mov eax, dword [esp + 0x70]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x60], ecx
cmp eax, 0x80
jae 0x10059ec3
mov byte [ecx], al
mov eax, 1
jmp 0x10059ec8
call fcn.1003d3e0
mov ecx, dword [esp + 0x8c]
movzx esi, al
mov eax, dword [esp + 0x90]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
cmp ecx, eax
ja 0x10059f58
jmp 0x10059ef0
mov edx, dword [esp + 0x9c]
push edx
call fcn.10055780
add esp, 4
mov dword [esp + 0x88], eax
cmp eax, 0x80
jae 0x10059f1c
mov ecx, dword [esp + 0x60]
mov byte [esi + ecx], al
mov eax, 1
jmp 0x10059f28
mov edx, dword [esp + 0x60]
lea ecx, [esi + edx]
call fcn.1003d3e0
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x64]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x90]
add ecx, 0x28
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
cmp ecx, eax
jbe 0x10059ef0
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x64], ecx
cmp ecx, eax
ja 0x10059fa1
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x60]
sub edx, esi
lea ebx, [esi + eax]
mov eax, dword [esp + 0x9c]
push edx
call fcn.10055880
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xa4]
add ecx, 0x28
add esi, eax
add esp, 4
mov dword [esp + 0xa0], esi
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x90]
jbe 0x10059f60
mov ecx, dword [esp + 0x78]
mov edx, 0x410
mov dword [edi + 0x18], ecx
mov word [edi + 0x1c], dx
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x80]
test eax, eax
je 0x10059fce
mov dword [edi], eax
mov eax, 0x4410
mov word [edi + 0x1c], ax
mov byte [edi + 0x1f], 1
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x68], eax
cmp eax, ecx
je 0x1005a00f
lea ecx, [esp + 0x60]
push ecx
call fcn.1004fcf0
mov edx, dword [esp + 0x64]
mov dword [esp + 0x14], eax
mov dword [ebx], edx
mov eax, dword [esp + 0x68]
add esp, 4
mov dword [ebx + 4], eax
jmp case.0x1005840f.17
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], ecx
mov edx, ecx
mov dword [ebx], edx
mov eax, dword [esp + 0x64]
mov dword [ebx + 4], eax
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 0x10]
mov dword [esp + 0x64], ebp
test eax, eax
jne 0x1005a0ff
cmp dword [ecx + 0x90], eax
jle 0x1005a06c
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [esp + 0x20]
add edi, 0x5c
mov eax, ecx
call fcn.1003add0
add esp, 4
mov dword [esp + 0x10], 5
jmp case.0x1005840f.17
mov ecx, ebp
call fcn.1003c910
mov esi, dword [esp + 0x14]
lea ecx, [eax + 0x19]
mov dword [esp + 0x68], eax
call fcn.1003ac30
mov dword [esp + 0x6c], eax
test eax, eax
je case.0x1005840f.17
lea edx, [eax + 0x18]
mov dword [eax], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
inc eax
push eax
mov eax, dword [edx]
push ecx
push eax
call sub.MSVCR90.dll_memcpy
mov eax, esi
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x1005a0c3
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1dc], 1
jmp 0x1005a0c9
inc dword [eax + 0x1d4]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [esp + 0x6c]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x1e0]
mov dword [eax + 0x1d0], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x1e4]
mov eax, dword [esp + 0x6c]
mov dword [eax + 0xc], edx
jmp case.0x1005840f.17
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov esi, dword [ecx + 0x1d0]
mov dword [esp + 0x70], esi
test esi, esi
je 0x1005a130
mov ecx, dword [esi]
mov edx, ebp
call fcn.1003cab0
test eax, eax
je 0x1005a156
inc ebx
mov dword [esp + 0x78], ebx
mov esi, dword [esi + 0x10]
mov dword [esp + 0x70], esi
test esi, esi
jne 0x1005a113
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
push ebp
push str.no_such_savepoint:__s
add edi, 0x5c
call fcn.1003add0
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x1005840f.17
mov ebp, dword [esp + 0x14]
xor eax, eax
cmp dword [ebp + 0x90], eax
jg 0x1005a308
mov edx, dword [esp + 0x60]
cmp edx, 2
jne 0x1005a17e
cmp dword [ebp + 0x8c], 1
jg 0x1005a30f
cmp dword [esi + 0x10], eax
jne 0x1005a25d
cmp byte [ebp + 0x1dc], 0
je 0x1005a25d
mov dword [esp + 0x30], 1
cmp edx, 1
jne 0x1005a261
push edx
mov ecx, edi
call fcn.10055040
mov esi, eax
add esp, 4
test esi, esi
jne 0x10058ed4
push edi
mov byte [ebp + 0x1c], 1
call fcn.100550a0
add esp, 4
cmp eax, 5
je 0x1005cd64
mov byte [ebp + 0x1dc], 0
mov edx, dword [edi + 0x58]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x10], edx
mov ebx, ebp
cmp dword [ebx + 0x1d0], esi
je 0x1005a223
lea esp, [esp]
mov eax, dword [ebx + 0x1d0]
mov dword [esp + 0x74], eax
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1d0], eax
mov ecx, dword [esp + 0x74]
push ecx
push ebx
call fcn.1003a9f0
dec dword [ebx + 0x1d4]
mov esi, dword [esp + 0x78]
add esp, 8
cmp dword [ebx + 0x1d0], esi
jne 0x1005a1f0
cmp dword [esp + 0x60], 1
jne 0x1005a2f1
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x1d0], edx
mov eax, dword [esp + 0x70]
push eax
push ebx
call fcn.1003a9f0
add esp, 8
cmp dword [esp + 0x30], 0
jne case.0x1005840f.17
mov eax, ebp
dec dword [eax + 0x1d4]
jmp case.0x1005840f.17
mov dword [esp + 0x30], eax
mov ecx, dword [ebp + 0x1d4]
sub ecx, ebx
dec ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
cmp dword [ebp + 4], eax
jle 0x1005a2bf
mov esi, ebp
jmp 0x1005a284
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x60]
push edx
mov edx, dword [esi + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov ebx, ecx
call fcn.1004b4e0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov eax, dword [esp + 0x7c]
inc eax
mov dword [esp + 0x7c], eax
cmp eax, dword [esi + 4]
jl 0x1005a280
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
cmp edx, 2
jne 0x1005a1e2
mov ebx, ebp
test dword [ebx + 0xc], 0x200
je 0x1005a1e4
mov eax, ebx
call fcn.10056110
push 0
call fcn.10067f40
mov esi, dword [esp + 0x74]
add esp, 4
jmp 0x1005a1e4
mov ecx, dword [esi + 8]
mov dword [ebx + 0x1e0], ecx
mov edx, dword [esi + 0xc]
mov dword [ebx + 0x1e4], edx
jmp case.0x1005840f.17
cmp dword [esp + 0x60], 2
jne 0x1005a316
mov eax, str.rollback
jmp 0x1005a31b
mov eax, str.release
mov edi, dword [esp + 0x1c]
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
add edi, 0x5c
mov eax, ebp
call fcn.1003add0
add esp, 8
mov dword [esp + 0x10], 5
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 8]
mov dword [esp + 0x64], ebp
test eax, eax
je 0x1005a37a
cmp byte [ecx + 0x1c], 0
jne 0x1005a37a
mov edx, 1
mov dword [esp + 0x68], edx
test ebp, ebp
je 0x1005a399
cmp dword [ecx + 0x8c], edx
jle 0x1005a382
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x1005a04e
mov dword [esp + 0x68], 0
movzx ecx, byte [ecx + 0x1c]
cmp eax, ecx
jne 0x1005cd7c
test eax, eax
jne 0x1005a3ac
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x1005a3ba
cmp dword [ecx + 0x90], 0
jle 0x1005a382
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1005a04e
mov eax, str.cannot_rollback___no_transaction_is_active
test ebp, ebp
jne 0x1005a3ba
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
add edi, 0x5c
call fcn.1003add0
add esp, 4
mov dword [esp + 0x10], 1
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov dword [esp + 0x60], eax
test eax, eax
je case.0x1005840f.17
mov edx, dword [ebp + 8]
push edx
push eax
call fcn.1004a1d0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, 5
je 0x1005cdf6
test eax, eax
jne 0x1005ce22
cmp dword [ebp + 8], eax
je case.0x1005840f.17
mov edi, dword [esp + 0x1c]
cmp byte [edi + 0x66], al
je case.0x1005840f.17
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x1c], al
je 0x1005a446
cmp dword [esi + 0x8c], 1
jle case.0x1005840f.17
cmp dword [edi + 0xd8], 0
jne 0x1005a469
inc dword [esi + 0x1d8]
mov eax, dword [esi + 0x1d8]
mov ecx, dword [esi + 0x1d4]
add ecx, eax
mov dword [edi + 0xd8], ecx
mov edx, dword [edi + 0xd8]
mov eax, dword [esp + 0x60]
push edx
call fcn.1004b490
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x1e0]
mov dword [edi + 0xd0], eax
mov ecx, dword [esi + 0x1e4]
add esp, 4
mov dword [edi + 0xd4], ecx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov ebp, dword [ebp + 0xc]
lea edx, [esp + 0x60]
mov dword [esp + 0x68], ebp
push edx
mov edx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
push ebp
call fcn.1004fc00
mov eax, dword [esp + 0x68]
cdq
add esp, 8
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
shl eax, 4
add eax, dword [ecx + 8]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov eax, esi
call fcn.10052770
mov eax, dword [esi]
mov ecx, dword [esp + 0x60]
mov ebx, dword [ebp + 8]
push eax
mov eax, dword [ecx + 4]
call fcn.1004fc70
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
add esp, 4
cmp eax, 1
jne 0x1005a530
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
or dword [eax + 0xc], 0x200
jmp 0x1005a541
cmp eax, 2
jne 0x1005a541
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0xc]
mov cl, byte [esi]
mov byte [eax + 0x48], cl
cmp dword [ebp + 4], 1
jne case.0x1005840f.17
mov eax, dword [esp + 0x14]
call fcn.10056110
mov byte [edi + 0x62], 0
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov dword [esp + 0x64], eax
test eax, eax
je 0x1005a587
lea edx, [esp + 0x60]
push edx
push 1
call fcn.1004fc00
add esp, 8
jmp 0x1005a58f
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x60]
cmp eax, dword [ebp + 8]
je case.0x1005840f.17
mov ecx, dword [edi + 0x5c]
mov esi, dword [esp + 0x14]
push ecx
push esi
call fcn.1003a9f0
push esi
mov ebx, str.database_schema_has_changed
call fcn.1003ad50
mov dword [edi + 0x5c], eax
mov ebp, dword [ebp + 4]
mov eax, dword [esi + 8]
mov edx, ebp
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov edx, dword [ecx]
add esp, 0xc
cmp edx, dword [esp + 0x60]
je 0x1005a5dd
push ebp
mov ebx, esi
call fcn.10067f40
add esp, 4
mov eax, esi
call fcn.10056110
mov dword [esp + 0x10], 0x11
jmp case.0x1005840f.17
cmp byte [edi + 0x62], 0
je 0x1005a604
mov dword [esp + 0x10], 4
jmp case.0x1005840f.17
mov ebx, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
mov edx, dword [ebp + 8]
mov dword [esp + 0x68], edx
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0x7c], eax
mov ebx, dword [eax + 4]
mov dword [esp + 0x74], ebx
cmp byte [ebp], 0x27
jne 0x1005a64f
mov dword [esp + 0x70], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x48]
cmp al, byte [edi + 0x64]
jae 0x1005a657
mov byte [edi + 0x64], al
jmp 0x1005a657
mov dword [esp + 0x70], 0
cmp byte [ebp + 3], 0
je 0x1005a67d
lea ecx, [edx + edx*4]
lea esi, [esi + ecx*8]
mov eax, esi
call fcn.10052770
mov esi, dword [esi]
cmp esi, 2
mov dword [esp + 0x68], esi
jl 0x1005ce0a
mov ecx, dword [esp + 0x60]
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x1005a6a4
mov eax, dword [ebp + 0x10]
mov edx, dword [edi]
mov dword [esp + 0x64], eax
mov ecx, dword [edx + 8]
mov edx, dword [ecx + 0xc]
mov cl, byte [edx + 0x49]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x64]
movzx ecx, word [edx + 6]
inc ecx
jmp 0x1005a6ab
cmp al, 0xf2
jne 0x1005a6af
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x6c]
push 1
push eax
push ecx
mov ecx, dword [ebp + 4]
push ecx
mov ebx, edi
call fcn.10057f70
add esp, 0x10
mov dword [esp + 0x78], eax
test eax, eax
je 0x10058815
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push edx
push eax
mov eax, dword [esp + 0x84]
call fcn.1004b600
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x74]
add esp, 0x10
mov dword [esp + 0x10], eax
mov dword [ecx + 0x28], edx
cmp eax, 0x10
jne 0x1005a723
mov eax, dword [esp + 0x78]
mov dword [eax], 0
mov dword [esp + 0x10], 0
cmp byte [ebp + 1], 0xfa
mov edx, dword [esp + 0x78]
setne cl
mov byte [edx + 0x16], cl
mov eax, dword [esp + 0x78]
cmp byte [eax + 0x16], 0
sete cl
mov byte [eax + 0x17], cl
jmp case.0x1005840f.17
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
mov ebx, edi
call fcn.10057f70
add esp, 0x10
mov dword [esp + 0x60], eax
test eax, eax
je 0x10058815
mov edx, dword [esp + 0x14]
mov ebx, 1
mov byte [eax + 0x14], bl
mov ecx, dword [esp + 0x60]
add ecx, 0x20
push ecx
push 0x1f4
push ebx
mov eax, 0x41e
xor ecx, ecx
call fcn.10090730
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005a85a
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x20]
push ebx
push eax
call fcn.1004a1d0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005a85a
cmp dword [ebp + 0x10], eax
je 0x1005a839
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x20]
lea ecx, [esp + 0x4c]
push 2
push ecx
call fcn.1004f5a0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005a81e
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x10]
mov eax, dword [eax + 0x20]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push ebx
push ecx
call fcn.1004b600
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [eax + 0x28], edx
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0x28]
mov al, byte [eax + 0x49]
add esp, 0x10
mov byte [edx + 4], al
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x16], 0
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x16], 0
sete cl
mov byte [eax + 0x17], cl
jmp case.0x1005840f.17
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
mov eax, dword [eax + 0x20]
push edx
push 0
push ebx
push ebx
call fcn.1004b600
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
add esp, 0x10
mov byte [eax + 0x16], bl
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x16], 0
sete cl
mov byte [eax + 0x17], cl
jmp case.0x1005840f.17
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
mov ebx, edi
call fcn.10057f70
add esp, 0x10
mov dword [esp + 0x60], eax
test eax, eax
je 0x10058815
mov cl, 1
mov byte [eax + 0x14], cl
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x60]
mov dword [eax + 0x24], edx
mov edx, dword [esp + 0x60]
mov byte [edx + 0x16], cl
mov eax, dword [esp + 0x60]
mov byte [eax + 0x17], 0
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
mov ebx, edi
call fcn.10054790
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x34]
mov dword [ecx + eax*4], 0
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x68], eax
cmp dword [eax], 0
je 0x10058428
movzx ecx, byte [ebp]
mov dword [esp + 0x64], ecx
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x16], 0
je 0x1005aab4
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea esi, [eax + edx*8]
mov edi, esi
call fcn.10058080
call fcn.10052600
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov byte [ecx + 0x11], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x1005aa4d
test al, 8
jne 0x1005a950
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
xor ebx, ebx
cmp dword [esp + 0x90], ebx
jne 0x1005a9f9
mov eax, 0x80000000
cmp dword [esp + 0x94], eax
jne 0x1005a9f9
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
fild qword [esp + 0x58]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x1005a993
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x1005a9f9
fldz
mov dword [esp + 0x60], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x1005a9bf
cmp dword [esp + 0x64], 0x2e
jl 0x1005a9ec
mov edx, dword [esp + 0x68]
mov esi, dword [edx]
lea edi, [esp + 0x60]
call fcn.1004c210
jmp 0x1005a9d5
cmp dword [esp + 0x64], 0x2d
jg 0x1005a9ec
mov eax, dword [esp + 0x68]
mov esi, dword [eax]
lea edi, [esp + 0x60]
call fcn.1004c240
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x1005ce22
cmp dword [esp + 0x60], 0
je case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [esp + 0x64]
cmp eax, 0x2c
je 0x1005aa2d
cmp eax, 0x2e
je 0x1005aa2d
fild qword [esp + 0x90]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x1005aa4d
mov eax, 0xffffffff
add dword [esp + 0x90], eax
adc dword [esp + 0x94], eax
jmp 0x1005aa4d
fild qword [esp + 0x90]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x1005aa4d
add dword [esp + 0x90], 1
adc dword [esp + 0x94], ebx
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x6c]
push 0
push edx
mov edx, dword [ecx]
push eax
push 0
push edx
call fcn.1004c280
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
cmp dword [esp + 0x60], eax
jne 0x1005ab31
mov eax, dword [esp + 0x68]
mov byte [eax + 0x11], 1
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x68]
mov dword [edx + 8], ecx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0xc], eax
jmp 0x1005ab31
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x88], edx
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x64]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
mov word [esp + 0x74], dx
mov word [esp + 0x76], ax
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov edx, 0x4000
mov dword [esp + 0x80], eax
test word [eax + 0x1c], dx
je 0x1005ab00
call fcn.10052330
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x60]
push eax
mov eax, dword [ecx]
push 0
push 0
push 0
lea edx, [esp + 0x80]
push edx
push eax
call fcn.1004c280
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x11], al
mov edx, dword [esp + 0x68]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x68]
xor esi, esi
mov dword [eax + 0x44], esi
mov ecx, dword [esp + 0x64]
cmp ecx, 0x2e
mov eax, dword [esp + 0x60]
jl 0x1005ab90
cmp eax, esi
jl 0x1005ab63
jne 0x1005ab5a
cmp ecx, 0x2f
je 0x1005ab63
mov dword [esp + 0x60], esi
jmp case.0x1005840f.17
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.1004c670
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x1005ce22
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x11], 0
jmp 0x1005a9e1
cmp eax, esi
jg 0x1005abb3
jne 0x1005ab9b
cmp ecx, 0x2c
je 0x1005abb3
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
xor ecx, ecx
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x60], ecx
jmp 0x1005a9e1
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
lea edx, [esp + 0x60]
push edx
push ecx
call fcn.1004c7b0
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x1005ce22
mov edx, dword [esp + 0x68]
mov byte [edx + 0x11], 0
jmp 0x1005a9e1
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x60], eax
cmp dword [eax], 0
je case.0x1005840f.17
mov byte [eax + 0x14], 0
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x24]
lea edx, [ebp + ebp*4]
lea esi, [eax + edx*8]
call fcn.10052600
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x60]
mov dword [eax + 0x1c], edx
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x60]
mov byte [edx + 0x15], 1
jmp case.0x1005840f.17
mov ecx, dword [edi + 0x34]
xor edx, edx
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x64], eax
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
cmp dword [eax], edx
je 0x1005ad2c
cmp dword [ebp + 0x10], edx
jle 0x1005ac84
mov edx, dword [eax + 0x28]
mov dword [esp + 0x70], edx
mov cx, word [ebp + 0x10]
mov word [esp + 0x74], cx
mov edx, 0x10
lea ecx, [esp + 0x70]
mov dword [esp + 0x80], esi
mov word [esp + 0x76], dx
mov dword [esp + 0x6c], ecx
jmp 0x1005accf
mov edx, 0x4000
test word [esi + 0x1c], dx
je 0x1005ac9a
mov eax, esi
call fcn.10052330
mov eax, dword [esp + 0x64]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov eax, dword [eax + 0x28]
push ecx
push edx
push eax
mov edx, 0x97
lea eax, [esp + 0x94]
call fcn.10055b50
add esp, 0xc
mov dword [esp + 0x6c], eax
test eax, eax
je 0x10058815
or word [eax + 6], 0x10
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
lea ecx, [esp + 0x68]
push ecx
push 0
push 0
push 0
push edx
push eax
call fcn.1004c280
add esp, 0x18
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x10], eax
jne 0x1005acfd
mov ebx, dword [esp + 0x6c]
call fcn.10055ca0
cmp dword [esp + 0x10], 0
jne case.0x1005840f.17
mov edx, dword [esp + 0x64]
xor ecx, ecx
cmp dword [esp + 0x68], ecx
sete cl
mov dword [esp + 0x60], ecx
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x64]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x60]
cmp byte [ebp], 0x32
jne 0x1005ad39
test edx, edx
jmp 0x1005a9e6
test edx, edx
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x10]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov edx, dword [edi + 0x34]
mov dword [esp + 0x70], eax
lea ebx, [esi + ecx*8]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x64], eax
xor ecx, ecx
mov dword [eax + 0x40], ecx
mov eax, dword [esp + 0x64]
mov dword [eax + 0x44], ecx
mov edx, dword [esp + 0x64]
mov ecx, dword [edx]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x68], ecx
mov eax, dword [edx + 0x28]
mov cx, word [eax + 6]
xor eax, eax
xor esi, esi
mov word [esp + 0x6c], cx
mov word [esp + 0x60], ax
cmp si, cx
jae 0x1005adc2
movzx esi, ax
lea esi, [esi + esi*4]
test byte [edi + esi*8 + 0x1c], 1
jne 0x1005ae70
inc ax
mov word [esp + 0x60], ax
cmp ax, cx
jb 0x1005ada5
cmp dword [esp + 0x68], 0
je case.0x1005840f.17
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0x6c]
mov eax, 0x20
inc edx
mov word [esp + 0x7e], ax
mov eax, ebx
mov dword [esp + 0x78], ecx
mov word [esp + 0x7c], dx
mov dword [esp + 0x88], edi
call fcn.10052770
mov eax, dword [esp + 0x64]
mov ecx, dword [ebx]
add eax, 0x40
push eax
push 0
mov dword [esp + 0x98], ecx
mov edx, dword [ebx + 4]
push 0
push 0
lea ecx, [esp + 0x88]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x78]
push ecx
push edx
call fcn.1004c280
add esp, 0x18
test byte [esp + 0x7e], 0x20
mov dword [esp + 0x10], eax
jne 0x10058428
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x90]
jne 0x1005ae5f
mov ecx, dword [esp + 0x84]
cmp ecx, dword [esp + 0x94]
je 0x10058428
mov dword [ebx], eax
mov edx, dword [esp + 0x84]
mov dword [ebx + 4], edx
jmp case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x68], 0
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov ecx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x60], ecx
mov eax, dword [ecx]
mov dword [esp + 0x64], eax
test eax, eax
je 0x1005af29
xor edi, edi
mov dword [esp + 0x68], edi
mov ecx, dword [esi]
lea ebx, [esp + 0x68]
push ebx
push edi
mov dword [esp + 0x78], ecx
mov edx, dword [esi + 4]
push edx
push ecx
push edi
push eax
mov dword [esp + 0x8c], edx
call fcn.1004c280
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov dword [ecx + 8], eax
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x78]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x78]
add esp, 0x18
cmp dword [esp + 0x68], edi
sete cl
mov byte [edx + 0x11], cl
mov eax, dword [esp + 0x60]
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x44], edi
mov edx, dword [esp + 0x60]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x68]
cmp eax, edi
je 0x1005af1d
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x40], eax
jmp case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov dword [ecx + 0x40], 0
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x30]
mov dword [ebx], ecx
mov edx, dword [eax + 0x34]
mov dword [ebx + 4], edx
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp case.0x1005840f.17
mov ecx, dword [edi + 0x34]
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov edx, dword [ebp + 4]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x68], edx
cmp dword [edx], eax
je 0x1005b1e1
mov dword [esp + 0x70], eax
cmp byte [edx + 0x13], al
jne 0x1005b0fc
mov ecx, dword [edx]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 0x1c]
mov ebx, eax
or ebx, ecx
mov dword [esp + 0x64], ecx
jne 0x1005b025
mov esi, dword [edx]
lea edi, [esp + 0x6c]
call fcn.1004c240
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
cmp dword [esp + 0x6c], eax
je 0x1005afd5
lea eax, [ebx + 1]
xor ecx, ecx
jmp 0x1005b015
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
lea edi, [esp + 0x60]
call fcn.1004b7c0
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
cmp eax, 0xffffffff
jne 0x1005b00f
cmp ecx, 0x7fffffff
jne 0x1005b00f
mov eax, dword [esp + 0x68]
mov byte [eax + 0x13], 1
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
jmp 0x1005b01d
add eax, 1
adc ecx, 0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x1005b0d1
mov edi, dword [edi + 0xdc]
test edi, edi
je 0x1005b063
mov ecx, edi
mov dword [esp + 0x78], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x1005b054
mov ecx, eax
mov dword [esp + 0x78], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x1005b047
mov ebp, dword [ebp + 0xc]
mov eax, dword [ecx + 0x10]
lea edx, [ebp + ebp*4]
lea eax, [eax + edx*8]
jmp 0x1005b069
lea ecx, [edx + edx*4]
lea eax, [esi + ecx*8]
mov dword [esp + 0x74], eax
call fcn.10052770
mov edx, dword [esp + 0x74]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x1005b08c
cmp ecx, 0x7fffffff
je 0x1005ce1a
mov esi, dword [esp + 0x68]
cmp byte [esi + 0x13], 0
jne 0x1005ce1a
mov esi, dword [esp + 0x64]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x1005b0b8
jl 0x1005b0b0
cmp dword [esp + 0x60], eax
jae 0x1005b0b8
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x60]
mov dword [edx], eax
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
cmp ecx, 0x7fffffff
jg 0x1005b0e8
jl 0x1005b0e0
cmp eax, 0xffffffff
jae 0x1005b0e8
add eax, 1
adc ecx, 0
jmp 0x1005b0ec
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
call fcn.1004b650
add esp, 8
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x13], 0
je 0x1005b1c2
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x30]
xor ecx, ecx
mov dword [esp + 0x60], edx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ecx
mov ebx, 0xffffff
lea esi, [ecx + 5]
xor edi, edi
cmp ecx, edi
jne 0x1005b151
mov edx, dword [esp + 0x60]
mov eax, edx
and eax, ebx
xor ecx, ecx
cmp eax, edx
jne 0x1005b151
cmp ecx, dword [esp + 0x64]
jne 0x1005b151
add edx, 1
adc dword [esp + 0x64], edi
mov dword [esp + 0x60], edx
jmp 0x1005b16e
lea ecx, [esp + 0x60]
push ecx
push 8
call fcn.1003c220
add esp, 8
cmp dword [esp + 0x70], esi
jge 0x1005b16e
and dword [esp + 0x60], ebx
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push edi
push eax
mov eax, dword [edx]
push ecx
push edi
push eax
call fcn.1004c280
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
inc ecx
add esp, 0x18
cmp ecx, 0x64
mov dword [esp + 0x10], eax
mov dword [esp + 0x70], ecx
jge 0x1005b1b6
cmp eax, edi
jne 0x1005b1c2
cmp edx, edi
je 0x1005b12c
cmp eax, edi
jne 0x1005b1c2
cmp edx, edi
je 0x1005ce1a
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x68]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x68]
mov dword [eax + 0x44], 0
mov ecx, dword [esp + 0x60]
mov dword [ebx], ecx
mov edx, dword [esp + 0x64]
mov dword [ebx + 4], edx
jmp case.0x1005840f.17
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edi + 0x34]
mov dword [esp + 0x60], ecx
mov edx, dword [ebp + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x70], edx
cmp byte [ebp], 0x37
mov eax, dword [ebp + 0xc]
jne 0x1005b22b
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x64], esi
mov eax, dword [esi]
mov dword [esp + 0x68], eax
mov edx, dword [esi + 4]
jmp 0x1005b230
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
test byte [ebp + 3], 1
je 0x1005b23d
inc dword [edi + 0x6c]
test byte [ebp + 3], 2
je 0x1005b255
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x34], eax
mov ecx, dword [esp + 0x60]
xor eax, eax
test byte [ecx + 0x1c], 1
je 0x1005b26b
mov dword [ecx + 0x14], eax
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], eax
mov ecx, dword [esp + 0x60]
test byte [ebp + 3], 0x10
je 0x1005b27e
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x40]
mov dword [esp + 0x78], edx
jmp 0x1005b282
mov dword [esp + 0x78], eax
mov edx, 0x4000
test word [ecx + 0x1c], dx
je 0x1005b28f
mov eax, dword [ecx]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x74], eax
mov esi, dword [ecx]
push 0
push 0
call fcn.1004b650
movzx edx, byte [ebp + 3]
mov eax, dword [esp + 0x7c]
and edx, 8
push edx
push eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [edx]
push ecx
push 0
push eax
mov eax, dword [esp + 0xa0]
call fcn.1004ee80
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x98]
mov byte [edx + 0x15], 0
mov ecx, dword [esp + 0x98]
add esp, 0x28
mov dword [esp + 0x10], eax
mov dword [ecx + 0x44], 0
test eax, eax
jne case.0x1005840f.17
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xb8], eax
je case.0x1005840f.17
cmp dword [ebp + 0x10], eax
je case.0x1005840f.17
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov edi, dword [esp + 0x6c]
shl edx, 4
mov edx, dword [edx + eax]
mov dword [esp + 0x7c], edx
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x80], esi
mov al, byte [ebp + 3]
and al, 4
movzx eax, al
push edi
mov edi, dword [esp + 0x6c]
neg eax
sbb eax, eax
push edi
and eax, 5
add eax, 0x12
push esi
push edx
mov dword [esp + 0x94], eax
mov edx, dword [ecx + 0xb4]
push eax
mov eax, dword [ecx + 0xb8]
push edx
call eax
add esp, 0x18
jmp case.0x1005840f.17
mov edx, dword [edi + 0x34]
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov ecx, dword [ebp + 4]
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x68], edi
cmp dword [ecx + 0xb8], eax
je 0x1005b3be
cmp dword [ebp + 0x10], eax
je 0x1005b3be
mov edx, dword [edi + 8]
mov dword [esp + 0x60], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x64], eax
call fcn.100556e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov ecx, dword [esp + 0x68]
mov esi, dword [ecx]
push eax
push eax
call fcn.1004b650
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
push eax
call fcn.1004f090
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov dword [esp + 0x10], eax
mov dword [ecx + 0x44], 0
test eax, eax
jne 0x1005b43d
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xb8]
test ecx, ecx
je 0x1005b43d
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1005b43d
mov esi, dword [esp + 0x64]
push esi
mov esi, dword [esp + 0x64]
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xb4]
push eax
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 4]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.0x1005840f.17
mov eax, dword [esp + 0x1c]
inc dword [eax + 0x6c]
jmp case.0x1005840f.17
mov ecx, dword [edi + 0x6c]
mov eax, dword [esp + 0x14]
add dword [eax + 0x40], ecx
mov dword [eax + 0x3c], ecx
mov dword [edi + 0x6c], 0
jmp case.0x1005840f.17
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 0x34]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x60], edi
mov eax, dword [edi]
mov dword [esp + 0x64], eax
call fcn.100556e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov ecx, dword [esp + 0x60]
cmp byte [ecx + 0x17], al
je 0x1005b4e3
mov eax, dword [esp + 0x64]
lea edi, [esp + 0x70]
call fcn.1004b7c0
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x74]
cdq
cmp ecx, edx
jg 0x10058e5a
mov ecx, dword [esp + 0x70]
jl 0x1005b4dd
cmp ecx, eax
ja 0x10058e5a
mov dword [esp + 0x68], ecx
jmp 0x1005b502
mov esi, dword [esp + 0x64]
mov edi, esi
call fcn.1004b770
mov ecx, dword [edi + 0x30]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], ecx
cmp ecx, dword [edx + 0x48]
ja 0x10058e5a
mov edi, dword [esp + 0x20]
xor eax, eax
call fcn.100521c0
test eax, eax
jne 0x10058815
mov eax, dword [esp + 0x68]
mov esi, edi
mov cx, word [esi + 0x1c]
mov edx, 0xbf10
and cx, dx
or cx, 0x10
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], cx
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x17], 0
je 0x1005b55f
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x68]
push 0
push eax
mov eax, dword [esp + 0x6c]
push ecx
push 0
call fcn.1004bad0
mov dword [esp + 0x20], eax
mov byte [esi + 0x1f], 1
jmp 0x1005cc85
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
push edx
push eax
push 0
push ecx
call fcn.1004bde0
mov dword [esp + 0x20], eax
mov byte [esi + 0x1f], 1
jmp 0x1005cc85
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x60], eax
cmp byte [eax + 0x14], 0
je 0x1005b5a2
mov ecx, 1
mov word [ebx + 0x1c], cx
jmp case.0x1005840f.17
cmp byte [eax + 0x15], 0
je 0x1005b5bb
mov edx, dword [eax + 0x18]
mov dword [esp + 0x68], edx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x6c], eax
jmp 0x1005b62e
cmp dword [eax + 0x38], 0
je 0x1005b5f2
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [esp + 0x70], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x74], ecx
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 0x30]
lea edx, [esp + 0x68]
push edx
push eax
call ecx
mov edx, dword [esp + 0x78]
push edx
push edi
mov dword [esp + 0x20], eax
call fcn.10058250
add esp, 0x10
jmp 0x1005b62e
mov edi, eax
call fcn.100556e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov eax, dword [esp + 0x60]
cmp byte [eax + 0x11], 0
je 0x1005b61f
mov ecx, dword [eax + 8]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x6c], edx
jmp 0x1005b62e
mov eax, dword [eax]
lea edi, [esp + 0x68]
call fcn.1004b7c0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x68]
mov dword [eax], ecx
mov edx, dword [esp + 0x6c]
mov dword [eax + 4], edx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x60], eax
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x60]
mov byte [edx + 0x11], 0
mov eax, dword [esp + 0x60]
mov esi, dword [eax]
test esi, esi
je case.0x1005840f.17
call fcn.10047f90
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x60], eax
mov esi, dword [eax]
mov dword [esp + 0x64], esi
test esi, esi
jne 0x1005b696
mov dword [esp + 0x68], 1
jmp 0x1005b6a7
lea edi, [esp + 0x68]
call fcn.1004c240
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov cl, byte [esp + 0x68]
mov byte [eax + 0x14], cl
mov edx, dword [esp + 0x60]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x60]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x44], 0
mov ebp, dword [ebp + 8]
test ebp, ebp
jle case.0x1005840f.17
cmp dword [esp + 0x68], 0
je case.0x1005840f.17
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
inc dword [edi + 0xb4]
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], 1
mov esi, dword [eax]
mov dword [esp + 0x64], esi
test esi, esi
je 0x1005b749
lea edi, [esp + 0x68]
call fcn.1004c210
cmp dword [esp + 0x68], 0
mov edx, dword [esp + 0x60]
sete cl
mov byte [edx + 0x12], cl
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x44], 0
mov edx, dword [esp + 0x60]
mov byte [edx + 0x11], 0
mov eax, dword [esp + 0x60]
mov cl, byte [esp + 0x68]
mov byte [eax + 0x14], cl
cmp dword [esp + 0x68], 0
je case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xe0]
test eax, eax
jne 0x1005ce69
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x60], eax
test eax, eax
je case.0x1005840f.17
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
test ecx, ecx
jne 0x1005b7a2
mov byte [eax + 0x14], 1
jmp case.0x1005840f.17
mov dword [esp + 0x68], 1
cmp byte [ebp], 0x43
jne 0x1005b7bd
lea eax, [esp + 0x68]
push eax
push ecx
call fcn.1004c670
jmp 0x1005b7c8
lea edx, [esp + 0x68]
push edx
push ecx
call fcn.1004c7b0
mov cl, byte [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov byte [eax + 0x14], cl
mov edx, dword [esp + 0x68]
add esp, 8
mov dword [edx + 0x44], 0
cmp dword [esp + 0x68], 0
jne 0x1005b80c
mov eax, dword [ebp + 8]
dec eax
mov dword [esp + 0x18], eax
mov al, byte [ebp + 3]
test al, al
je 0x1005b80c
movzx eax, al
inc dword [edi + eax*4 + 0xac]
lea edi, [edi + eax*4 + 0xac]
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x11], 0
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x60], edx
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea esi, [esi + ecx*8]
mov ecx, dword [edx]
mov dword [esp + 0x64], ecx
test ecx, ecx
je case.0x1005840f.17
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x1005b863
mov eax, esi
call fcn.10052330
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x1005840f.17
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov eax, dword [esi + 0x18]
mov dword [esp + 0x68], eax
mov esi, dword [esi + 0x14]
mov dword [esp + 0x6c], esi
test byte [ebp + 3], 0x10
je 0x1005b87c
mov edi, dword [edx + 0x40]
jmp 0x1005b87e
xor edi, edi
mov edx, dword [ebp + 0xc]
push edx
push 0
push 0
cdq
push 0x100ab5f4
push edx
push eax
push esi
push ecx
mov eax, edi
call fcn.1004ee80
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x80]
add esp, 0x20
mov dword [eax + 0x44], 0
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x60], eax
mov ecx, dword [eax]
mov dword [esp + 0x64], ecx
test ecx, ecx
je case.0x1005840f.17
mov eax, dword [eax + 0x28]
mov dword [esp + 0x70], eax
mov dx, word [ebp + 0xc]
xor eax, eax
mov word [esp + 0x74], dx
mov word [esp + 0x76], ax
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea eax, [esi + edx*8]
lea edx, [esp + 0x68]
push edx
push 0
push 0
mov dword [esp + 0x8c], eax
push 0
lea eax, [esp + 0x80]
push eax
push ecx
call fcn.1004c280
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005b92f
cmp dword [esp + 0x68], eax
jne 0x1005b92f
mov ecx, dword [esp + 0x64]
push ecx
call fcn.1004f090
add esp, 4
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x60]
mov dword [edx + 0x44], 0
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x64], eax
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov eax, 1
mov word [ebx + 0x1c], ax
cmp dword [esp + 0x60], 0
je case.0x1005840f.17
mov edi, dword [esp + 0x64]
call fcn.100556e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov ecx, dword [esp + 0x64]
cmp byte [ecx + 0x14], al
jne case.0x1005840f.17
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x68]
push edx
call fcn.10055ee0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005ce22
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
mov edx, dword [esp + 0x6c]
mov ecx, 4
mov dword [eax + 4], edx
mov word [eax + 0x1c], cx
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov edi, dword [eax + edx*4]
mov dword [esp + 0x60], edi
cmp dword [edi], 0
je case.0x1005840f.17
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x68], ecx
mov dx, word [ebp + 0x10]
mov word [esp + 0x6c], dx
cmp byte [ebp + 3], 0
je 0x1005b9fc
mov eax, 0xc
mov word [esp + 0x6e], ax
jmp 0x1005ba06
mov ecx, 4
mov word [esp + 0x6e], cx
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*8]
lea edx, [esp + 0x68]
push edx
lea ebx, [esp + 0x68]
mov dword [esp + 0x7c], ecx
call fcn.10056040
add esp, 4
cmp byte [ebp], 0x51
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
jne 0x1005ba3a
neg eax
jmp 0x1005ba3b
inc eax
mov dword [esp + 0x64], eax
test eax, eax
jle case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [esp + 0x14]
mov dword [esp + 0x64], 0
mov eax, dword [eax + 0x88]
mov dword [esp + 0x68], eax
test eax, eax
je 0x1005ba93
mov ecx, 0xbdf20da3
cmp dword [eax + 0x44], ecx
jne 0x1005ba88
cmp byte [eax + 0x65], 2
jae 0x1005ba88
cmp dword [eax + 0x54], 0
jl 0x1005ba88
inc dword [esp + 0x64]
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
test eax, eax
jne 0x1005ba73
mov ecx, 1
mov word [ebx + 0x1c], cx
cmp dword [esp + 0x64], ecx
jle 0x1005bab3
mov dword [esp + 0x10], 6
mov byte [edi + 0x38], 2
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x60]
push edx
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [edx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.1004fbb0
mov ecx, eax
mov edx, 4
mov word [ebx + 0x1c], dx
mov eax, dword [esp + 0x68]
cdq
add esp, 8
mov dword [esp + 0x10], ecx
mov dword [ebx], eax
mov dword [ebx + 4], edx
test ecx, ecx
jne case.0x1005840f.17
mov edx, dword [esp + 0x60]
test edx, edx
je case.0x1005840f.17
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + 4]
shl esi, 4
add esi, dword [eax + 8]
call fcn.10069da0
mov byte [esp + 0x2f], 1
jmp case.0x1005840f.17
mov dword [esp + 0x60], 0
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 4]
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x60]
and ecx, edx
push ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 8]
shl eax, 4
mov esi, dword [eax + edx + 4]
call fcn.1004f7a0
add esp, 4
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x10], eax
je case.0x1005840f.17
mov eax, dword [esp + 0x60]
add dword [edi + 0x6c], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jle case.0x1005840f.17
mov edx, dword [esp + 0x24]
lea ecx, [ebp + ebp*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x1005840f.17
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], 0
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [esp + 0x68], eax
cmp byte [ebp], 0x62
lea edx, [esp + 0x60]
setne cl
dec ecx
and ecx, 3
add ecx, 2
push ecx
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 4]
push edx
call fcn.1004f5a0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
cdq
add esp, 8
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x14]
push esi
mov dword [esp + 0x64], eax
call fcn.10047a90
mov eax, dword [esp + 0x64]
add esp, 4
cmp dword [ebp + 8], 0
jne 0x1005bc13
mov edx, dword [esi + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
test byte [ecx + 0x4a], 1
je 0x1005bcb1
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x1005bc22
mov ecx, str.sqlite_master
mov dword [esp + 0x64], ecx
mov dword [esp + 0x6c], esi
mov edx, dword [ebp + 4]
mov dword [esp + 0x70], edx
add edi, 0x5c
mov dword [esp + 0x74], edi
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [esi + 8]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.1003beb0
add esp, 0x10
mov dword [esp + 0x68], eax
test eax, eax
jne 0x1005bc66
mov dword [esp + 0x10], 7
jmp 0x1005bcb1
push 0
lea eax, [esp + 0x70]
push eax
mov byte [esi + 0x7c], 1
mov ecx, dword [esp + 0x70]
push fcn.100793e0
push ecx
push esi
mov dword [esp + 0x8c], 0
call fcn.10076090
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005bc9f
mov edx, dword [esp + 0x78]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x68]
push eax
push esi
call fcn.1003a9f0
add esp, 8
mov byte [esi + 0x7c], 0
mov ecx, dword [esp + 0x14]
push ecx
call fcn.10047b70
add esp, 4
cmp dword [esp + 0x10], 7
je 0x10058815
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
call fcn.10066890
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
call fcn.10068260
add esp, 4
jmp case.0x1005840f.17
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 4]
call fcn.10067e70
add esp, 4
jmp case.0x1005840f.17
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 4]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.10082850
add esp, 4
jmp case.0x1005840f.17
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x14]
lea ecx, [eax*4 + 4]
mov dword [esp + 0x60], eax
call fcn.1003ac30
mov dword [esp + 0x64], eax
test eax, eax
je 0x10058815
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + 4]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
xor ecx, ecx
cmp dword [esp + 0x60], ecx
mov dword [esp + 0x68], ecx
jle 0x1005bd9d
lea edx, [ecx + ecx*4]
lea esi, [edi + edx*8]
call fcn.10052600
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x68]
inc ecx
cmp ecx, dword [esp + 0x60]
mov dword [esp + 0x68], ecx
jl 0x1005bd74
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x64]
lea eax, [esp + 0x6c]
push eax
mov eax, dword [esp + 0x64]
push edx
movzx edx, byte [ebp + 3]
push eax
mov eax, dword [esi + 8]
shl edx, 4
mov edx, dword [edx + eax + 4]
call fcn.10050ab0
mov ecx, dword [esp + 0x70]
add esp, 0xc
push ecx
push esi
mov dword [esp + 0x78], eax
call fcn.1003a9f0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
cdq
sub dword [ecx], eax
mov eax, dword [esp + 0x7c]
push edi
sbb dword [eax + 4], edx
call fcn.10052850
add esp, 0xc
cmp dword [esp + 0x6c], 0
je 0x1005be24
mov eax, dword [esp + 0x70]
test eax, eax
je 0x10058815
push 1
push 0xffffffffffffffff
push eax
mov eax, fcn.1003a950
mov ecx, edi
call fcn.10052bb0
add esp, 0xc
movzx ecx, byte [esp + 0x2b]
mov eax, edi
call fcn.100521a0
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
lea edi, [esi + edx*8]
mov bl, 0x20
lea eax, [ebp + ebp*4]
lea esi, [esi + eax*8]
test byte [edi + 0x1c], bl
jne 0x1005be5d
call fcn.100529c0
test byte [edi + 0x1c], bl
je 0x10058815
mov ecx, dword [esi + 4]
mov edx, dword [esi]
mov edi, dword [edi]
push ecx
push edx
call fcn.100412f0
add esp, 8
jmp case.0x1005840f.17
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xe0]
test ecx, ecx
jne 0x1005ce69
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [esi + edx*8 + 0x1c], 0x20
lea edi, [esi + edx*8]
je 0x1005bec9
mov eax, dword [edi]
lea esi, [esp + 0x60]
call fcn.10041650
test eax, eax
je 0x1005bec9
mov eax, dword [esp + 0x64]
mov ebp, dword [ebp + 0xc]
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x28]
lea edx, [ebp + ebp*4]
push ecx
lea eax, [eax + edx*8]
call fcn.100528f0
add esp, 8
jmp case.0x1005840f.17
push edi
call fcn.10052850
mov ebp, dword [ebp + 8]
add esp, 4
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0x10]
lea edi, [esi + ecx*8]
mov bl, 0x20
mov dword [esp + 0x60], eax
lea esi, [esi + edx*8]
test byte [edi + 0x1c], bl
jne 0x1005bf11
call fcn.100529c0
test byte [edi + 0x1c], bl
je 0x10058815
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1005bf55
jl 0x1005bf1c
and eax, 0xf
jmp 0x1005bf21
mov eax, 0xff
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov bl, al
mov eax, dword [edi]
push edx
call fcn.100416d0
add esp, 8
mov dword [esp + 0x64], eax
test eax, eax
je 0x1005bf49
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [esp + 0x60]
test eax, eax
jl case.0x1005840f.17
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov edi, dword [edi]
push eax
push ecx
call fcn.100412f0
add esp, 8
jmp case.0x1005840f.17
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x68], esi
cmp byte [ebp + 3], 0
je 0x1005bfb4
mov eax, dword [edi + 0xdc]
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x74], eax
test eax, eax
je 0x1005bfb4
lea ebx, [ebx]
cmp dword [eax + 0x20], edx
je case.0x1005840f.17
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x74], eax
test eax, eax
jne 0x1005bfa0
mov eax, dword [edi + 0xe0]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + 0x70]
jl 0x1005bfe6
mov edi, dword [esp + 0x1c]
push str.too_many_levels_of_trigger_recursion
add edi, 0x5c
mov eax, edx
mov dword [esp + 0x14], 1
call fcn.1003add0
add esp, 4
jmp case.0x1005840f.17
test byte [esi + 0x1c], 0x40
jne 0x1005c107
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
mov dword [esp + 0x60], eax
mov ecx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*2]
lea edi, [edi*4 + 0x40]
mov eax, edx
mov dword [esp + 0x64], edi
call fcn.1003ac10
mov dword [esp + 0x74], eax
test eax, eax
je 0x10058815
mov edx, dword [esp + 0x68]
push edx
call fcn.10052570
mov ecx, dword [esp + 0x6c]
mov eax, 0x40
mov word [ecx + 0x1c], ax
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
mov dword [eax], edx
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x20]
mov dword [ecx], eax
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
mov dword [edx + 0x24], ecx
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x28], ecx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [eax + 0x4c]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x10], ecx
mov ecx, dword [eax + 0x48]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x34]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x18], ecx
mov cx, word [eax + 0x32]
mov edx, dword [esp + 0x78]
mov word [edx + 0x1c], cx
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x78]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x78]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x78]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0x24]
lea ecx, [ecx + ecx*4]
lea esi, [edx + ecx*8 + 0x40]
lea ecx, [edx + 0x40]
add esp, 4
mov dword [esp + 0x70], esi
cmp ecx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
je 0x1005c115
mov edx, 1
mov word [ecx + 0x1c], dx
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0x10], esi
mov ecx, dword [esp + 0x6c]
add ecx, 0x28
mov dword [esp + 0x6c], ecx
cmp ecx, dword [esp + 0x70]
jne 0x1005c0e0
mov edx, dword [esp + 0x74]
jmp 0x1005c115
mov edx, dword [esi]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x74], edx
inc dword [eax + 0xe0]
mov ecx, dword [eax + 0xdc]
mov dword [edx + 0x3c], ecx
mov edx, dword [esi + 0x30]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x30], edx
mov edx, dword [esi + 0x34]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x34], edx
mov edx, dword [eax + 0x6c]
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x38], edx
mov ecx, dword [esp + 0x74]
lea edx, [ecx + 0x18]
mov dword [eax + 0xdc], ecx
mov dword [eax + 0x4c], edx
mov dword [eax + 0x6c], 0
mov esi, dword [ecx + 0x24]
mov dword [eax + 0x48], esi
mov cx, word [ecx + 0x28]
mov word [eax + 0x32], cx
mov ecx, esi
inc ecx
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x24], edx
lea edx, [edx + ecx*8]
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0x78]
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
mov dword [eax + 0x14], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0xc], ecx
mov dword [esp + 0x18], 0xffffffff
jmp case.0x1005840f.17
mov edi, dword [edi + 0xdc]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x60], edi
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
mov eax, dword [eax + edx*4 + 4]
add eax, dword [ebp + 4]
mov edx, dword [edi + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
push 0x1000
push eax
mov dword [esp + 0x6c], eax
call fcn.10052ab0
add esp, 8
jmp case.0x1005840f.17
cmp dword [ebp + 4], 0
mov eax, dword [ebp + 8]
cdq
je 0x1005c1f4
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x1e0], eax
adc dword [ecx + 0x1e4], edx
jmp case.0x1005840f.17
add dword [edi + 0xc8], eax
adc dword [edi + 0xcc], edx
jmp case.0x1005840f.17
cmp dword [ebp + 4], 0
je 0x1005c22e
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1e0]
or ecx, dword [eax + 0x1e4]
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov edx, dword [edi + 0xc8]
or edx, dword [edi + 0xcc]
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov edi, dword [edi + 0xdc]
test edi, edi
je 0x1005c27f
mov ecx, edi
mov dword [esp + 0x64], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x1005c271
mov ecx, eax
mov dword [esp + 0x64], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x1005c264
mov eax, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x1005c288
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x60], eax
call fcn.10052770
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
lea esi, [esi + eax*8]
mov eax, esi
call fcn.10052770
mov ecx, dword [esp + 0x60]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ecx + 4]
cmp edx, esi
jg case.0x1005840f.17
jl 0x1005c2c2
mov edx, dword [ecx]
cmp edx, eax
jae case.0x1005840f.17
mov dword [ecx], eax
mov eax, dword [esp + 0x60]
mov dword [eax + 4], esi
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
jl case.0x1005840f.17
jg 0x1005c2ed
cmp dword [esi + eax*8], 0
jbe case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
jg case.0x1005840f.17
jl 0x1005c317
cmp dword [esi + eax*8], 0
jae case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea ecx, [esi + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
movzx ecx, byte [ebp + 3]
mov edx, dword [edi + 0x24]
mov dword [esp + 0x60], ecx
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x6c], esi
mov dword [esp + 0xb0], edx
mov dword [esp + 0x64], eax
test ecx, ecx
jle 0x1005c3a4
mov ecx, dword [esp + 0xb0]
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x6c]
call fcn.10057f40
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
inc eax
add esi, 0x28
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], esi
jl 0x1005c377
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x70], edx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
xor edi, edi
mov dword [esp + 0x68], eax
mov dword [esp + 0xa0], eax
inc dword [eax + 0x18]
mov eax, dword [esp + 0x70]
mov edx, 1
mov word [esp + 0x94], dx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x88], esi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
test byte [eax + 3], 8
je 0x1005c417
mov ecx, dword [ebp - 4]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x10]
push edx
push ecx
lea edx, [esp + 0x78]
push edx
call eax
add esp, 0xc
cmp dword [esp + 0xa4], edi
je 0x1005c467
mov bl, 1
lea edi, [esp + 0x78]
call fcn.100530e0
mov edi, dword [esp + 0x1c]
push eax
push 0x100b6f14
add edi, 0x5c
mov eax, esi
call fcn.1003add0
mov ecx, dword [esp + 0xac]
add esp, 8
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x78]
push edx
call fcn.10052570
add esp, 4
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov dword [esp + 0x60], ecx
mov eax, dword [ebp + 0x10]
call fcn.10052490
mov dword [esp + 0x10], eax
test eax, eax
je 0x1005c4ba
mov edi, dword [esp + 0x60]
mov bl, 1
call fcn.100530e0
mov edi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push 0x100b6f14
add edi, 0x5c
call fcn.1003add0
add esp, 8
movzx ecx, byte [esp + 0x2b]
mov eax, dword [esp + 0x60]
call fcn.100521a0
mov ecx, dword [esp + 0x60]
call fcn.10052a80
test eax, eax
jne 0x10058e5a
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov ebx, dword [esp + 0x14]
push ecx
call fcn.100906a0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov eax, dword [esp + 0x38]
cmp dword [eax], 0
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x68], edx
jne 0x1005c51e
mov ecx, dword [ebp + 4]
mov esi, edi
call fcn.10053fc0
mov ebx, dword [esp + 0x38]
call fcn.10047c20
mov edx, dword [esp + 0x68]
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x60], eax
mov ecx, dword [eax + 4]
mov esi, dword [ecx]
mov dword [esp + 0x64], esi
movzx edi, byte [esi + 5]
mov dword [esp + 0x6c], edi
cmp edx, 0xffffffff
jne 0x1005c54f
mov edx, edi
mov dword [esp + 0x68], edx
cmp byte [esi + 0xe], 3
jae 0x1005c56b
mov eax, dword [esi + 0x40]
cmp dword [eax], 0
je 0x1005c571
cmp dword [esi + 0x4c], 0
jl 0x1005c571
jg 0x1005c56b
cmp dword [esi + 0x48], 0
jbe 0x1005c571
mov edx, edi
mov dword [esp + 0x68], edx
mov eax, dword [esi + 0x90]
mov dword [esp + 0x70], eax
cmp edx, 5
jne 0x1005c59b
cmp byte [eax], 0
je 0x1005c590
mov eax, esi
call fcn.100457a0
test eax, eax
jne 0x1005c59b
mov edx, edi
mov dword [esp + 0x68], edx
jmp 0x1005c661
cmp edx, edi
je 0x1005c661
cmp edi, 5
je 0x1005c5b1
cmp edx, 5
jne 0x1005c661
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1c], 0
je 0x1005c624
cmp dword [eax + 0x8c], 1
jg 0x1005c624
cmp edi, 5
jne 0x1005c5e8
call fcn.10045840
mov dword [esp + 0x10], eax
test eax, eax
jne 0x1005c61a
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
jmp 0x1005c5f2
cmp edi, 4
jne 0x1005c5fb
lea ecx, [edi - 2]
mov eax, esi
call fcn.10045640
mov edx, dword [esp + 0x68]
xor ecx, ecx
cmp edx, 5
mov edx, dword [esp + 0x60]
sete cl
inc ecx
push ecx
push edx
call fcn.10051030
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x1005c659
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], edx
jmp 0x1005c65d
mov dword [esp + 0x10], 1
mov eax, str.into
cmp edx, 5
je 0x1005c63b
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add edi, 0x5c
call fcn.1003add0
add esp, 8
jmp case.0x1005840f.17
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov ecx, edx
mov eax, esi
call fcn.10045640
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x68], eax
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
lea edx, [ecx + eax*8]
mov eax, 0xa02
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], edx
cmp eax, 6
jne 0x1005c696
xor ecx, ecx
jmp 0x1005c69d
mov ecx, dword [eax*4 + 0x100b01b0]
mov dword [edx + 0x14], ecx
call fcn.1003c910
movzx ecx, byte [esp + 0x2b]
mov dword [edx + 0x18], eax
mov eax, edx
mov byte [edx + 0x1f], 1
call fcn.100521a0
jmp case.0x1005840f.17
mov eax, dword [esp + 0x14]
lea ecx, [edi + 0x5c]
call fcn.10085180
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x60], eax
call fcn.1004ad20
mov dword [esp + 0x10], eax
cmp eax, 0x65
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], 0
jmp case.0x1005840f.17
cmp dword [ebp + 4], 0
jne 0x1005c722
mov eax, dword [esp + 0x14]
call fcn.10056110
jmp case.0x1005840f.17
mov byte [edi + 0x62], 1
jmp case.0x1005840f.17
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x1005c743
mov edx, dword [esp + 0x14]
test dword [edx + 0xc], 0x80000
jne case.0x1005840f.17
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 8]
shl eax, 4
mov esi, dword [eax + edx + 4]
call fcn.10050f70
add esp, 4
mov dword [esp + 0x10], eax
cmp al, 6
jne case.0x1005840f.17
mov eax, dword [ebp + 0x10]
push eax
push str.database_table_is_locked:__s
jmp 0x1005c641
mov ebp, dword [ebp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, ebp
mov dword [esp + 0x60], ebp
call fcn.10086450
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
test eax, eax
je case.0x1005840f.17
mov ecx, dword [eax + 8]
push ecx
push edi
call fcn.10058250
add esp, 8
jmp case.0x1005840f.17
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
add edi, 0x5c
push edi
push edx
call fcn.10086020
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x1005840f.17
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x65], 2
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 4]
call fcn.100862c0
add esp, 4
mov dword [esp + 0x10], eax
mov byte [edi + 0x65], 0
jmp case.0x1005840f.17
xor ebx, ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x70], ecx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov ecx, dword [esp + 0x70]
push ecx
mov esi, eax
push edi
mov dword [esp + 0x20], esi
call fcn.10058250
add esp, 0x10
cmp esi, ebx
jne case.0x1005840f.17
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push ebx
push 0xffffffffffffffff
mov dword [eax], edx
mov ecx, dword [ebp + 4]
push ebx
push ecx
mov ebx, edi
call fcn.10057f70
add esp, 0x10
mov dword [esp + 0x60], eax
test eax, eax
je 0x1005c872
mov edx, dword [esp + 0x64]
mov dword [eax + 0x38], edx
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [esp + 0x60]
mov dword [eax + 0x3c], edx
jmp case.0x1005840f.17
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x1e], 1
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp case.0x1005840f.17
mov eax, dword [ebp + 0xc]
mov ecx, dword [edi + 0x34]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x6c], esi
lea ebx, [esi + 0x28]
mov dword [esp + 0x70], ebx
mov eax, dword [ebp + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x7c], eax
mov edx, dword [eax + 0x38]
mov dword [esp + 0x74], edx
mov eax, dword [edx]
mov dword [esp + 0x78], eax
mov eax, dword [eax]
mov dword [esp + 0x68], eax
mov ecx, dword [ebx]
mov dword [esp + 0x60], ecx
mov eax, dword [esi]
mov esi, dword [edi + 0x24]
mov dword [esp + 0x64], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], esi
mov dword [esp + 0x84], eax
jle 0x1005c936
jmp 0x1005c8f4
mov ebx, dword [esp + 0x70]
lea ecx, [eax + eax*4 + 5]
lea edx, [ebx + ecx*8]
mov ecx, dword [esp + 0x88]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov ecx, dword [eax + edx*4]
call fcn.10057f40
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x60]
inc eax
cmp eax, ecx
mov dword [esp + 0x84], eax
jl 0x1005c8f0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x68]
push ecx
mov byte [esi + 0x65], 1
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [esp + 0x74]
push eax
push edx
mov edx, dword [ecx + 0x20]
call edx
mov edi, eax
mov eax, dword [esp + 0x8c]
add esp, 0x14
push eax
push esi
mov dword [esp + 0x18], edi
mov byte [esi + 0x65], 0
call fcn.10058250
add esp, 8
test edi, edi
jne 0x1005c994
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x1005c9a6
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x7c]
mov byte [ecx + 0x14], 0
jmp case.0x1005840f.17
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x68], esi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0x30], ecx
je 0x1005c9e1
push esi
call fcn.10052850
add esp, 4
jmp case.0x1005840f.17
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x38]
mov eax, dword [eax]
push 0x40
mov dword [esp + 0x64], eax
mov ecx, dword [eax]
lea edx, [esp + 0x74]
push 0
push edx
mov dword [esp + 0x70], ecx
call sub.MSVCR90.dll_memset
mov ebx, dword [esp + 0x74]
add esp, 0xc
lea eax, [esp + 0x78]
call fcn.10052b60
mov eax, dword [esp + 0x94]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x94], ax
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x38]
push ecx
mov ecx, dword [esp + 0x68]
lea edx, [esp + 0x74]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6c]
add esp, 0xc
push eax
push edi
call fcn.10058250
mov eax, dword [esp + 0xac]
add esp, 8
test eax, eax
je 0x1005ca63
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x2b]
lea eax, [esp + 0x78]
call fcn.100521a0
mov eax, dword [esp + 0x68]
lea ebx, [esp + 0x78]
call fcn.10052b60
mov ecx, dword [esp + 0x68]
call fcn.10052a80
test eax, eax
jne 0x10058e5a
jmp case.0x1005840f.17
mov edx, dword [edi + 0x34]
mov dword [esp + 0x68], 0
mov ecx, dword [ebp + 4]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x6c], eax
cmp byte [eax + 0x14], 0
jne case.0x1005840f.17
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [esp + 0x60], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x64], ecx
mov byte [edi + 0x65], 1
mov edx, dword [eax + 0x38]
mov eax, dword [ecx + 0x24]
push edx
call eax
mov ecx, dword [esp + 0x64]
add esp, 4
push ecx
mov esi, eax
push edi
mov dword [esp + 0x18], esi
mov byte [edi + 0x65], 0
call fcn.10058250
add esp, 8
test esi, esi
jne 0x1005cb06
mov edx, dword [esp + 0x6c]
mov eax, dword [edx + 0x38]
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
jne case.0x1005840f.17
mov ebp, dword [ebp + 8]
dec ebp
mov dword [esp + 0x18], ebp
jmp case.0x1005840f.17
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
lea esi, [esi + ecx*8]
mov dword [esp + 0x64], esi
mov ecx, dword [esi + 0x14]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
push eax
push edi
call fcn.10058250
jmp 0x1005cc85
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x60], ebx
mov edx, dword [ebx]
mov dword [esp + 0x64], edx
mov eax, dword [ebp + 8]
mov dword [esp + 0x68], eax
cmp dword [edx + 0x34], 0
je case.0x1005840f.17
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x78], ecx
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x6c], 0
test eax, eax
jle 0x1005cbd1
mov ecx, esi
call fcn.10057f40
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x6c]
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
inc ecx
add esi, 0x28
cmp ecx, eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x6c], ecx
jl 0x1005cb97
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
mov edx, dword [edx + 0x34]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x7c]
push ecx
push eax
push ebx
call edx
mov esi, eax
mov eax, dword [esp + 0x70]
push eax
push edi
mov dword [esp + 0x28], esi
call fcn.10058250
add esp, 0x18
test esi, esi
jne 0x1005cc11
cmp dword [ebp + 4], esi
je 0x1005cc11
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0x74]
mov dword [eax + 0x34], edx
inc dword [edi + 0x6c]
jmp case.0x1005840f.17
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x2c]
mov dword [ebx], edx
mov dword [ebx + 4], 0
jmp case.0x1005840f.17
mov ebp, dword [ebp + 0x10]
mov ecx, ebp
test ebp, ebp
jne 0x1005cc4a
mov ecx, dword [edi + 0xbc]
mov dword [esp + 0x60], ecx
test ecx, ecx
je case.0x1005840f.17
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x94], 0
je case.0x1005840f.17
push edi
call fcn.10057c00
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x94]
add esp, 4
mov edi, eax
push edi
push ecx
call edx
push edi
push esi
call fcn.1003a9f0
add esp, 0x10
inc dword [esp + 0x18]
cmp dword [esp + 0x10], 0
jne 0x10058e7a
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x14]
jmp 0x10058380
mov dword [esp + 0x10], 9
jmp 0x10058e7a
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x58], eax
mov cl, byte [ebp + 8]
mov byte [edi + 0x38], cl
mov dword [edi + 0x54], edx
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1005cd09
mov esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push 0x100b6f14
lea edi, [esi + 0x5c]
call fcn.1003add0
mov eax, dword [ebp + 0x10]
mov ecx, dword [esi + 0xbc]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [ebp + 4]
push ecx
push edx
push str.abort_at__d_in___s_:__s
call fcn.1003c0c0
add esp, 0x18
mov edi, esi
jmp 0x1005cd2b
cmp dword [edi + 0x58], 0
je 0x1005cd2b
mov eax, dword [edi + 0xbc]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 4]
push ecx
push str.constraint_failed_at__d_in___s_
call fcn.1003c0c0
add esp, 0xc
push edi
call fcn.100550a0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x1005cd98
mov dword [edi + 0x58], esi
jmp 0x10058ed4
lea edx, [esp + 0x70]
push edx
call fcn.10052570
add esp, 4
jmp 0x10058815
mov dword [esp + 0x10], 0x14
jmp 0x1005ce22
mov eax, dword [esp + 0x18]
mov dword [edi + 0x54], eax
mov esi, 5
mov byte [ebp + 0x1c], 0
mov dword [edi + 0x58], esi
jmp 0x10058ed4
test ebp, ebp
je 0x1005cdaa
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.1008fdc0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 0x14]
call fcn.1008fa10
mov esi, dword [edi + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x10058ed4
push 1
mov ecx, edi
call fcn.10055040
mov esi, eax
add esp, 4
test esi, esi
jne 0x10058ed4
mov cl, byte [esp + 0x60]
mov esi, dword [esp + 0x14]
push edi
mov byte [esi + 0x1c], cl
call fcn.100550a0
add esp, 4
cmp eax, 5
jne 0x1005cd8f
mov edx, dword [esp + 0x18]
mov al, 1
sub al, byte [esp + 0x60]
mov dword [edi + 0x54], edx
mov byte [esi + 0x1c], al
mov esi, 5
mov dword [edi + 0x58], esi
jmp 0x10058ed4
mov ecx, dword [esp + 0x18]
mov esi, 5
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], esi
jmp 0x10058ed4
mov eax, 0xf432
call fcn.10091390
mov dword [esp + 0x10], eax
jmp 0x1005ce22
mov dword [esp + 0x10], 0xd
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x1e], 0
je 0x1005ce36
mov dword [esp + 0x10], 7
jmp 0x1005ce44
cmp dword [esp + 0x10], 0xc0a
je 0x10058e7a
mov eax, dword [esp + 0x10]
call fcn.1008fe90
mov edi, dword [esp + 0x1c]
push eax
push 0x100b6f14
add edi, 0x5c
mov eax, ecx
call fcn.1003add0
add esp, 8
jmp 0x10058e7a
mov eax, 9
mov dword [esp + 0x10], eax
mov dword [edi + 0x58], eax
mov eax, dword [str.interrupted]
test eax, eax
jne 0x1005ce83
mov eax, str.unknown_error
mov edi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x18]
push 0x100b6f14
add edi, 0x5c
call fcn.1003add0
add esp, 8
jmp 0x10058e7a