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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
push edi
mov eax, dword [edi + 0x14]
mov ebx, dword [edi + 0x4c]
mov dword [ebp - 0xf8], eax
mov eax, dword [edi]
mov dword [ebp - 8], eax
and byte [ebp + 0xb], cl
mov eax, dword [eax + 8]
mov dword [ebp - 4], ecx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xe0], ebx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xf4], ecx
mov al, byte [eax + 0x49]
mov byte [ebp - 0xd8], al
call fcn.00411ba5
cmp dword [edi + 0x58], 7
pop ecx
je 0x41872c
mov eax, dword [ebp - 8]
xor esi, esi
mov dword [edi + 0x58], esi
mov dword [edi + 0x2c], esi
mov dword [eax + 0x1a0], esi
cmp dword [eax + 0xd8], esi
jne 0x41886c
xor ecx, ecx
cmp dword [eax + 0x100], esi
mov eax, dword [edi + 0x54]
setne cl
mov dword [ebp - 0x100], ecx
mov dword [ebp - 0xc], eax
jmp 0x413fb7
mov ebx, dword [ebp - 0xe0]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x41872c
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xf8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
mov eax, dword [ebp - 8]
xor ecx, ecx
cmp dword [ebp - 0x100], ecx
je 0x414017
mov eax, dword [eax + 0x108]
cmp eax, dword [ebp - 0xf0]
jne 0x41400e
mov eax, dword [ebp - 8]
push dword [eax + 0x104]
call dword [eax + 0x100]
test eax, eax
pop ecx
jne 0x41864c
and dword [ebp - 0xf0], eax
xor ecx, ecx
inc dword [ebp - 0xf0]
mov eax, dword [ebp - 8]
test byte [esi + 2], 2
je 0x41403e
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0x10], eax
call fcn.00410a83
mov eax, dword [ebp - 0x10]
pop ecx
xor ecx, ecx
mov word [eax + 0x1c], 4
mov eax, dword [ebp - 8]
movzx edx, byte [esi]
dec edx
cmp edx, 0x90
ja case.0x41404e.17
jmp dword [edx*4 + 0x4188a9]
cmp dword [eax + 0xd8], ecx
jne 0x41886c
jmp 0x417d0e
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebp - 0xc]
cdq
mov dword [ebx], eax
mov word [ebx + 0x1c], 4
mov dword [ebx + 4], edx
mov eax, dword [esi + 8]
dec eax
jmp 0x4140b5
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov eax, dword [ebx + eax*8]
jmp 0x4140b5
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebx]
mov word [ebx + 0x1c], 4
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc], eax
jmp case.0x41404e.17
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
je case.0x41404e.17
cmp dword [esi + 4], ecx
jne 0x418658
mov ebx, dword [edi + 0xcc]
lea eax, [edi + 0xcc]
cmp ebx, ecx
je 0x418658
push dword [edi + 0x68]
mov ecx, dword [ebx + 0x3c]
dec dword [edi + 0xd0]
mov dword [eax], ecx
push dword [ebp - 8]
call fcn.00411eb5
push ebx
call fcn.00411318
add esp, 0xc
cmp dword [esi + 8], 4
mov dword [ebp - 0xc], eax
jne 0x414121
mov ecx, dword [edi + 0x14]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0xf8], eax
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0xe0], eax
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
cdq
jmp 0x414e0d
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
jmp 0x4170b0
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 8
mov ecx, dword [esi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x41404e.17
push dword [esi + 0x10]
mov byte [esi], 9
call fcn.004096bf
cmp byte [ebp - 0xd8], 1
pop ecx
mov dword [esi + 4], eax
je 0x4141f6
push 0
push 1
push 0xffffffffffffffff
push dword [esi + 0x10]
push dword [ebp - 0x10]
call fcn.00410638
add esp, 0x14
cmp eax, 0x12
mov dword [ebp - 4], eax
je 0x418889
movzx eax, byte [ebp - 0xd8]
push eax
push dword [ebp - 0x10]
call fcn.00412333
pop ecx
test eax, eax
pop ecx
jne 0x41872c
mov ebx, dword [ebp - 0x10]
and dword [ebx + 0x24], eax
mov ax, word [ebx + 0x1c]
and ax, 0xfbff
or ah, 8
mov word [ebx + 0x1c], ax
cmp byte [esi + 1], 0xff
jne 0x4141e6
push dword [esi + 0x10]
push dword [ebp - 8]
call fcn.004085f3
pop ecx
pop ecx
or byte [esi + 1], 0xff
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 4], eax
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x48]
jg 0x418889
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov cl, byte [ebp - 0xd8]
mov byte [eax + 0x1f], cl
jmp case.0x41404e.17
push 0
push 0
push dword [esi + 4]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x10]
push esi
call fcn.00410638
add esp, 0x14
jmp 0x414598
mov eax, dword [esi + 4]
dec eax
mov dword [ebp - 0xd0], eax
mov ecx, dword [esi + 8]
mov dword [ebp - 0xcc], ecx
mov esi, dword [esi + 0xc]
mov ecx, esi
dec esi
test ecx, ecx
mov dword [ebp - 0xc8], esi
jle case.0x41404e.17
jmp 0x414272
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 0x3c]
lea ecx, [eax + eax*4]
inc eax
lea ecx, [edx + ecx*8]
mov dword [ebp - 0xd0], eax
push ecx
mov dword [ebp - 0xc4], ecx
call fcn.0041ccfd
test eax, eax
pop ecx
jne 0x418889
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xe0]
lea ecx, [eax + eax*4]
inc eax
mov dword [ebp - 0xcc], eax
lea esi, [edx + ecx*8]
push esi
mov dword [ebp - 0x10], esi
call fcn.00410a83
mov word [esi + 0x1c], 1
mov dword [esp], 0x800
push dword [ebp - 0xc4]
push esi
call fcn.0041cd25
mov eax, dword [ebp - 0xc8]
add esp, 0xc
dec dword [ebp - 0xc8]
test eax, eax
jg 0x41426c
jmp case.0x41404e.17
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xcc], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
mov dword [ebp - 0xc4], ecx
lea esi, [ebx + eax*8]
lea eax, [ecx + ecx*4]
lea ebx, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
dec dword [ebp - 0xcc]
mov dword [ebp - 0x10], ebx
test eax, eax
je case.0x41404e.17
mov eax, dword [ebx + 0x24]
push esi
mov dword [ebp - 0xd0], eax
and dword [ebx + 0x24], 0
push ebx
call fcn.00413dc4
mov eax, dword [ebp - 0xd0]
add ebx, 0x28
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0xcc]
add esi, 0x28
dec dword [ebp - 0xcc]
pop ecx
test eax, eax
pop ecx
jne 0x414328
mov dword [ebp - 0x10], ebx
jmp case.0x41404e.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea ecx, [ebx + ecx*8]
lea eax, [ebx + eax*8]
push ecx
push eax
mov dword [ebp - 0x10], eax
call fcn.0041cd25
mov eax, dword [ebp - 0x10]
add esp, 0xc
test byte [eax + 0x1d], 0x10
je case.0x41404e.17
push eax
call fcn.004109b8
test eax, eax
pop ecx
jne 0x41872c
jmp case.0x41404e.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea ecx, [esi + esi*4]
lea eax, [eax + eax*4]
lea ecx, [ebx + ecx*8]
lea eax, [ebx + eax*8]
push ecx
mov dword [ebp - 0x10], eax
push eax
call fcn.0041cd25
jmp 0x41798b
push 0
push edi
call fcn.00411be2
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne case.0x41404e.17
push 1
push edi
call fcn.00411810
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x4186a0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov dword [ebp - 0xd4], edx
mov dx, word [edx + 0x1c]
lea eax, [eax + eax*4]
lea esi, [esi + esi*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xdc], eax
lea esi, [ebx + esi*8]
mov al, byte [eax + 0x1c]
mov dword [ebp - 0x10], esi
or al, dl
test al, 1
je 0x414441
push esi
call fcn.00410b77
jmp 0x417ff4
test dh, 0x40
je 0x414454
push dword [ebp - 0xd4]
call fcn.00410a0f
pop ecx
jmp 0x414456
xor eax, eax
test eax, eax
jne 0x41872c
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1d], 0x40
je 0x414473
push eax
call fcn.00410a0f
pop ecx
jmp 0x414475
xor eax, eax
test eax, eax
jne 0x41872c
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1c], 0x12
jne 0x4144a1
movzx ecx, byte [ebp - 0xd8]
push ecx
push eax
call fcn.00412776
pop ecx
test eax, eax
pop ecx
jne 0x41872c
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1c], 0x12
jne 0x4144cb
movzx ecx, byte [ebp - 0xd8]
push ecx
push eax
call fcn.00412776
pop ecx
test eax, eax
pop ecx
jne 0x41872c
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [eax + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xcc], edx
mov eax, dword [eax + 0x48]
cdq
cmp dword [ebp - 0xcc], edx
jg 0x418889
jl 0x414505
cmp dword [ebp - 0xd0], eax
ja 0x418889
mov ax, word [esi + 0x1c]
and ax, 0xbf02
or al, 2
mov word [esi + 0x1c], ax
xor eax, eax
cmp esi, dword [ebp - 0xdc]
sete al
push eax
mov eax, dword [ebp - 0xd0]
add eax, 2
push eax
push esi
call fcn.00410810
add esp, 0xc
test eax, eax
jne 0x41872c
mov ebx, dword [ebp - 0xdc]
cmp esi, ebx
je 0x414555
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [esi + 0x14]
call fcn.00440750
add esp, 0xc
mov eax, dword [ebp - 0xd4]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [esi + 0x14]
add eax, dword [ebx + 0x18]
push eax
call fcn.00440750
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0xd0]
add esp, 0xc
and byte [eax + ecx], 0
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0xd0]
and byte [eax + ecx + 1], 0
or byte [esi + 0x1d], 2
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0x18], eax
mov al, byte [ebp - 0xd8]
mov byte [esi + 0x1f], al
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00413e7d
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xdc], eax
call fcn.00413e7d
mov eax, dword [esi + 0xc]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xe0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
movzx ecx, word [ebx + 0x1c]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xdc]
movzx eax, word [eax + 0x1c]
or eax, ecx
test al, 1
mov dword [ebp - 0xd0], eax
jne 0x414868
mov ecx, dword [ebp - 0xdc]
mov al, byte [ecx + 0x1c]
and al, byte [ebx + 0x1c]
and al, 4
cmp al, 4
jne 0x414742
mov eax, dword [ebx]
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 4]
mov dword [ebp - 0xc4], ebx
mov edx, dword [ecx]
mov dword [ebp - 0xc0], edx
mov ecx, dword [ecx + 4]
mov dword [ebp - 0xbc], ecx
movzx ecx, byte [esi]
sub ecx, 0x56
je 0x414711
dec ecx
je 0x414703
dec ecx
je 0x4146ee
dec ecx
mov ecx, eax
je 0x4146a2
or ecx, ebx
je 0x414868
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x414681
push 1
xor ebx, ebx
pop eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc8], eax
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00441020
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x41471d
or ecx, ebx
je 0x414868
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x4146d9
cmp dword [ebp - 0xc0], 0
jne 0x4146d9
cmp dword [ebp - 0xbc], 0x80000000
jne 0x4146d9
push 1
xor ebx, ebx
pop eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc8], eax
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00441120
jmp 0x414694
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.004410e0
jmp 0x414694
sub dword [ebp - 0xc0], eax
sbb dword [ebp - 0xbc], ebx
jmp 0x41471d
add dword [ebp - 0xc0], eax
adc dword [ebp - 0xbc], ebx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [eax + 4], ecx
mov cx, word [eax + 0x1c]
and cx, 0xbf04
or ecx, 4
jmp 0x414cf7
push ebx
call fcn.00412801
push dword [ebp - 0xdc]
fstp qword [ebp - 0xb8]
call fcn.00412801
fstp qword [ebp - 0xb0]
movzx eax, byte [esi]
pop ecx
sub eax, 0x56
pop ecx
je 0x414840
dec eax
je 0x414832
dec eax
je 0x414824
fld qword [ebp - 0xb8]
dec eax
je 0x41480b
call fcn.00440f24
fld qword [ebp - 0xb0]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
call fcn.00440f24
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc0], eax
or ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
je 0x414868
mov ecx, dword [ebp - 0xc8]
and ecx, dword [ebp - 0xc4]
cmp ecx, 0xffffffff
jne 0x4147e4
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], 1
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push edx
push eax
call fcn.00441020
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], edx
fild qword [ebp - 0x10c]
jmp 0x41484c
fcomp qword [0x44d810]
fnstsw ax
sahf
je 0x414868
fld qword [ebp - 0xb0]
fdiv qword [ebp - 0xb8]
jmp 0x41484c
fld qword [ebp - 0xb0]
fmul qword [ebp - 0xb8]
jmp 0x41484c
fld qword [ebp - 0xb0]
fsub qword [ebp - 0xb8]
jmp 0x41484c
fld qword [ebp - 0xb0]
fadd qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
fld qword [ebp - 0xb0]
push ecx
push ecx
fstp qword [esp]
call fcn.0040969d
pop ecx
test eax, eax
pop ecx
je 0x414870
push dword [ebp - 0x10]
jmp 0x414437
mov eax, dword [ebp - 0x10]
fld qword [ebp - 0xb0]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
and cx, 0xbf08
or ecx, 8
mov word [eax + 0x1c], cx
test byte [ebp - 0xd0], 8
jne case.0x41404e.17
push eax
call fcn.0041cbb4
jmp 0x417ff4
movzx edx, byte [esi + 3]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x88], eax
mov eax, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xd0], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xcc], ebx
jle 0x41490e
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + ecx*4], ebx
push dword [ebp - 0xcc]
call fcn.00413e48
inc dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
add ebx, 0x28
cmp eax, dword [ebp - 0x84]
pop ecx
mov dword [ebp - 0xcc], ebx
jl 0x4148d0
cmp byte [esi + 1], 0xfb
mov eax, dword [esi + 0x10]
jne 0x414926
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], eax
jmp 0x414934
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 8]
and dword [ebp - 0xa0], 0
lea eax, [eax + eax*4]
and dword [ebp - 0x9c], 0
mov word [ebp - 0xa4], 1
mov dword [ebp - 0xb0], ebx
lea eax, [ecx + eax*8]
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00413dc4
mov eax, dword [ebp - 0xa4]
and dword [ebp - 0x94], 0
and ax, 0xbf01
pop ecx
or al, 1
pop ecx
mov word [ebp - 0xa4], ax
mov eax, dword [ebp - 0xc8]
test byte [eax + 3], 8
je 0x4149a4
mov ecx, dword [esi - 4]
mov dword [ebp - 0x90], ecx
push dword [ebp - 0x88]
lea ecx, [ebp - 0xc8]
push dword [ebp - 0x84]
push ecx
call dword [eax + 0xc]
add esp, 0xc
cmp byte [ebx + 0x1e], 0
jne 0x41871f
cmp dword [ebp - 0xc4], 0
je 0x4149ed
push dword [esi + 4]
push dword [ebp - 0xc4]
call fcn.00411e71
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf9
cmp dword [ebp - 0x94], 0
je 0x414a1e
lea eax, [ebp - 0xc0]
push eax
call fcn.00412a0c
push eax
push 0x451314
lea eax, [edi + 0x5c]
push ebx
push eax
call fcn.00411c3d
mov eax, dword [ebp - 0x94]
add esp, 0x14
mov dword [ebp - 4], eax
movzx eax, byte [ebp - 0xd8]
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00412333
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0x10]
call fcn.00413dc4
push dword [ebp - 0x10]
jmp 0x4183be
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 8]
mov dword [ebp - 0xd4], edx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov al, byte [ecx + 0x1c]
or al, byte [edx + 0x1c]
mov dword [ebp - 0x10], ebx
test al, 1
jne 0x4182fa
push ecx
call fcn.0041286e
push dword [ebp - 0xd4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.0041286e
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
movzx edx, byte [esi]
pop ecx
sub edx, 0x52
pop ecx
je 0x414af0
dec edx
je 0x414adc
dec edx
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
je 0x414ad5
call fcn.00441780
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x414b02
call fcn.00441760
jmp 0x414ac7
or dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc4]
or dword [ebp - 0xcc], eax
jmp 0x414b02
and dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc4]
and dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebx], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebx + 4], eax
mov ax, word [ebx + 0x1c]
and ax, 0xbf04
or al, 4
jmp 0x414fd3
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041cc0b
mov eax, dword [esi + 8]
pop ecx
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x41404e.17
mov eax, dword [esi + 4]
push dword [ebp - 0xd8]
lea eax, [eax + eax*4]
push 0x63
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041dc78
mov ax, word [ebx + 0x1c]
add esp, 0xc
test al, 4
jne 0x414b17
mov esi, dword [esi + 8]
test esi, esi
je 0x41874e
jmp 0x417d11
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 4
lea eax, [ebx + eax*8]
je case.0x41404e.17
push eax
call fcn.00413ef7
jmp 0x417ff4
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
mov ax, word [ebx + eax*8 + 0x1c]
test al, 1
jne case.0x41404e.17
push dword [ebp - 0xd8]
mov cl, al
shr cl, 3
and ecx, 2
push 0x61
or ecx, eax
push esi
mov word [esi + 0x1c], cx
call fcn.0041dc78
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x414bd8
push esi
call fcn.00410a0f
pop ecx
mov dword [ebp - 4], eax
jmp 0x414bdc
and dword [ebp - 4], 0
and word [esi + 0x1c], 0xbfe3
jmp case.0x41404e.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
mov ax, word [ebx + eax*8 + 0x1c]
test al, 1
jne case.0x41404e.17
test al, 0x10
jne 0x414c25
push dword [ebp - 0xd8]
push 0x61
push esi
call fcn.0041dc78
mov ax, word [esi + 0x1c]
add esp, 0xc
and ax, 0xbf10
or al, 0x10
mov word [esi + 0x1c], ax
jmp case.0x41404e.17
and ax, 0xff10
jmp 0x414c1c
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 0xd
lea eax, [ebx + eax*8]
jne case.0x41404e.17
push eax
call fcn.0041cc2e
jmp 0x417ff4
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x41404e.17
push eax
call fcn.0041cc0b
jmp 0x417ff4
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x41404e.17
jmp 0x414b86
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd4], edx
mov dx, word [edx + 0x1c]
lea eax, [eax + eax*4]
mov dword [ebp - 0xe8], edx
lea eax, [ebx + eax*8]
mov dword [ebp - 0xdc], eax
mov ax, word [eax + 0x1c]
mov word [ebp - 0xe4], ax
or al, dl
test al, 1
mov al, byte [esi + 3]
je 0x414d07
test al, 0x80
je 0x414cda
mov eax, dword [ebp - 0xe4]
and eax, edx
not al
and eax, 1
mov dword [ebp - 0xd0], eax
jmp 0x414d94
test al, 0x10
je 0x414d00
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov cx, word [ebx + eax*8 + 0x1c]
lea eax, [ebx + eax*8]
and cx, 0xbf01
mov dword [ebp - 0x10], eax
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x41404e.17
test al, 8
jmp 0x416714
and al, 0x67
mov byte [ebp - 0xcc], al
je 0x414d4f
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push dword [ebp - 0xd4]
call fcn.0041dc78
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push dword [ebp - 0xdc]
call fcn.0041dc78
mov eax, dword [ebp - 8]
add esp, 0x18
cmp byte [eax + 0x1e], 0
jne 0x41872c
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1d], 0x40
je 0x414d62
push eax
call fcn.00410a0f
pop ecx
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1d], 0x40
je 0x414d75
push eax
call fcn.00410a0f
pop ecx
push dword [esi + 0x10]
push dword [ebp - 0xd4]
push dword [ebp - 0xdc]
call fcn.0041cd66
add esp, 0xc
mov dword [ebp - 0xd0], eax
xor ecx, ecx
movzx edx, byte [esi]
sub edx, 0x4b
je 0x414dd5
dec edx
je 0x414dcc
dec edx
je 0x414dc3
dec edx
je 0x414dba
dec edx
je 0x414db1
xor edx, edx
cmp eax, ecx
setge dl
jmp 0x414ddc
xor edx, edx
cmp eax, ecx
setl dl
jmp 0x414ddc
xor edx, edx
cmp eax, ecx
setle dl
jmp 0x414ddc
xor edx, edx
cmp eax, ecx
setg dl
jmp 0x414ddc
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x414ddc
xor edx, edx
cmp eax, ecx
setne dl
mov dword [ebp - 0xd0], edx
test byte [esi + 3], 0x10
je 0x41670e
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea ecx, [ebx + eax*8]
mov dword [ebp - 0x10], ecx
mov ax, word [ecx + 0x1c]
and ax, 0xbf04
or al, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41404e.17
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf4], eax
jmp case.0x41404e.17
mov ebx, dword [esi + 0xc]
mov dword [ebp - 0xd0], ebx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xc0], edx
mov eax, dword [esi + 4]
mov dword [ebp - 0xc8], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xc4], eax
xor eax, eax
cmp ebx, ecx
mov dword [ebp - 0xcc], eax
jle 0x414eee
mov esi, dword [ebp - 0xe0]
jmp 0x414e67
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x414e76
mov ecx, dword [ecx + eax*4]
jmp 0x414e78
mov ecx, eax
mov dword [ebp - 0xbc], ecx
mov ebx, dword [edx + eax*4 + 0xc]
mov dword [ebp - 0xb8], ebx
mov edx, dword [edx + 8]
push ebx
movzx eax, byte [edx + eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xc4]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov eax, dword [ebp - 0xc8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
call fcn.0041cd66
add esp, 0xc
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x414edd
mov eax, dword [ebp - 0xcc]
inc eax
cmp eax, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
jl 0x414e61
jmp 0x414eee
cmp dword [ebp - 0xb4], 0
je 0x414eee
neg eax
mov dword [ebp - 0xec], eax
and dword [ebp - 0xf4], 0
jmp case.0x41404e.17
cmp dword [ebp - 0xec], ecx
jge 0x414f0a
mov esi, dword [esi + 4]
jmp 0x417d11
je 0x417d0e
mov esi, dword [esi + 0xc]
jmp 0x417d11
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x414f34
mov dword [ebp - 0xd0], 2
jmp 0x414f52
push eax
call fcn.0041286e
or eax, edx
pop ecx
je 0x414f4b
mov dword [ebp - 0xd0], 1
jmp 0x414f52
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x414f6e
mov dword [ebp - 0xcc], 2
jmp 0x414f8c
push eax
call fcn.0041286e
or eax, edx
pop ecx
je 0x414f85
mov dword [ebp - 0xcc], 1
jmp 0x414f8c
and dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
cmp byte [esi], 0x45
lea ecx, [ecx + eax*2]
jne 0x414faa
movzx eax, byte [eax + ecx + 0x44ab80]
jmp 0x414fb2
movzx eax, byte [eax + ecx + 0x44ab8c]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 0xc]
cmp eax, 2
lea ecx, [esi + esi*4]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0x10], ebx
jne 0x414fdc
mov ax, word [ebx + 0x1c]
and ax, 0xbf01
or al, 1
mov word [ebx + 0x1c], ax
jmp case.0x41404e.17
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x414b13
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
lea esi, [ebx + ecx*8]
mov dword [ebp - 0x10], esi
jne 0x414436
push eax
call fcn.0041286e
or eax, edx
pop ecx
jne 0x415017
push 1
pop eax
jmp 0x415019
xor eax, eax
cdq
push edx
push eax
push esi
jmp 0x417986
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
lea esi, [ebx + ecx*8]
mov dword [ebp - 0x10], esi
jne 0x414436
push eax
call fcn.0041286e
not edx
not eax
push edx
push eax
push esi
call fcn.00412b4c
jmp 0x41805a
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x41506e
mov eax, dword [esi + 0xc]
jmp 0x4150a3
push eax
call fcn.00412801
fcomp qword [0x44d810]
pop ecx
fnstsw ax
sahf
je 0x41508c
mov dword [ebp - 0xd0], 1
jmp 0x415093
and dword [ebp - 0xd0], 0
cmp byte [esi], 0x1b
jne 0x4150a9
xor eax, eax
cmp dword [ebp - 0xd0], eax
sete al
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jmp 0x416714
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x416714
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x417d08
mov eax, dword [esi + 4]
push 0x28
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 8]
and dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], eax
lea eax, [ebp - 0x90]
push 0
push eax
call fcn.00440a90
mov eax, dword [esi + 0xc]
add esp, 0xc
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0x94], eax
mov cx, word [eax + 0x1c]
and cx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0xc0]
and dword [ebp - 0xb4], 0
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xb0], ecx
je 0x4151dc
push eax
call fcn.0041cfce
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x14], 0
je 0x415173
and dword [ebp - 0xd0], 0
jmp case.0x41404e.17
mov ecx, dword [eax + 0x44]
cmp ecx, dword [edi + 0x50]
jne 0x415192
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0xb4], ecx
jmp 0x415217
cmp byte [eax + 0x17], 0
je 0x4151c3
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xb0]
call fcn.00410197
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc8]
pop ecx
mov dword [ebp - 0xd0], eax
pop ecx
mov eax, dword [ebp - 0xb8]
jmp 0x415217
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0xb0]
call fcn.00419135
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x4151bb
mov ecx, dword [eax + 0x24]
test ecx, ecx
jle 0x415210
lea ecx, [ecx + ecx*4]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0xb4], ecx
test byte [esi + 3], 0x20
je 0x415208
xor ecx, ecx
jmp 0x41520b
mov ecx, dword [edi + 0x50]
mov dword [eax + 0x44], ecx
jmp 0x4151bb
and dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xd0]
test ecx, ecx
je case.0x41404e.17
mov edx, dword [ebp - 8]
cmp ecx, dword [edx + 0x48]
ja 0x418889
mov edx, dword [eax + 0x2c]
mov dword [ebp - 0xa4], edx
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0xac], ecx
mov ebx, dword [eax + 0x44]
cmp ebx, dword [edi + 0x50]
jne 0x415259
mov eax, dword [eax + 0x50]
mov dword [ebp - 0xa8], eax
jmp 0x4154b3
and dword [ebp - 0x4c], 0
lea ecx, [ecx + edx*4]
mov dword [ebp - 0xa8], ecx
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x48], ecx
mov ecx, dword [ebp - 0xb8]
mov eax, dword [edi + 0x50]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x415296
mov dword [ebp - 0x98], eax
jmp 0x4152e6
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x17], 0
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0xb0]
je 0x4152b3
call fcn.00419237
jmp 0x4152b8
call fcn.004192af
pop ecx
mov dword [ebp - 0x98], eax
pop ecx
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [ebp - 0x4c]
ja 0x4152dc
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
mov dword [ecx + 0x54], eax
jmp 0x4152e6
mov eax, dword [ebp - 0xb8]
and dword [eax + 0x54], 0
mov ecx, dword [ebp - 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4152fd
movzx eax, al
push 1
mov dword [ebp - 0x60], eax
pop eax
jmp 0x41530c
lea eax, [ebp - 0x60]
push eax
push ecx
call fcn.0040f32f
pop ecx
pop ecx
movzx eax, al
cmp dword [ebp - 0x60], 0x18003
movzx eax, al
mov dword [ebp - 0x50], eax
jbe 0x415327
mov dword [ebp - 4], 0xb
jmp case.0x41404e.17
mov ecx, dword [ebp - 0xa4]
lea eax, [ecx + ecx*4 + 3]
cmp eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
jle 0x415345
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
xor ebx, ebx
cmp dword [ebp - 0xb4], ebx
jne 0x41539f
cmp dword [ebp - 0x4c], eax
jge 0x41539f
lea ecx, [ebp - 0x90]
mov word [ebp - 0x74], bx
push ecx
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x80], ebx
movzx ecx, byte [ecx + 0x17]
push ecx
push eax
push ebx
push dword [ebp - 0xb0]
call fcn.0041cf09
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 4], eax
jne case.0x41404e.17
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x98], edx
jmp 0x4153a5
mov edx, dword [ebp - 0x98]
add eax, edx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x50]
add eax, edx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x58], eax
xor eax, eax
cmp ecx, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x9c], eax
jle 0x41545b
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0xa8]
jae 0x41543e
mov edx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4153ff
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0x9c]
movzx eax, al
push 1
mov dword [ecx + edx*4], eax
pop eax
jmp 0x41541a
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xac]
lea eax, [edx + eax*4]
push eax
push ecx
call fcn.0040f32f
pop ecx
pop ecx
movzx eax, al
mov ecx, dword [ebp - 0x9c]
movzx eax, al
add dword [ebp - 0x68], eax
mov eax, dword [ebp - 0xac]
push dword [eax + ecx*4]
call fcn.0041d160
add dword [ebp - 0x58], eax
pop ecx
adc dword [ebp - 0x54], 0
jmp 0x415442
and dword [ecx + eax*4], 0
mov eax, dword [ebp - 0x9c]
inc eax
cmp eax, dword [ebp - 0xa4]
mov dword [ebp - 0x9c], eax
jl 0x4153cb
lea eax, [ebp - 0x90]
push eax
call fcn.00410a5d
mov edx, dword [ebp - 0x68]
pop ecx
cmp edx, dword [ebp - 0x64]
mov word [ebp - 0x74], 1
ja 0x41531b
mov eax, dword [ebp - 0xd0]
xor ecx, ecx
cmp dword [ebp - 0x54], ecx
ja 0x41531b
jb 0x415496
cmp dword [ebp - 0x58], eax
ja 0x41531b
cmp edx, dword [ebp - 0x64]
jne 0x4154ad
cmp dword [ebp - 0x58], eax
jne 0x41531b
cmp dword [ebp - 0x54], ecx
jne 0x41531b
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xa8]
shl eax, 2
cmp dword [eax + edx], 0
je 0x4155ad
cmp dword [ebp - 0xb4], 0
je 0x415515
push dword [ebp - 0x94]
call fcn.00410a83
mov eax, dword [ebp - 0xbc]
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xac]
shl eax, 2
push dword [eax + ecx]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [eax + ecx]
add eax, dword [ebp - 0xb4]
push eax
call fcn.0041d239
add esp, 0x10
jmp 0x41559c
push dword [eax + ecx]
call fcn.0041d160
push dword [ebp - 0x94]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x90]
push eax
call fcn.00413dc4
lea eax, [ebp - 0x90]
mov ecx, dword [ebp - 0xbc]
push eax
mov eax, dword [ebp - 0xb8]
movzx eax, byte [eax + 0x17]
push eax
mov eax, dword [ebp - 0xa8]
push dword [ebp - 0xa0]
push dword [eax + ecx*4]
push dword [ebp - 0xb0]
call fcn.0041cf09
add esp, 0x20
mov dword [ebp - 4], eax
test eax, eax
jne case.0x41404e.17
mov eax, dword [ebp - 0x7c]
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x98], eax
push dword [ecx + edx*4]
push eax
call fcn.0041d239
add esp, 0xc
mov eax, dword [ebp - 0x94]
mov cl, byte [ebp - 0xd8]
mov byte [eax + 0x1f], cl
jmp 0x4155c9
cmp byte [esi + 1], 0xf8
jne 0x4155c9
push 0x800
push dword [esi + 0x10]
push dword [ebp - 0x94]
call fcn.0041cd25
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x4155fd
mov eax, dword [ebp - 0x94]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [ebp - 0x94]
or byte [eax + 0x1d], 2
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 0x24], eax
push dword [ebp - 0x94]
call fcn.004109b8
pop ecx
mov dword [ebp - 4], eax
jmp case.0x41404e.17
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea esi, [ebx + ecx*8]
mov cl, byte [eax]
inc eax
mov byte [ebp - 0xcc], cl
test cl, cl
mov dword [ebp - 0xd0], eax
je case.0x41404e.17
test byte [esi + 0x1d], 0x40
je 0x415647
push esi
call fcn.00410a0f
pop ecx
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push esi
call fcn.0041dc78
mov eax, dword [ebp - 0xd0]
add esp, 0xc
add esi, 0x28
mov al, byte [eax]
inc dword [ebp - 0xd0]
test al, al
mov byte [ebp - 0xcc], al
jne 0x41563a
jmp case.0x41404e.17
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ecx
mov dword [ebp - 0xb0], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x9c], eax
mov ecx, dword [esi + 0x10]
lea eax, [eax + eax*4]
mov dword [ebp - 0x98], ecx
movzx ecx, byte [edi + 0x63]
lea edx, [ebx + eax*8]
mov dword [ebp - 0xa4], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x94], ecx
lea eax, [eax + eax*4]
mov ecx, edx
mov dword [ebp - 0xcc], ecx
lea eax, [edx + eax*8 - 0x28]
cmp edx, eax
mov dword [ebp - 0xa0], eax
ja 0x4157bc
jmp 0x4156f6
mov edx, dword [ebp - 0xa4]
xor ebx, ebx
cmp dword [ebp - 0x98], ebx
je 0x41572b
push dword [ebp - 0xd8]
mov eax, ecx
sub eax, edx
push 0x28
cdq
pop ebx
idiv ebx
mov edx, dword [ebp - 0x98]
mov al, byte [eax + edx]
push eax
push ecx
call fcn.0041dc78
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
xor ebx, ebx
test byte [ecx + 0x1d], 0x40
je 0x415743
cmp dword [ecx + 0x18], ebx
jle 0x415743
push ecx
call fcn.00410a0f
pop ecx
mov ecx, dword [ebp - 0xcc]
push dword [ebp - 0x94]
push ecx
call fcn.0041d099
push eax
mov dword [ebp - 0xa8], eax
call fcn.0041d160
mov dword [ebp - 0x8c], eax
push ebx
push dword [ebp - 0xa8]
cdq
add dword [ebp - 0xc8], eax
adc dword [ebp - 0xc4], edx
call fcn.00418ba1
mov ecx, dword [ebp - 0xcc]
add dword [ebp - 0xc0], eax
add esp, 0x14
test byte [ecx + 0x1d], 0x40
je 0x415799
mov eax, dword [ecx]
add dword [ebp - 0xb0], eax
jmp 0x4157a7
cmp dword [ebp - 0x8c], ebx
je 0x4157a7
mov dword [ebp - 0xb0], ebx
add ecx, 0x28
cmp ecx, dword [ebp - 0xa0]
mov dword [ebp - 0xcc], ecx
jbe 0x4156f0
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.00418ba1
add dword [ebp - 0xc0], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.00418ba1
add esp, 0x10
cmp dword [ebp - 0xac], eax
jge 0x4157f5
inc dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc0]
cdq
mov ecx, eax
mov eax, dword [ebp - 0xb0]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [ebp - 8]
sbb ebx, edx
add ecx, dword [ebp - 0xc8]
adc ebx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], ebx
mov eax, dword [eax + 0x48]
cdq
cmp ebx, edx
jg 0x418889
jl 0x41583c
cmp ecx, eax
ja 0x418889
mov esi, dword [esi + 0xc]
mov edx, dword [ebp - 0xe0]
push 0
push ecx
lea eax, [esi + esi*4]
lea esi, [edx + eax*8]
push esi
mov dword [ebp - 0x10], esi
call fcn.00410810
add esp, 0xc
test eax, eax
jne 0x41872c
mov eax, dword [esi + 0x14]
mov ebx, 0x80
cmp dword [ebp - 0xc0], ebx
mov dword [ebp - 0xd0], eax
jae 0x415885
mov cl, byte [ebp - 0xc0]
push 1
mov byte [eax], cl
pop eax
jmp 0x415893
push dword [ebp - 0xc0]
push eax
call fcn.00418aed
pop ecx
pop ecx
movzx eax, al
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
ja 0x415910
push dword [ebp - 0x94]
push dword [ebp - 0xcc]
call fcn.0041d099
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0xa8], eax
jae 0x4158e1
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0xd0]
push 1
mov byte [ecx + edx], al
pop eax
jmp 0x4158f8
mov ecx, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xd0]
add ecx, eax
push ecx
call fcn.00418aed
pop ecx
pop ecx
movzx eax, al
add dword [ebp - 0x90], eax
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x4158a8
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
ja 0x415965
push dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x90]
push dword [ebp - 0xcc]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0xd0]
add eax, ecx
push eax
call fcn.0041d177
add dword [ebp - 0x90], eax
add esp, 0x10
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x41591c
mov eax, dword [ebp - 0xb8]
and dword [esi + 0x20], 0
mov dword [esi + 0x18], eax
mov word [esi + 0x1c], 0x410
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x41598a
mov dword [esi], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov eax, dword [eax]
cmp eax, ecx
mov dword [ebp - 0xc8], eax
je 0x4159bc
lea ecx, [ebp - 0xd0]
push ecx
push eax
call fcn.0041c104
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x4159c8
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xd0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xcc]
jmp 0x4170b0
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 0x10]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
jne 0x415ab2
cmp dword [eax + 0x90], ecx
jle 0x415a0a
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x415d64
push esi
call fcn.004096bf
mov dword [ebp - 0xc8], eax
add eax, 0x19
push eax
push dword [ebp - 8]
call fcn.0040879d
add esp, 0xc
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x41404e.17
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc8]
inc eax
push eax
mov eax, dword [ebp - 0xc4]
push dword [ebp - 0xcc]
push dword [eax]
call fcn.00440750
mov eax, dword [ebp - 8]
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x415a6c
and byte [eax + 0x1c], 0
mov byte [eax + 0x1d4], 1
jmp 0x415a72
inc dword [eax + 0x1cc]
mov esi, dword [ebp - 0xc4]
mov edx, dword [eax + 0x1c8]
lea ecx, [eax + 0x1c8]
mov dword [esi + 0x10], edx
mov edx, dword [ebp - 0xc4]
mov dword [ecx], edx
mov edx, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x1d8]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [eax + 0x1dc]
mov dword [ecx + 0xc], eax
jmp case.0x41404e.17
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 0x1c8]
cmp eax, ecx
mov dword [ebp - 0xc0], eax
je 0x415b02
push dword [ebp - 0xcc]
push dword [eax]
call fcn.004096dd
pop ecx
test eax, eax
pop ecx
je 0x415af6
mov eax, dword [ebp - 0xc0]
inc dword [ebp - 0xb8]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [ebp - 0xc0], eax
jne 0x415ac8
jmp 0x415afc
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
cmp eax, ecx
jne 0x415b28
push dword [ebp - 0xcc]
lea eax, [edi + 0x5c]
push str.no_such_savepoint:__s
push dword [ebp - 8]
push eax
call fcn.00411c3d
add esp, 0x10
mov dword [ebp - 4], 1
jmp case.0x41404e.17
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x90], ecx
jg 0x415cd8
cmp dword [ebp - 0xd0], 2
jne 0x415b4d
cmp dword [ebx + 0x8c], 1
jg 0x415ce1
cmp dword [eax + 0x10], ecx
jne 0x415bad
cmp byte [ebx + 0x1d4], 0
je 0x415bad
push 1
pop edx
cmp dword [ebp - 0xd0], edx
mov dword [ebp - 0xe4], edx
jne 0x415bb3
push edx
push edi
call fcn.00411be2
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x4187ba
push edi
mov byte [ebx + 0x1c], 1
call fcn.0041104c
pop ecx
push 5
pop esi
cmp eax, esi
je 0x4187cb
and byte [ebx + 0x1d4], 0
mov eax, dword [edi + 0x58]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc0]
jmp 0x415c46
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebx + 0x1cc]
mov dword [ebp - 0xb4], ecx
sub edx, dword [ebp - 0xb8]
dec edx
mov dword [ebp - 0xb8], edx
cmp dword [ebx + 4], ecx
jle 0x415c1b
jmp 0x415bd9
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 8]
push edx
push dword [ebp - 0xd0]
mov eax, dword [eax + 8]
shl ecx, 4
push dword [ecx + eax + 4]
call fcn.004118cb
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x418755
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 8]
inc ecx
mov dword [ebp - 0xb4], ecx
cmp ecx, dword [eax + 4]
jl 0x415bd3
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0xd0], 2
jne 0x415c46
mov esi, dword [ebp - 8]
test byte [esi + 0xc], 0x10
je 0x415c49
push esi
call fcn.0041d88b
push 0
push esi
call fcn.0041f3e9
mov eax, dword [ebp - 0xc0]
add esp, 0xc
jmp 0x415c49
mov esi, dword [ebp - 8]
mov ecx, dword [esi + 0x1c8]
cmp ecx, eax
je 0x415c84
mov dword [ebp - 0xbc], ecx
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1c8], eax
push dword [ebp - 0xbc]
push esi
call fcn.004085f3
dec dword [esi + 0x1cc]
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
mov ecx, dword [esi + 0x1c8]
jmp 0x415c4f
cmp dword [ebp - 0xd0], 1
jne 0x415cbf
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c8], eax
push dword [ebp - 0xc0]
push esi
call fcn.004085f3
cmp dword [ebp - 0xe4], 0
pop ecx
pop ecx
jne case.0x41404e.17
mov eax, dword [ebp - 8]
dec dword [eax + 0x1cc]
jmp case.0x41404e.17
add eax, 8
mov ecx, dword [eax]
mov dword [esi + 0x1d8], ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x1dc], eax
jmp case.0x41404e.17
cmp dword [ebp - 0xd0], 2
jne 0x415ce8
mov eax, str.rollback
jmp 0x415ced
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
lea eax, [edi + 0x5c]
push ebx
push eax
call fcn.00411c3d
add esp, 0x10
jmp 0x415d73
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
je 0x415d3a
cmp byte [eax + 0x1c], 0
jne 0x415d3a
push 1
cmp esi, ecx
pop ebx
mov dword [ebp - 0xc8], ebx
je 0x415d57
cmp dword [eax + 0x8c], ebx
jle 0x415d40
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x415d64
mov dword [ebp - 0xc8], ecx
movzx eax, byte [eax + 0x1c]
cmp edx, eax
jne 0x4187da
cmp edx, ecx
jne 0x415d7f
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x415d8d
cmp dword [eax + 0x90], ecx
jle 0x415d40
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
add esp, 0xc
mov dword [ebp - 4], 5
jmp case.0x41404e.17
cmp esi, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x415d8d
mov eax, str.cannot_commit___no_transaction_is_active
push eax
lea eax, [edi + 0x5c]
push dword [ebp - 8]
push eax
call fcn.00411c3d
add esp, 0xc
jmp 0x415b1c
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
cmp eax, ecx
mov dword [ebp - 0xd0], eax
je case.0x41404e.17
push dword [esi + 8]
push eax
call fcn.0040dd19
pop ecx
mov dword [ebp - 4], eax
pop ecx
push 5
pop eax
cmp dword [ebp - 4], eax
je 0x418844
cmp dword [ebp - 4], 0
jne 0x418755
cmp dword [esi + 8], 0
je case.0x41404e.17
cmp byte [edi + 0x65], 0
je case.0x41404e.17
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1c], 0
je 0x415e0b
cmp dword [esi + 0x8c], 1
jle case.0x41404e.17
cmp dword [edi + 0xc8], 0
lea ecx, [edi + 0xc8]
jne 0x415e36
inc dword [esi + 0x1d0]
mov edx, dword [esi + 0x1cc]
lea eax, [esi + 0x1d0]
mov eax, dword [esi + 0x1d0]
add edx, eax
mov dword [ecx], edx
push dword [ecx]
push dword [ebp - 0xd0]
call fcn.00419022
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x1d8]
mov dword [edi + 0xc0], eax
mov eax, dword [esi + 0x1dc]
pop ecx
mov dword [edi + 0xc4], eax
pop ecx
jmp case.0x41404e.17
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
mov esi, dword [esi + 0xc]
push ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc8], esi
push esi
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0040fc7d
add esp, 0xc
jmp 0x417669
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 8]
shl eax, 4
add eax, dword [ecx + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041cc0b
push dword [ebx]
mov eax, dword [ebp - 0xd0]
push dword [esi + 8]
push dword [eax + 4]
call fcn.0040fcb2
mov dword [ebp - 4], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x415ef1
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebx]
mov eax, dword [eax + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
or dword [eax + 0xc], 0x10
jmp 0x415f04
cmp eax, 2
jne 0x415f04
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebx]
mov eax, dword [eax + 0xc]
mov byte [eax + 0x48], cl
cmp dword [esi + 4], 1
jne case.0x41404e.17
push dword [ebp - 8]
call fcn.0041d88b
and byte [edi + 0x62], 0
pop ecx
jmp case.0x41404e.17
mov edx, dword [esi + 4]
mov eax, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
cmp eax, ecx
mov dword [ebp - 0xcc], eax
je 0x415f4b
lea ecx, [ebp - 0xd0]
push ecx
push 1
push eax
call fcn.0040fc7d
add esp, 0xc
jmp 0x415f51
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xd0]
cmp eax, dword [esi + 8]
je case.0x41404e.17
push dword [edi + 0x5c]
mov ebx, dword [ebp - 8]
push ebx
call fcn.004085f3
push str.database_schema_has_changed
push ebx
call fcn.00412dd9
mov dword [edi + 0x5c], eax
mov esi, dword [esi + 4]
mov ecx, dword [ebx + 8]
mov eax, esi
shl eax, 4
add esp, 0x10
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xd0]
je 0x415f9f
push esi
push ebx
call fcn.0041f3e9
pop ecx
pop ecx
push ebx
call fcn.0041d88b
pop ecx
mov dword [ebp - 4], 0x11
jmp case.0x41404e.17
cmp byte [edi + 0x62], 0
je 0x415fc4
mov dword [ebp - 4], 4
jmp case.0x41404e.17
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov edx, dword [esi + 8]
mov dword [ebp - 0xc8], edx
mov edx, dword [esi + 0xc]
mov dword [ebp - 0xc4], edx
shl edx, 4
add edx, dword [eax + 8]
mov dword [ebp - 0xb4], edx
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
cmp byte [esi], 0x27
jne 0x416016
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x48]
cmp al, byte [edi + 0x63]
jae 0x41601c
mov byte [edi + 0x63], al
jmp 0x41601c
mov dword [ebp - 0xc0], ecx
cmp byte [esi + 3], 0
je 0x416046
mov eax, dword [ebp - 0xc8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041cc0b
mov ebx, dword [ebx]
pop ecx
cmp ebx, 2
mov dword [ebp - 0xc8], ebx
jl 0x418854
mov cl, byte [esi + 1]
mov eax, dword [ebp - 0xd0]
cmp cl, 0xfa
jne 0x416078
mov eax, dword [esi + 0x10]
mov ecx, dword [edi]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x49]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0xcc]
movzx eax, word [eax + 6]
inc eax
jmp 0x416080
cmp cl, 0xf2
jne 0x416086
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
push 1
push dword [ebp - 0xc4]
push eax
push dword [esi + 4]
push edi
call fcn.0041db9c
add esp, 0x14
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x41872c
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xb8]
push dword [eax]
push dword [ebp - 0xcc]
push dword [ebp - 0xc0]
push dword [ebp - 0xc8]
push dword [ebp - 0xbc]
call fcn.0041905e
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xcc]
add esp, 0x14
cmp eax, 0x10
mov dword [ebp - 4], eax
mov dword [ecx + 0x28], edx
jne 0x4160f9
mov eax, dword [ebp - 0xb8]
and dword [eax], 0
and dword [ebp - 4], 0
cmp byte [esi + 1], 0xfa
mov ecx, dword [ebp - 0xb8]
setne al
mov byte [ecx + 0x16], al
mov eax, dword [ebp - 0xb8]
jmp 0x416225
push 1
push 0xffffffffffffffff
push dword [esi + 8]
push dword [esi + 4]
push edi
call fcn.0041db9c
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x41872c
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xd0]
add eax, 0x20
push eax
push dword [0x44ab98]
push 0x1f4
push 1
pop ebx
push ebx
push 0
push dword [ebp - 8]
call fcn.0043e53a
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x41621f
mov eax, dword [ebp - 0xd0]
push ebx
push dword [eax + 0x20]
call fcn.0040dd19
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x41621f
cmp dword [esi + 0x10], eax
je 0x4161fb
lea eax, [ebp - 0xfc]
push 2
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x20]
call fcn.0041bbcb
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x4161ef
mov eax, dword [ebp - 0xd0]
push dword [eax]
push dword [esi + 0x10]
push ebx
push dword [ebp - 0xfc]
push dword [eax + 0x20]
call fcn.0041905e
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x10]
add esp, 0x14
mov dword [ecx + 0x28], eax
mov eax, dword [edi]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 0x28]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x16], 0
jmp 0x41621f
mov eax, dword [ebp - 0xd0]
push dword [eax]
push 0
push ebx
push ebx
push dword [eax + 0x20]
call fcn.0041905e
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
add esp, 0x14
mov byte [eax + 0x16], 1
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x16], 0
sete cl
mov byte [eax + 0x17], cl
jmp case.0x41404e.17
push 0
push 0xffffffffffffffff
push dword [esi + 0xc]
push dword [esi + 4]
push edi
call fcn.0041db9c
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x41872c
mov byte [eax + 0x14], 1
mov ecx, dword [ebp - 0xd0]
mov eax, dword [esi + 8]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x16], 1
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x17], 0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x34]
push dword [ecx + eax*4]
push edi
call fcn.00410c6f
mov eax, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x34]
and dword [ecx + eax*4], 0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc8], eax
cmp dword [eax], ecx
je 0x417d0e
movzx ecx, byte [esi]
mov dword [ebp - 0xcc], ecx
and byte [eax + 0x14], 0
mov ecx, dword [ebp - 0xc8]
cmp byte [ecx + 0x16], 0
je 0x41647f
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.00413e7d
push ebx
call fcn.0041286e
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x9c], edx
pop ecx
and byte [eax + 0x11], 0
mov ax, word [ebx + 0x1c]
test al, 4
pop ecx
jne 0x416414
test al, 8
je 0x417d0e
cmp dword [ebp - 0xa0], 0
jne 0x4163c8
mov eax, 0x80000000
cmp dword [ebp - 0x9c], eax
jne 0x4163c8
and dword [ebp - 0x114], 0
mov dword [ebp - 0x110], eax
fild qword [ebp - 0x114]
fcomp qword [ebx + 8]
fnstsw ax
sahf
ja 0x41635a
fld qword [ebx + 8]
fcomp qword [0x44d810]
fnstsw ax
sahf
jbe 0x4163c8
mov dword [ebp - 0xd0], 1
fld qword [ebx + 8]
fcomp qword [0x44d810]
fnstsw ax
sahf
jae 0x416395
cmp dword [ebp - 0xcc], 0x2d
jl 0x417d0e
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004192cb
jmp 0x4163b6
cmp dword [ebp - 0xcc], 0x2c
jg 0x417d0e
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004194e2
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x418755
jmp 0x4150a9
cmp dword [ebp - 0xcc], 0x2b
je 0x4163f8
cmp dword [ebp - 0xcc], 0x2d
je 0x4163f8
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jbe 0x416414
add dword [ebp - 0xa0], 0xffffffff
adc dword [ebp - 0x9c], 0xffffffff
jmp 0x416414
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jae 0x416414
add dword [ebp - 0xa0], 1
adc dword [ebp - 0x9c], 0
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push 0
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
push 0
push dword [eax]
call fcn.00419590
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x418755
cmp dword [ebp - 0xd0], eax
jne 0x416507
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x11], 1
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xa0]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x9c]
mov dword [ecx + 0xc], eax
jmp 0x416507
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx + 0x28]
mov dword [ebp - 0xc0], eax
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov al, byte [ebp - 0xcc]
dec al
and eax, 1
shl eax, 3
mov word [ebp - 0xba], ax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb0], eax
test byte [eax + 0x1d], 0x40
je 0x4164d6
push eax
call fcn.00410a0f
pop ecx
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0xd0]
xor ebx, ebx
push eax
push ebx
push ebx
lea eax, [ebp - 0xc0]
push ebx
push eax
push dword [ecx]
call fcn.00419590
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x11], bl
mov eax, dword [ebp - 0xc8]
xor ebx, ebx
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x44], ebx
cmp dword [ebp - 0xcc], 0x2d
jl 0x416559
cmp dword [ebp - 0xd0], ebx
jl 0x416543
jne 0x416538
cmp dword [ebp - 0xcc], 0x2e
je 0x416543
mov dword [ebp - 0xd0], ebx
jmp case.0x41404e.17
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00419872
jmp 0x416593
cmp dword [ebp - 0xd0], ebx
jg 0x41657f
jne 0x41656c
cmp dword [ebp - 0xcc], 0x2b
je 0x41657f
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00419864
pop ecx
jmp 0x4150a3
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004199ad
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x11], 0
jmp 0x4150a9
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
cmp dword [eax], ecx
je case.0x41404e.17
and byte [eax + 0x14], 0
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0041286e
pop ecx
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x15], 1
jmp case.0x41404e.17
mov edx, dword [edi + 0x34]
mov dword [ebp - 0xd0], ecx
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov edx, dword [esi + 0xc]
cmp dword [eax], ecx
lea edx, [edx + edx*4]
lea ebx, [ebx + edx*8]
je 0x416709
cmp dword [esi + 0x10], ecx
jle 0x416661
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0xc0], ecx
mov cx, word [esi + 0x10]
mov word [ebp - 0xbc], cx
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xb0], ebx
mov word [ebp - 0xba], 0x10
mov dword [ebp - 0xc4], ecx
jmp 0x4166a9
test byte [ebx + 0x1d], 0x40
je 0x416674
push ebx
call fcn.00410a0f
mov eax, dword [ebp - 0xcc]
pop ecx
lea ecx, [ebp - 0xa8]
push 0x97
push ecx
push dword [ebx + 0x14]
push dword [ebx + 0x18]
push dword [eax + 0x28]
call fcn.0041d429
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x41872c
or byte [eax + 6], 0x10
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0xc8]
xor ebx, ebx
push ecx
push ebx
push ebx
push ebx
push dword [ebp - 0xc4]
push dword [eax]
call fcn.00419590
add esp, 0x18
cmp dword [esi + 0x10], ebx
mov dword [ebp - 4], eax
jne 0x4166d9
push dword [ebp - 0xc4]
call fcn.0041d54f
pop ecx
cmp dword [ebp - 4], ebx
jne case.0x41404e.17
xor eax, eax
cmp dword [ebp - 0xc8], eax
sete al
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xcc]
and dword [eax + 0x44], 0
xor ecx, ecx
cmp byte [esi], 0x31
jne 0x41671f
cmp dword [ebp - 0xd0], ecx
je case.0x41404e.17
jmp 0x417d0e
cmp dword [ebp - 0xd0], ecx
jmp 0x417d08
mov eax, dword [esi + 0xc]
mov edx, dword [edi + 0x34]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xdc], eax
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov dword [eax + 0x40], ecx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x44], ecx
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xc0]
mov edx, dword [eax]
mov dword [ebp - 0xc8], edx
mov edx, dword [eax + 0x28]
mov dx, word [edx + 6]
mov word [ebp - 0xd0], cx
cmp dx, cx
mov word [ebp - 0xc4], dx
jbe 0x4167c8
movzx edx, word [ebp - 0xd0]
lea edx, [edx + edx*4]
test byte [ebx + edx*8 + 0x1c], 1
jne 0x4167bb
mov dx, word [ebp - 0xc4]
inc word [ebp - 0xd0]
cmp word [ebp - 0xd0], dx
jb 0x416791
jmp 0x4167c8
mov edx, dword [esi + 8]
mov dword [ebp - 0xc8], ecx
dec edx
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc8], ecx
je case.0x41404e.17
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xa8], ebx
mov ebx, dword [ebp - 0xdc]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xc4]
push ebx
inc eax
mov word [ebp - 0xb2], 0x20
mov word [ebp - 0xb4], ax
call fcn.0041cc0b
mov eax, dword [ebx]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xcc]
add eax, 0x40
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc8]
call fcn.00419590
add esp, 0x1c
mov dword [ebp - 4], eax
test byte [ebp - 0xb2], 0x20
jne 0x417d0e
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp - 0xa0]
jne 0x41686b
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebp - 0x9c]
je 0x417d0e
mov dword [ebx], eax
mov eax, dword [ebp - 0xac]
mov dword [ebx + 4], eax
jmp case.0x41404e.17
mov eax, dword [esi + 0xc]
mov edx, dword [edi + 0x34]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je 0x416940
and dword [ebp - 0xc8], 0
mov eax, dword [ebx]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebx + 4]
mov dword [ebp - 0xbc], ecx
lea ecx, [ebp - 0xc8]
push ecx
push 0
push dword [ebp - 0xbc]
push eax
push 0
push edx
call fcn.00419590
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 4], eax
mov eax, dword [ebx]
add esp, 0x18
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
cmp dword [ebp - 0xc8], 0
mov ecx, dword [ebp - 0xd0]
sete al
mov byte [ecx + 0x11], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x14], 0
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x44], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xc8]
test eax, eax
je 0x416932
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x40], eax
jmp case.0x41404e.17
mov esi, dword [esi + 8]
mov dword [eax + 0x40], ecx
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
mov ebx, dword [edx + 0x30]
mov dword [eax], ebx
mov edx, dword [edx + 0x34]
mov dword [eax + 4], edx
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], ecx
jmp case.0x41404e.17
mov edx, dword [edi + 0x34]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc8], eax
cmp dword [eax], ecx
je 0x4159c8
mov dword [ebp - 0xc0], ecx
cmp byte [eax + 0x13], 0
jne 0x416b4c
push dword [eax]
call fcn.0041912a
mov dword [ebp - 0xd0], eax
or eax, edx
pop ecx
mov dword [ebp - 0xcc], edx
jne 0x416a53
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004194e2
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x418755
cmp dword [ebp - 0xc4], eax
je 0x416a0b
and dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], 1
jmp 0x416a53
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00410197
cmp dword [ebp - 0xd0], 0xffffffff
pop ecx
pop ecx
mov dword [ebp - 4], eax
jne 0x416a45
cmp dword [ebp - 0xcc], 0x7fffffff
jne 0x416a45
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x13], 1
jmp 0x416a53
add dword [ebp - 0xd0], 1
adc dword [ebp - 0xcc], 0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x416b03
mov eax, dword [edi + 0xcc]
test eax, eax
je 0x416a87
mov dword [ebp - 0xb8], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x416a79
mov eax, ecx
jmp 0x416a68
mov esi, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*8]
jmp 0x416a8d
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xbc], eax
call fcn.0041cc0b
mov edx, dword [ebp - 0xbc]
pop ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x416ab6
cmp ecx, 0x7fffffff
je 0x418860
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 0x13], 0
jne 0x418860
mov esi, dword [ebp - 0xcc]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x416aec
jl 0x416ae0
cmp dword [ebp - 0xd0], eax
jae 0x416aec
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0xd0]
mov dword [edx], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0xcc]
cmp ecx, 0x7fffffff
jg 0x416b26
mov eax, dword [ebp - 0xd0]
jl 0x416b1e
cmp eax, 0xffffffff
jae 0x416b26
add eax, 1
adc ecx, 0
jmp 0x416b2a
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00419103
mov eax, dword [ebp - 0xc8]
add esp, 0xc
cmp byte [eax + 0x13], 0
je 0x416c2a
mov ecx, dword [ebp - 8]
mov ebx, 0xffffff
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ecx + 0x34]
and dword [ebp - 0xc0], 0
mov dword [ebp - 0xcc], ecx
xor esi, esi
jmp 0x416b77
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0xc0], esi
jne 0x416ba8
mov ecx, dword [ebp - 0xd0]
xor edx, edx
and ecx, ebx
cmp ecx, dword [ebp - 0xd0]
jne 0x416ba8
cmp edx, dword [ebp - 0xcc]
jne 0x416ba8
add dword [ebp - 0xd0], 1
adc dword [ebp - 0xcc], esi
jmp 0x416bd3
lea eax, [ebp - 0xd0]
push eax
push 8
call fcn.00409565
cmp dword [ebp - 0xc0], 5
pop ecx
pop ecx
jge 0x416bcd
and dword [ebp - 0xd0], ebx
and dword [ebp - 0xcc], esi
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0xc4]
push ecx
push esi
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push esi
push dword [eax]
call fcn.00419590
add esp, 0x18
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0x64
mov dword [ebp - 4], eax
jge 0x416c14
cmp eax, esi
jne 0x416c24
cmp dword [ebp - 0xc4], esi
je 0x416b71
cmp eax, esi
jne 0x416c24
cmp dword [ebp - 0xc4], esi
je 0x418860
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x11], 0
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xc8]
and dword [eax + 0x44], 0
jmp 0x4159c8
mov eax, dword [esi + 8]
mov edx, dword [edi + 0x34]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd0], eax
mov eax, dword [esi + 4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc0], eax
cmp byte [esi], 0x36
mov eax, dword [esi + 0xc]
jne 0x416c86
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xcc], ebx
mov eax, dword [ebx]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebx + 4]
jmp 0x416c8d
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
test byte [esi + 3], 1
je 0x416c9c
inc dword [edi + 0x68]
test byte [esi + 3], 2
je 0x416cb1
mov edx, dword [ebp - 8]
mov dword [edx + 0x30], eax
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x1c], 1
je 0x416ccf
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0xd0]
test byte [esi + 3], 0x10
je 0x416ce6
mov edx, dword [ebp - 0xc0]
mov edx, dword [edx + 0x40]
mov dword [ebp - 0xb8], edx
jmp 0x416cec
mov dword [ebp - 0xb8], ecx
test byte [eax + 0x1d], 0x40
je 0x416cfc
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
jmp 0x416d02
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0xc0]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00419103
mov al, byte [esi + 3]
push dword [ebp - 0xb8]
and eax, 8
push eax
mov eax, dword [ebp - 0xd0]
push dword [ebp - 0xbc]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push ebx
push dword [eax]
call fcn.00419ac0
mov ecx, dword [ebp - 0xc0]
add esp, 0x30
mov dword [ebp - 4], eax
and byte [ecx + 0x11], bl
mov ecx, dword [ebp - 0xc0]
and byte [ecx + 0x15], bl
mov ecx, dword [ebp - 0xc0]
cmp eax, ebx
mov dword [ecx + 0x44], ebx
jne case.0x41404e.17
mov eax, dword [ebp - 8]
cmp dword [eax + 0xb8], ebx
je case.0x41404e.17
cmp dword [esi + 0x10], ebx
je case.0x41404e.17
mov eax, dword [ebp - 0xc0]
push dword [ebp - 0xc4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 8]
shl ecx, 4
mov edx, dword [eax + 8]
push dword [ebp - 0xc8]
mov ecx, dword [ecx + edx]
mov dword [ebp - 0xb4], ecx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xb0], edx
mov bl, byte [esi + 3]
and bl, 4
push edx
neg bl
sbb ebx, ebx
push ecx
and ebx, 5
add ebx, 0x12
push ebx
mov dword [ebp - 0xac], ebx
push dword [eax + 0xb4]
call dword [eax + 0xb8]
jmp 0x418637
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], ecx
mov edx, dword [esi + 4]
mov edx, dword [ebx + edx*4]
mov dword [ebp - 0xc8], edx
cmp dword [eax + 0xb8], ecx
je 0x416e21
cmp dword [esi + 0x10], ecx
je 0x416e21
mov eax, dword [edx + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcc], eax
push edx
call fcn.0041cfce
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xc8]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00419103
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0041b9c1
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 4], eax
mov dword [ecx + 0x44], ebx
jne 0x416ea4
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xb8]
cmp edx, ebx
je 0x416ea4
mov ecx, dword [esi + 0x10]
cmp ecx, ebx
je 0x416ea4
push dword [ebp - 0xcc]
mov ebx, dword [eax + 8]
push dword [ebp - 0xd0]
push ecx
mov ecx, dword [ebp - 0xc8]
mov ecx, dword [ecx + 4]
shl ecx, 4
push dword [ecx + ebx]
push 9
push dword [eax + 0xb4]
call edx
add esp, 0x18
test byte [esi + 8], 1
je case.0x41404e.17
jmp 0x418591
push dword [edi + 0x68]
push dword [ebp - 8]
call fcn.00411eb5
and dword [edi + 0x68], 0
pop ecx
pop ecx
jmp case.0x41404e.17
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x34]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 4]
mov dword [ebp - 0x10], ebx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xd0], eax
push eax
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
call fcn.0041cfce
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x17], 0
je 0x416f4b
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xcc]
call fcn.00410197
mov eax, dword [ebp - 8]
pop ecx
pop ecx
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0xbc]
cdq
cmp ecx, edx
mov ecx, dword [ebp - 0xc0]
jg 0x418889
jl 0x416f43
cmp ecx, eax
ja 0x418889
mov dword [ebp - 0xc8], ecx
jmp 0x416f71
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xcc]
call fcn.00419135
mov eax, dword [ebp - 8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [eax + 0x48]
ja 0x418889
push 0
push dword [ebp - 0xc8]
push ebx
call fcn.00410810
add esp, 0xc
test eax, eax
jne 0x41872c
mov eax, dword [ebp - 0xc8]
push dword [ebx + 0x14]
mov dword [ebx + 0x18], eax
mov ax, word [ebx + 0x1c]
and ax, 0xbf10
or al, 0x10
mov word [ebx + 0x1c], ax
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
push 0
cmp byte [eax + 0x17], 0
push dword [ebp - 0xcc]
je 0x416fc5
call fcn.0041022e
jmp 0x416fca
call fcn.0041914e
add esp, 0x10
mov dword [ebp - 4], eax
mov byte [ebx + 0x1f], 1
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
cmp byte [eax + 0x14], 0
je 0x416ffc
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
jmp case.0x41404e.17
cmp byte [eax + 0x15], 0
je 0x417019
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xc4], eax
jmp 0x41709f
mov edx, dword [eax + 0x38]
cmp edx, ecx
je 0x417060
mov ecx, dword [edx]
lea edx, [ebp - 0xc8]
mov dword [ebp - 0xc0], ecx
push edx
mov ecx, dword [ecx]
mov dword [ebp - 0xbc], ecx
push dword [eax + 0x38]
call dword [ecx + 0x30]
push dword [edi + 0x5c]
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xc0]
add esp, 0x10
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
and dword [eax + 8], 0
jmp 0x41709f
push eax
call fcn.0041cfce
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x11], 0
je 0x41708c
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0xc]
jmp 0x41700e
lea ecx, [ebp - 0xc8]
push ecx
push dword [eax]
call fcn.00410197
pop ecx
mov dword [ebp - 4], eax
pop ecx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 4], ecx
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax]
cmp eax, ecx
je case.0x41404e.17
push eax
call fcn.0041017f
jmp 0x417ff4
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
jne 0x417117
mov dword [ebp - 0xc8], 1
jmp 0x417131
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.004194e2
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
pop ecx
xor ecx, ecx
mov dl, byte [ebp - 0xc8]
mov byte [eax + 0x14], dl
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x44], ecx
mov esi, dword [esi + 8]
cmp esi, ecx
jle case.0x41404e.17
cmp dword [ebp - 0xc8], ecx
je case.0x41404e.17
jmp 0x417d11
inc dword [edi + 0xac]
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je 0x4171df
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.004192cb
cmp dword [ebp - 0xc8], 0
pop ecx
pop ecx
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xd0]
sete al
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x15], 0
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x44], 0
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x11], 0
mov eax, dword [ebp - 0xd0]
jmp 0x4171e9
mov dword [ebp - 0xc8], 1
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x14], cl
cmp dword [ebp - 0xc8], 0
jmp 0x416714
cmp dword [eax + 0xd8], ecx
jne 0x41886c
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
test eax, eax
mov dword [ebp - 0xd0], eax
je case.0x41404e.17
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xcc], ecx
jne 0x417236
mov byte [eax + 0x14], 1
jmp case.0x41404e.17
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], 1
cmp byte [esi], 0x42
push eax
push ecx
jne 0x417254
call fcn.00419872
jmp 0x417259
call fcn.004199ad
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
pop ecx
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x14], cl
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x44], 0
cmp dword [ebp - 0xc8], 0
jne 0x41729f
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xc], eax
mov al, byte [esi + 3]
test al, al
je 0x41729f
movzx eax, al
inc dword [edi + eax*4 + 0xa4]
lea eax, [edi + eax*4 + 0xa4]
mov eax, dword [ebp - 0xd0]
and byte [eax + 0x11], 0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xd0], edx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edx]
cmp eax, ecx
mov dword [ebp - 0xcc], eax
je case.0x41404e.17
test byte [ebx + 0x1d], 0x40
je 0x4172ee
push ebx
call fcn.00410a0f
mov edx, dword [ebp - 0xd0]
pop ecx
mov dword [ebp - 4], eax
jmp 0x4172f1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne case.0x41404e.17
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0xc8], eax
mov ebx, dword [ebx + 0x14]
mov dword [ebp - 0xc4], ebx
test byte [esi + 3], 0x10
je 0x417318
mov edx, dword [edx + 0x40]
jmp 0x41731a
xor edx, edx
push edx
push dword [esi + 0xc]
cdq
push 0
push 0
push 0x454f50
push edx
push eax
push ebx
push dword [ebp - 0xcc]
call fcn.00419ac0
add esp, 0x24
jmp 0x4173be
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
cmp edx, ecx
mov dword [ebp - 0xcc], edx
je case.0x41404e.17
mov eax, dword [eax + 0x28]
mov dword [ebp - 0xc0], eax
mov ax, word [esi + 0xc]
mov word [ebp - 0xbc], ax
xor eax, eax
mov word [ebp - 0xba], ax
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xb0], ecx
lea ecx, [ebp - 0xc8]
push ecx
push eax
push eax
push eax
lea eax, [ebp - 0xc0]
push eax
push edx
call fcn.00419590
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x4173c1
cmp dword [ebp - 0xc8], eax
jne 0x4173c1
push dword [ebp - 0xcc]
call fcn.0041b9c1
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x44], 0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xcc], eax
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0xd0], ecx
je case.0x41404e.17
push dword [ebp - 0xcc]
call fcn.0041cfce
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x418755
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x14], 0
jne case.0x41404e.17
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xd0]
push dword [ebp - 8]
call fcn.0041d70f
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x418755
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 4], ecx
mov word [eax + 0x1c], 4
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0xd0], edx
cmp dword [edx], ecx
je case.0x41404e.17
mov eax, dword [edx + 0x28]
mov dword [ebp - 0xc8], eax
mov ax, word [esi + 0x10]
mov word [ebp - 0xc4], ax
mov al, byte [esi + 3]
neg al
sbb eax, eax
and eax, 8
add eax, 4
mov word [ebp - 0xc2], ax
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.0041d7fc
add esp, 0xc
cmp byte [esi], 0x48
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xcc]
jne 0x4174dc
neg eax
jmp 0x4174dd
inc eax
test eax, eax
mov dword [ebp - 0xcc], eax
jle case.0x41404e.17
jmp 0x417d0e
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x88]
cmp eax, ecx
mov dword [ebp - 0xc8], eax
je 0x417525
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x417520
cmp byte [eax + 0x64], 2
jae 0x417520
cmp dword [eax + 0x54], ecx
jl 0x417520
inc dword [ebp - 0xcc]
mov eax, dword [eax + 8]
jmp 0x4174fc
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0xcc], 1
jle 0x417547
mov dword [ebp - 4], 6
mov byte [edi + 0x38], 2
jmp case.0x41404e.17
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0xd0]
push ecx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0xc4], eax
push dword [esi + 4]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041bf38
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
add esp, 0xc
cmp dword [ebp - 4], 0
mov word [ecx + 0x1c], 4
mov eax, dword [ebp - 0xd0]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne case.0x41404e.17
cmp dword [ebp - 0xd0], 0
je case.0x41404e.17
mov eax, dword [ebp - 0xc4]
push dword [esi + 4]
mov ecx, dword [ebp - 8]
push dword [ebp - 0xd0]
shl eax, 4
add eax, dword [ecx + 8]
push eax
call fcn.0041f78d
add esp, 0xc
mov byte [ebp + 0xb], 1
jmp case.0x41404e.17
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xd0]
and eax, ecx
mov ecx, dword [ebp - 8]
push eax
mov eax, dword [esi + 8]
push dword [esi + 4]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041bdb9
add esp, 0xc
cmp dword [esi + 0xc], 0
mov dword [ebp - 4], eax
je case.0x41404e.17
mov eax, dword [ebp - 0xd0]
add dword [edi + 0x68], eax
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x41404e.17
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
jmp 0x417ce6
and dword [ebp - 0xd0], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 8]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [ebp - 0xc8], eax
cmp byte [esi], 0x61
setne cl
dec ecx
and ecx, 3
inc ecx
inc ecx
mov dword [ebp - 0xcc], ecx
push ecx
lea ecx, [ebp - 0xd0]
push ecx
push dword [eax + 4]
call fcn.0041bbcb
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
jmp 0x41413b
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 4]
push ebx
mov dword [ebp - 0xd0], eax
call fcn.00418f1a
cmp dword [esi + 8], 0
mov eax, dword [ebp - 0xd0]
pop ecx
jne 0x4176ae
mov edx, dword [ebx + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
mov cl, byte [ecx + 0x4a]
and cl, 1
cmp cl, 1
jne 0x41775c
cmp eax, 1
mov dword [ebp - 0xcc], str.sqlite_temp_master
je 0x4176c7
mov dword [ebp - 0xcc], str.sqlite_master
mov dword [ebp - 0xc4], ebx
mov ecx, dword [esi + 4]
mov dword [ebp - 0xc0], ecx
lea ecx, [edi + 0x5c]
mov dword [ebp - 0xbc], ecx
push dword [esi + 0x10]
mov ecx, dword [ebx + 8]
push dword [ebp - 0xcc]
shl eax, 4
push dword [eax + ecx]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ebx
call fcn.00411741
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x417712
mov dword [ebp - 4], 7
jmp 0x41775c
lea eax, [ebp - 0xc4]
push 0
push eax
push fcn.0042152c
mov byte [ebx + 0x7c], 1
push dword [ebp - 0xc8]
and dword [ebp - 0xb8], 0
push ebx
call fcn.0042104c
add esp, 0x14
mov dword [ebp - 4], eax
test eax, eax
jne 0x41774a
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 4], eax
push dword [ebp - 0xc8]
push ebx
call fcn.004085f3
and byte [ebx + 0x7c], 0
pop ecx
pop ecx
push ebx
call fcn.00418fa7
cmp dword [ebp - 4], 7
pop ecx
je 0x41872c
jmp case.0x41404e.17
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041e934
pop ecx
jmp 0x415608
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041f50a
jmp 0x41798b
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041f0d4
jmp 0x41798b
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00422811
jmp 0x41798b
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], eax
lea eax, [eax*4 + 4]
push eax
push dword [ebp - 8]
call fcn.0040879d
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
pop ecx
je 0x41872c
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
cmp dword [ebp - 0xd0], eax
mov dword [ebp - 0xc8], eax
jle 0x41783e
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.0041286e
mov edx, dword [ebp - 0xcc]
pop ecx
mov ecx, dword [ebp - 0xc8]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xc8]
inc eax
cmp eax, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
jl 0x41780d
mov ecx, dword [ebp - 0xcc]
and dword [ecx + eax*4], 0
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
movzx eax, byte [esi + 3]
push dword [ebp - 0xd0]
mov esi, dword [ebp - 8]
shl eax, 4
push dword [ebp - 0xcc]
mov ecx, dword [esi + 8]
push dword [eax + ecx + 4]
call fcn.0041c1f3
push dword [ebp - 0xcc]
mov dword [ebp - 0xc0], eax
push esi
call fcn.004085f3
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xbc]
cdq
sub dword [ecx], eax
mov eax, dword [ebp - 0xbc]
push ebx
sbb dword [eax + 4], edx
call fcn.00410b77
add esp, 0x20
cmp dword [ebp - 0xc4], 0
je 0x4178da
cmp dword [ebp - 0xc0], 0
je 0x41872c
push fcn.004085a5
push 1
push 0xffffffffffffffff
push dword [ebp - 0xc0]
push ebx
call fcn.00410638
add esp, 0x14
movzx eax, byte [ebp - 0xd8]
push eax
push ebx
call fcn.00412333
pop ecx
jmp 0x417ff4
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 0x20
lea eax, [ebx + eax*8]
lea ebx, [ebx + ecx*8]
mov dword [ebp - 0xd4], eax
jne 0x417920
mov esi, eax
push esi
call fcn.0041cc7f
test byte [esi + 0x1c], 0x20
pop ecx
je 0x41872c
push dword [ebx + 4]
mov eax, dword [ebp - 0xd4]
push dword [ebx]
push dword [eax]
call fcn.00418bca
jmp 0x41798b
cmp dword [eax + 0xd8], ecx
jne 0x41886c
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 0x20
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd4], eax
je 0x417993
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax]
call fcn.00418c44
pop ecx
test eax, eax
pop ecx
je 0x417993
mov esi, dword [esi + 0xc]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
lea eax, [esi + esi*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00412b4c
add esp, 0xc
jmp case.0x41404e.17
push dword [ebp - 0xd4]
call fcn.00410b77
pop ecx
jmp 0x417d0e
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd4], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
test byte [ecx + 0x1c], 0x20
jne 0x4179e8
push ecx
call fcn.0041cc7f
mov eax, dword [ebp - 0xd4]
pop ecx
test byte [eax + 0x1c], 0x20
je 0x41872c
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x417920
jl 0x4179f7
and eax, 0xf
jmp 0x4179fc
mov eax, 0xff
push dword [ebx + 4]
push dword [ebx]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax]
call fcn.00418e0c
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x417d0e
mov eax, dword [ebp - 0xd0]
test eax, eax
jl case.0x41404e.17
jmp 0x417920
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xb8], edx
mov edx, dword [esi + 0xc]
lea edx, [edx + edx*4]
lea edx, [ebx + edx*8]
mov dword [ebp - 0xc8], edx
cmp byte [esi + 3], 0
mov esi, dword [ebp - 0xb8]
je 0x417a8a
mov edx, dword [edi + 0xcc]
mov ebx, dword [esi + 0x14]
cmp edx, ecx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xbc], edx
je 0x417a8a
cmp dword [edx + 0x20], ebx
je 0x417a82
mov edx, dword [edx + 0x3c]
cmp edx, ecx
mov dword [ebp - 0xbc], edx
jne 0x417a70
cmp edx, ecx
jne case.0x41404e.17
mov ecx, dword [edi + 0xd0]
cmp ecx, dword [eax + 0x70]
jl 0x417ab2
push str.too_many_levels_of_trigger_recursion
lea eax, [edi + 0x5c]
push dword [ebp - 8]
mov dword [ebp - 4], 1
push eax
call fcn.00411c3d
jmp 0x41798b
mov eax, dword [ebp - 0xc8]
test byte [eax + 0x1c], 0x40
jne 0x417c08
mov eax, dword [esi + 8]
add eax, dword [esi + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
lea eax, [eax*4 + 0x40]
push eax
mov dword [ebp - 0xcc], eax
push dword [ebp - 8]
call fcn.0040b2c1
pop ecx
mov dword [ebp - 0xbc], eax
test eax, eax
pop ecx
je 0x41872c
push dword [ebp - 0xc8]
call fcn.00410a5d
mov eax, dword [ebp - 0xc8]
pop ecx
mov word [eax + 0x1c], 0x40
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xbc]
mov dword [ecx], eax
mov eax, dword [ebp - 0xbc]
mov dword [eax], edi
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x4c]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x48]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x34]
mov dword [ecx + 0x18], eax
mov ecx, dword [ebp - 0xbc]
mov ax, word [edi + 0x32]
mov word [ecx + 0x1c], ax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x14]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0x14]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x24]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8 + 0x40]
lea ecx, [eax + 0x40]
cmp ecx, edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc4], ecx
je 0x417c10
mov word [ecx + 0x1c], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xc4]
add ecx, 0x28
cmp ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], ecx
jne 0x417bd7
mov eax, dword [ebp - 0xbc]
jmp 0x417c10
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
mov ecx, dword [edi + 0xcc]
inc dword [edi + 0xd0]
mov dword [eax + 0x3c], ecx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x30], ecx
mov ecx, dword [ebp - 0xbc]
mov eax, dword [eax + 0x34]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [edi + 0x68]
mov dword [ecx + 0x38], eax
mov eax, dword [ebp - 0xbc]
and dword [edi + 0x68], 0
mov dword [edi + 0xcc], eax
lea ecx, [eax + 0x18]
mov dword [edi + 0x4c], ecx
mov edx, dword [eax + 0x24]
mov dword [edi + 0x48], edx
mov ax, word [eax + 0x28]
mov word [edi + 0x32], ax
mov eax, edx
inc eax
or dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0xe0], ecx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [edi + 0x34], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
mov dword [edi + 0x14], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0xf8], ecx
mov dword [edi + 0xc], eax
jmp case.0x41404e.17
mov ecx, dword [edi + 0xcc]
push 0x1000
mov dword [ebp - 0xd0], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 4]
add eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xcc], eax
push dword [ebp - 0x10]
jmp 0x4143c6
cmp dword [esi + 4], ecx
je 0x417cf1
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x1d8]
mov eax, dword [esi + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x41404e.17
lea ecx, [edi + 0xb8]
jmp 0x417ce3
cmp dword [esi + 4], ecx
je 0x417d1a
add eax, 0x1d8
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x41404e.17
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x41404e.17
lea eax, [edi + 0xb8]
jmp 0x417d03
mov eax, dword [edi + 0xcc]
cmp eax, ecx
je 0x417d4b
mov dword [ebp - 0xcc], eax
mov edx, dword [eax + 0x3c]
cmp edx, ecx
je 0x417d3d
mov eax, edx
jmp 0x417d2c
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x417d54
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xd0], eax
call fcn.0041cc0b
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
push esi
call fcn.0041cc0b
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [eax + 4]
cmp edx, esi
jg case.0x41404e.17
jl 0x417d93
mov edx, dword [eax]
cmp edx, ecx
jae case.0x41404e.17
mov dword [eax], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 4], esi
jmp case.0x41404e.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], ecx
lea ebx, [ebx + eax*8]
jl case.0x41404e.17
jg 0x417d0e
cmp dword [ebx], ecx
jbe case.0x41404e.17
jmp 0x417d0e
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], ecx
lea ebx, [ebx + eax*8]
jg case.0x41404e.17
jl 0x417d0e
cmp dword [ebx], ecx
jae case.0x41404e.17
jmp 0x417d0e
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [esi + 0xc]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x417d08
movzx edx, byte [esi + 3]
mov dword [ebp - 0xd0], edx
mov eax, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xcc], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov eax, dword [edi + 0x24]
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0x80], eax
jle 0x417e6f
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xcc]
mov dword [eax + ecx*4], ebx
push dword [ebp - 0xc4]
call fcn.00413e48
inc dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xcc]
add ebx, 0x28
cmp eax, dword [ebp - 0xd0]
pop ecx
mov dword [ebp - 0xc4], ebx
jl 0x417e34
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0xc]
xor ebx, ebx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x90], eax
inc dword [eax + 0x18]
mov eax, dword [ebp - 8]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xc0]
mov word [ebp - 0x9c], 1
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
test byte [eax + 3], 8
je 0x417edd
mov ecx, dword [esi - 4]
mov dword [ebp - 0x88], ecx
push dword [ebp - 0x80]
lea ecx, [ebp - 0xc0]
push dword [ebp - 0xd0]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0x8c], ebx
je 0x417f25
lea eax, [ebp - 0xb8]
push eax
call fcn.00412a0c
push eax
push 0x451314
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
mov eax, dword [ebp - 0x8c]
add esp, 0x14
mov dword [ebp - 4], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00410a5d
jmp 0x417ff4
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xd0], eax
push dword [esi + 0x10]
push eax
call fcn.00410b18
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x417f77
push dword [ebp - 0xd0]
call fcn.00412a0c
push eax
push 0x451314
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
add esp, 0x14
movzx eax, byte [ebp - 0xd8]
push eax
push dword [ebp - 0xd0]
call fcn.00412333
push dword [ebp - 0xd0]
call fcn.0041ccfd
add esp, 0xc
jmp 0x4183c6
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.0042289e
jmp 0x41777d
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
shl eax, 4
mov ecx, dword [ecx + 8]
mov eax, dword [eax + ecx + 4]
push eax
mov dword [ebp - 0xd0], eax
call fcn.00418fe1
cmp eax, 0x65
pop ecx
mov dword [ebp - 4], eax
jne case.0x41404e.17
mov esi, dword [esi + 8]
dec esi
and dword [ebp - 4], 0
mov dword [ebp - 0xc], esi
jmp case.0x41404e.17
cmp dword [esi + 4], ecx
jne 0x417ffa
push dword [ebp - 8]
call fcn.0041d88b
pop ecx
jmp case.0x41404e.17
mov byte [edi + 0x62], 1
jmp case.0x41404e.17
mov cl, byte [esi + 0xc]
test cl, cl
mov byte [ebp - 0x104], cl
jne 0x41801a
test byte [eax + 0xd], 0x40
jne case.0x41404e.17
push dword [ebp - 0x104]
mov ecx, dword [ebp - 8]
mov eax, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx + 8]
shl eax, 4
push dword [eax + ecx + 4]
call fcn.0041cb07
add esp, 0xc
cmp al, 6
mov dword [ebp - 4], eax
jne case.0x41404e.17
push dword [esi + 0x10]
lea eax, [edi + 0x5c]
push str.database_table_is_locked:__s
push dword [ebp - 8]
push eax
call fcn.00411c3d
add esp, 0x10
jmp case.0x41404e.17
mov esi, dword [esi + 0x10]
push esi
mov dword [ebp - 0xd0], esi
push dword [ebp - 8]
call fcn.0042355c
cmp dword [ebp - 0xd0], 0
pop ecx
pop ecx
mov dword [ebp - 4], eax
je case.0x41404e.17
push dword [edi + 0x5c]
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xd0]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dword [edi + 0x5c], ecx
mov eax, dword [eax + 8]
jmp 0x41849f
lea eax, [edi + 0x5c]
push eax
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00422f6f
add esp, 0x10
jmp 0x415609
mov byte [edi + 0x64], 2
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.004233fa
add esp, 0xc
and byte [edi + 0x64], 0
mov dword [ebp - 4], eax
jmp case.0x41404e.17
xor ebx, ebx
lea edx, [ebp - 0xcc]
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], ebx
mov eax, dword [esi + 0x10]
push edx
mov eax, dword [eax + 8]
mov dword [ebp - 0xc8], eax
push eax
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
call dword [ecx + 0x18]
push dword [edi + 0x5c]
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xc8]
add esp, 0x10
cmp dword [ebp - 4], ebx
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
mov dword [eax + 8], ebx
jne case.0x41404e.17
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc8]
push ebx
push 0xffffffffffffffff
push ebx
mov dword [ecx], eax
push dword [esi + 4]
push edi
call fcn.0041db9c
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x418184
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ecx + 0x3c], eax
jmp case.0x41404e.17
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
push dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
call dword [eax + 0x1c]
jmp 0x417ff4
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov ebx, dword [edi + 0x34]
mov dword [ebp - 0xc4], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0xc0], edx
mov edx, dword [esi + 4]
mov edx, dword [ebx + edx*4]
mov dword [ebp - 0xb4], edx
mov edx, dword [edx + 0x38]
mov dword [ebp - 0xbc], edx
mov ebx, dword [edx]
mov dword [ebp - 0xb8], ebx
mov ebx, dword [ebx]
mov dword [ebp - 0xc8], ebx
mov ebx, dword [ebp - 0xc0]
mov ebx, dword [ebx]
mov dword [ebp - 0xd0], ebx
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
mov eax, dword [edi + 0x24]
cmp ebx, ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], ecx
jle 0x418254
mov edx, dword [ebp - 0xc0]
lea eax, [ecx + ecx*4 + 5]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0xa8]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa8]
push dword [ecx + eax*4]
call fcn.00413e48
pop ecx
mov ecx, dword [ebp - 0xac]
inc ecx
cmp ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xac], ecx
jl 0x41820e
mov edx, dword [ebp - 0xbc]
push dword [ebp - 0xa8]
mov eax, dword [ebp - 0xc8]
mov byte [edi + 0x64], 1
push dword [ebp - 0xd0]
push dword [esi + 0x10]
push dword [ebp - 0xcc]
push edx
call dword [eax + 0x20]
push dword [edi + 0x5c]
and byte [edi + 0x64], 0
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xb8]
xor ebx, ebx
add esp, 0x1c
cmp dword [ebp - 4], ebx
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
mov dword [eax + 8], ebx
jne 0x4182b8
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc8]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], ebx
je 0x4182c7
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0xb4]
and byte [eax + 0x14], 0
jmp case.0x41404e.17
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x34]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xe8], ecx
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
mov dword [ebp - 0xc8], ebx
cmp byte [ecx + 0x14], 0
je 0x418300
push ebx
jmp 0x414437
mov ebx, dword [ebp - 0xe8]
push 0x40
push 0
mov eax, dword [ebx + 0x38]
mov eax, dword [eax]
mov dword [ebp - 0xd0], eax
mov eax, dword [eax]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0xc0]
push eax
call fcn.00440a90
push dword [ebp - 0xc8]
lea eax, [ebp - 0xb8]
push eax
call fcn.00413dc4
mov eax, dword [ebp - 0x9c]
and ax, 0xbf01
or al, 1
mov word [ebp - 0x9c], ax
push dword [esi + 8]
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 0xcc]
push dword [ebx + 0x38]
call dword [eax + 0x2c]
push dword [edi + 0x5c]
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xd0]
add esp, 0x28
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
and dword [eax + 8], 0
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x418392
mov dword [ebp - 4], eax
movzx eax, byte [ebp - 0xd8]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00412333
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc8]
call fcn.00413dc4
push dword [ebp - 0xc8]
call fcn.0041ccfd
add esp, 0x14
test eax, eax
jne 0x418889
jmp case.0x41404e.17
mov dword [ebp - 0xc8], ecx
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
cmp byte [eax + 0x14], 0
jne case.0x41404e.17
mov ecx, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [ecx]
mov byte [edi + 0x64], 1
mov dword [ebp - 0xcc], ecx
push dword [eax + 0x38]
call dword [ecx + 0x24]
push dword [edi + 0x5c]
and byte [edi + 0x64], 0
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xd0]
xor ebx, ebx
add esp, 0xc
cmp dword [ebp - 4], ebx
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
mov dword [eax + 8], ebx
jne 0x418453
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x38]
mov eax, dword [ebp - 0xcc]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], ebx
jmp 0x417d08
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xcc], ecx
mov edx, dword [eax]
push dword [ecx + 0x14]
push eax
call dword [edx + 0x4c]
push dword [edi + 0x5c]
mov dword [ebp - 4], eax
push dword [ebp - 8]
call fcn.004085f3
mov eax, dword [ebp - 0xd0]
add esp, 0x10
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
and dword [eax + 8], 0
jmp case.0x41404e.17
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xd0], eax
mov edx, dword [eax]
mov dword [ebp - 0xcc], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0xc8], eax
cmp dword [edx + 0x34], ecx
je case.0x41404e.17
mov eax, dword [edi + 0x24]
cmp dword [ebp - 0xc8], ecx
mov dword [ebp - 0xb8], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xc4], ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [ebp - 0xb4], eax
jle 0x418536
push dword [ebp - 0xb4]
call fcn.00413e48
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb4]
pop ecx
mov ecx, dword [ebp - 0xc4]
mov dword [edx + ecx*4], eax
add dword [ebp - 0xb4], 0x28
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0xc8]
jl 0x4184f4
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xb8]
push dword [ebp - 0xc8]
push dword [ebp - 0xd0]
call dword [edx + 0x34]
push dword [edi + 0x5c]
mov ebx, dword [ebp - 8]
mov dword [ebp - 4], eax
push ebx
call fcn.004085f3
mov eax, dword [ebp - 0xd0]
add esp, 0x18
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
xor ecx, ecx
cmp dword [ebp - 4], ecx
mov dword [eax + 8], ecx
jne 0x418591
cmp dword [esi + 4], ecx
je 0x418591
mov eax, dword [ebp - 0xc0]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebx + 0x34], eax
inc dword [edi + 0x68]
jmp case.0x41404e.17
mov esi, dword [esi + 4]
mov eax, dword [ebp - 8]
mov dword [ebp - 0xd0], esi
mov eax, dword [eax + 8]
shl esi, 4
push dword [esi + eax + 4]
call fcn.0040fd08
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xc8], eax
push ecx
push eax
call fcn.0040b6bc
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne case.0x41404e.17
mov eax, dword [ebp - 0xcc]
jmp 0x41413b
mov esi, dword [esi + 0x10]
cmp esi, ecx
je 0x4185eb
mov dword [ebp - 0xd0], esi
jmp 0x4185f7
mov edx, dword [edi + 0xb0]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], ecx
je case.0x41404e.17
cmp dword [eax + 0x94], ecx
lea esi, [eax + 0x94]
je case.0x41404e.17
push dword [ebp - 0xd0]
push edi
call fcn.0041d8a3
mov ebx, dword [ebp - 8]
push eax
mov dword [ebp - 0xe8], eax
push dword [ebx + 0x98]
call dword [esi]
push dword [ebp - 0xe8]
push ebx
call fcn.004085f3
add esp, 0x18
inc dword [ebp - 0xc]
cmp dword [ebp - 4], 0
je 0x413fb1
jmp 0x418789
mov dword [ebp - 4], 9
jmp 0x418789
mov eax, dword [esi + 4]
mov dword [edi + 0x58], eax
mov al, byte [esi + 8]
mov byte [edi + 0x38], al
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x54], eax
mov esi, dword [esi + 0x10]
cmp esi, ecx
je 0x418686
push esi
push 0x451314
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
add esp, 0x10
push edi
call fcn.0041104c
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x4187f5
mov dword [edi + 0x58], esi
jmp 0x4187ba
mov eax, dword [edi + 0x50]
inc eax
inc eax
or al, 1
mov dword [edi + 0x50], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
xor eax, eax
mov dword [edi + 0x2c], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], eax
cmp dword [esi + 8], eax
jle 0x418707
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0041272d
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00413e48
mov eax, dword [ebp - 0xcc]
pop ecx
inc eax
pop ecx
mov dword [ebp - 0xcc], eax
cmp eax, dword [esi + 8]
jl 0x4186c9
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x41872c
mov eax, dword [ebp - 0xc]
push 0x64
inc eax
pop esi
mov dword [edi + 0x54], eax
jmp 0x4187ba
lea eax, [ebp - 0xc0]
push eax
call fcn.00410a5d
pop ecx
mov eax, dword [ebp - 8]
push str.out_of_memory
push eax
mov byte [eax + 0x1e], 1
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
add esp, 0xc
mov dword [ebp - 4], 7
jmp 0x418789
mov dword [ebp - 4], 0x14
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1e], 0
je 0x418765
mov dword [ebp - 4], 7
cmp dword [ebp - 4], 0xc0a
je 0x418789
push dword [ebp - 4]
call fcn.0043e000
push eax
push 0x451314
push esi
lea eax, [edi + 0x5c]
push eax
call fcn.00411c3d
add esp, 0x14
mov esi, dword [ebp - 4]
push edi
mov dword [edi + 0x58], esi
call fcn.0041104c
cmp esi, 0xc0a
pop ecx
jne 0x4187a5
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
cmp byte [ebp + 0xb], 0
push 1
pop esi
je 0x4187ba
push 0
push dword [ebp - 8]
call fcn.0041f3e9
pop ecx
pop ecx
add edi, 0x78
push edi
call fcn.00411275
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x54], eax
and byte [ebx + 0x1c], 0
jmp 0x418698
cmp esi, ecx
je 0x418804
mov esi, dword [ebp - 8]
push esi
call fcn.0043df57
pop ecx
mov byte [esi + 0x1c], 1
mov ebx, esi
push ebx
call fcn.0043dc8a
pop ecx
mov esi, dword [edi + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4187ba
push 1
push edi
call fcn.00411be2
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x4187ba
mov ebx, dword [ebp - 8]
mov al, byte [ebp - 0xd0]
push edi
mov byte [ebx + 0x1c], al
call fcn.0041104c
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x4187ee
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x54], eax
mov al, 1
sub al, byte [ebp - 0xd0]
mov byte [ebx + 0x1c], al
jmp 0x418698
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
jmp 0x4187ba
mov dword [ebp - 4], 0xb
jmp 0x418755
mov dword [ebp - 4], 0xd
jmp 0x418755
push 9
pop eax
push eax
mov dword [ebp - 4], eax
mov dword [edi + 0x58], eax
call fcn.0043e000
push eax
push 0x451314
push dword [ebp - 8]
jmp 0x41877d
push str.string_or_blob_too_big
lea eax, [edi + 0x5c]
push dword [ebp - 8]
push eax
call fcn.00411c3d
add esp, 0xc
mov dword [ebp - 4], 0x12
jmp 0x418789