Function at 0x41386b
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.004114f8
cmp dword [edi + 0x58], 7
pop ecx
je 0x41807f
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 0x4181bf
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 0x41390a
mov ebx, dword [ebp - 0xe0]
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x41807f
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 0x41396a
mov eax, dword [eax + 0x108]
cmp eax, dword [ebp - 0xf0]
jne 0x413961
mov eax, dword [ebp - 8]
push dword [eax + 0x104]
call dword [eax + 0x100]
test eax, eax
pop ecx
jne 0x417f9f
and dword [ebp - 0xf0], eax
xor ecx, ecx
inc dword [ebp - 0xf0]
mov eax, dword [ebp - 8]
test byte [esi + 2], 2
je 0x413991
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0x10], eax
call fcn.004103d6
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.0x4139a1.17
jmp dword [edx*4 + 0x4181fc]
cmp dword [eax + 0xd8], ecx
jne 0x4181bf
jmp 0x417661
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 0x413a08
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov eax, dword [ebx + eax*8]
jmp 0x413a08
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.0x4139a1.17
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
je case.0x4139a1.17
cmp dword [esi + 4], ecx
jne 0x417fab
mov ebx, dword [edi + 0xcc]
lea eax, [edi + 0xcc]
cmp ebx, ecx
je 0x417fab
push dword [edi + 0x68]
mov ecx, dword [ebx + 0x3c]
dec dword [edi + 0xd0]
mov dword [eax], ecx
push dword [ebp - 8]
call fcn.00411808
push ebx
call fcn.00410c6b
add esp, 0xc
cmp dword [esi + 8], 4
mov dword [ebp - 0xc], eax
jne 0x413a74
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.0x4139a1.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
cdq
jmp 0x414760
mov ecx, dword [esi + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
jmp 0x416a03
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 8
mov ecx, dword [esi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x4139a1.17
push dword [esi + 0x10]
mov byte [esi], 9
call fcn.00409006
cmp byte [ebp - 0xd8], 1
pop ecx
mov dword [esi + 4], eax
je 0x413b49
push 0
push 1
push 0xffffffffffffffff
push dword [esi + 0x10]
push dword [ebp - 0x10]
call fcn.0040ff8b
add esp, 0x14
cmp eax, 0x12
mov dword [ebp - 4], eax
je 0x4181dc
movzx eax, byte [ebp - 0xd8]
push eax
push dword [ebp - 0x10]
call fcn.00411c86
pop ecx
test eax, eax
pop ecx
jne 0x41807f
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 0x413b39
push dword [esi + 0x10]
push dword [ebp - 8]
call fcn.00407f3a
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 0x4181dc
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.0x4139a1.17
push 0
push 0
push dword [esi + 4]
push dword [esi + 0x10]
mov esi, dword [ebp - 0x10]
push esi
call fcn.0040ff8b
add esp, 0x14
jmp 0x413eeb
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.0x4139a1.17
jmp 0x413bc5
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.0041c650
test eax, eax
pop ecx
jne 0x4181dc
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.004103d6
mov word [esi + 0x1c], 1
mov dword [esp], 0x800
push dword [ebp - 0xc4]
push esi
call fcn.0041c678
mov eax, dword [ebp - 0xc8]
add esp, 0xc
dec dword [ebp - 0xc8]
test eax, eax
jg 0x413bbf
jmp case.0x4139a1.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.0x4139a1.17
mov eax, dword [ebx + 0x24]
push esi
mov dword [ebp - 0xd0], eax
and dword [ebx + 0x24], 0
push ebx
call fcn.00413717
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 0x413c7b
mov dword [ebp - 0x10], ebx
jmp case.0x4139a1.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.0041c678
mov eax, dword [ebp - 0x10]
add esp, 0xc
test byte [eax + 0x1d], 0x10
je case.0x4139a1.17
push eax
call fcn.0041030b
test eax, eax
pop ecx
jne 0x41807f
jmp case.0x4139a1.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.0041c678
jmp 0x4172de
push 0
push edi
call fcn.00411535
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne case.0x4139a1.17
push 1
push edi
call fcn.00411163
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x417ff3
jmp case.0x4139a1.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 0x413d94
push esi
call fcn.004104ca
jmp 0x417947
test dh, 0x40
je 0x413da7
push dword [ebp - 0xd4]
call fcn.00410362
pop ecx
jmp 0x413da9
xor eax, eax
test eax, eax
jne 0x41807f
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1d], 0x40
je 0x413dc6
push eax
call fcn.00410362
pop ecx
jmp 0x413dc8
xor eax, eax
test eax, eax
jne 0x41807f
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1c], 0x12
jne 0x413df4
movzx ecx, byte [ebp - 0xd8]
push ecx
push eax
call fcn.004120c9
pop ecx
test eax, eax
pop ecx
jne 0x41807f
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1c], 0x12
jne 0x413e1e
movzx ecx, byte [ebp - 0xd8]
push ecx
push eax
call fcn.004120c9
pop ecx
test eax, eax
pop ecx
jne 0x41807f
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 0x4181dc
jl 0x413e58
cmp dword [ebp - 0xd0], eax
ja 0x4181dc
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.00410163
add esp, 0xc
test eax, eax
jne 0x41807f
mov ebx, dword [ebp - 0xdc]
cmp esi, ebx
je 0x413ea8
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [esi + 0x14]
call fcn.00440090
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.00440090
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.0x4139a1.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.004137d0
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.004137d0
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 0x4141bb
mov ecx, dword [ebp - 0xdc]
mov al, byte [ecx + 0x1c]
and al, byte [ebx + 0x1c]
and al, 4
cmp al, 4
jne 0x414095
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 0x414064
dec ecx
je 0x414056
dec ecx
je 0x414041
dec ecx
mov ecx, eax
je 0x413ff5
or ecx, ebx
je 0x4141bb
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x413fd4
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.00440930
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x414070
or ecx, ebx
je 0x4141bb
mov ecx, eax
and ecx, ebx
cmp ecx, 0xffffffff
jne 0x41402c
cmp dword [ebp - 0xc0], 0
jne 0x41402c
cmp dword [ebp - 0xbc], 0x80000000
jne 0x41402c
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.00440a30
jmp 0x413fe7
push ebx
push eax
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.004409f0
jmp 0x413fe7
sub dword [ebp - 0xc0], eax
sbb dword [ebp - 0xbc], ebx
jmp 0x414070
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 0x41464a
push ebx
call fcn.00412154
push dword [ebp - 0xdc]
fstp qword [ebp - 0xb8]
call fcn.00412154
fstp qword [ebp - 0xb0]
movzx eax, byte [esi]
pop ecx
sub eax, 0x56
pop ecx
je 0x414193
dec eax
je 0x414185
dec eax
je 0x414177
fld qword [ebp - 0xb8]
dec eax
je 0x41415e
call fcn.00440834
fld qword [ebp - 0xb0]
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
call fcn.00440834
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc0], eax
or ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
je 0x4141bb
mov ecx, dword [ebp - 0xc8]
and ecx, dword [ebp - 0xc4]
cmp ecx, 0xffffffff
jne 0x414137
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], 1
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push edx
push eax
call fcn.00440930
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0x108], edx
fild qword [ebp - 0x10c]
jmp 0x41419f
fcomp qword [0x44c810]
fnstsw ax
sahf
je 0x4141bb
fld qword [ebp - 0xb0]
fdiv qword [ebp - 0xb8]
jmp 0x41419f
fld qword [ebp - 0xb0]
fmul qword [ebp - 0xb8]
jmp 0x41419f
fld qword [ebp - 0xb0]
fsub qword [ebp - 0xb8]
jmp 0x41419f
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.00408fe4
pop ecx
test eax, eax
pop ecx
je 0x4141c3
push dword [ebp - 0x10]
jmp 0x413d8a
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.0x4139a1.17
push eax
call fcn.0041c507
jmp 0x417947
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 0x414261
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + ecx*4], ebx
push dword [ebp - 0xcc]
call fcn.0041379b
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 0x414223
cmp byte [esi + 1], 0xfb
mov eax, dword [esi + 0x10]
jne 0x414279
and dword [ebp - 0xc4], 0
mov dword [ebp - 0xc8], eax
jmp 0x414287
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.00413717
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 0x4142f7
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 0x418072
cmp dword [ebp - 0xc4], 0
je 0x414340
push dword [esi + 4]
push dword [ebp - 0xc4]
call fcn.004117c4
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 0x414371
lea eax, [ebp - 0xc0]
push eax
call fcn.0041235f
push eax
push 0x4500f4
lea eax, [edi + 0x5c]
push ebx
push eax
call fcn.00411590
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.00411c86
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0x10]
call fcn.00413717
push dword [ebp - 0x10]
jmp 0x417d11
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 0x417c4d
push ecx
call fcn.004121c1
push dword [ebp - 0xd4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
call fcn.004121c1
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
movzx edx, byte [esi]
pop ecx
sub edx, 0x52
pop ecx
je 0x414443
dec edx
je 0x41442f
dec edx
mov ecx, eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
je 0x414428
call fcn.00441090
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x414455
call fcn.00441070
jmp 0x41441a
or dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xc4]
or dword [ebp - 0xcc], eax
jmp 0x414455
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 0x414926
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041c55e
mov eax, dword [esi + 8]
pop ecx
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x4139a1.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.0041d5cb
mov ax, word [ebx + 0x1c]
add esp, 0xc
test al, 4
jne 0x41446a
mov esi, dword [esi + 8]
test esi, esi
je 0x4180a1
jmp 0x417664
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 4
lea eax, [ebx + eax*8]
je case.0x4139a1.17
push eax
call fcn.0041384a
jmp 0x417947
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.0x4139a1.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.0041d5cb
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x41452b
push esi
call fcn.00410362
pop ecx
mov dword [ebp - 4], eax
jmp 0x41452f
and dword [ebp - 4], 0
and word [esi + 0x1c], 0xbfe3
jmp case.0x4139a1.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.0x4139a1.17
test al, 0x10
jne 0x414578
push dword [ebp - 0xd8]
push 0x61
push esi
call fcn.0041d5cb
mov ax, word [esi + 0x1c]
add esp, 0xc
and ax, 0xbf10
or al, 0x10
mov word [esi + 0x1c], ax
jmp case.0x4139a1.17
and ax, 0xff10
jmp 0x41456f
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 0xd
lea eax, [ebx + eax*8]
jne case.0x4139a1.17
push eax
call fcn.0041c581
jmp 0x417947
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x4139a1.17
push eax
call fcn.0041c55e
jmp 0x417947
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
jne case.0x4139a1.17
jmp 0x4144d9
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 0x41465a
test al, 0x80
je 0x41462d
mov eax, dword [ebp - 0xe4]
and eax, edx
not al
and eax, 1
mov dword [ebp - 0xd0], eax
jmp 0x4146e7
test al, 0x10
je 0x414653
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.0x4139a1.17
test al, 8
jmp 0x416067
and al, 0x67
mov byte [ebp - 0xcc], al
je 0x4146a2
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push dword [ebp - 0xd4]
call fcn.0041d5cb
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push dword [ebp - 0xdc]
call fcn.0041d5cb
mov eax, dword [ebp - 8]
add esp, 0x18
cmp byte [eax + 0x1e], 0
jne 0x41807f
mov eax, dword [ebp - 0xd4]
test byte [eax + 0x1d], 0x40
je 0x4146b5
push eax
call fcn.00410362
pop ecx
mov eax, dword [ebp - 0xdc]
test byte [eax + 0x1d], 0x40
je 0x4146c8
push eax
call fcn.00410362
pop ecx
push dword [esi + 0x10]
push dword [ebp - 0xd4]
push dword [ebp - 0xdc]
call fcn.0041c6b9
add esp, 0xc
mov dword [ebp - 0xd0], eax
xor ecx, ecx
movzx edx, byte [esi]
sub edx, 0x4b
je 0x414728
dec edx
je 0x41471f
dec edx
je 0x414716
dec edx
je 0x41470d
dec edx
je 0x414704
xor edx, edx
cmp eax, ecx
setge dl
jmp 0x41472f
xor edx, edx
cmp eax, ecx
setl dl
jmp 0x41472f
xor edx, edx
cmp eax, ecx
setle dl
jmp 0x41472f
xor edx, edx
cmp eax, ecx
setg dl
jmp 0x41472f
xor edx, edx
cmp eax, ecx
sete dl
jmp 0x41472f
xor edx, edx
cmp eax, ecx
setne dl
mov dword [ebp - 0xd0], edx
test byte [esi + 3], 0x10
je 0x416061
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.0x4139a1.17
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf4], eax
jmp case.0x4139a1.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 0x414841
mov esi, dword [ebp - 0xe0]
jmp 0x4147ba
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
je 0x4147c9
mov ecx, dword [ecx + eax*4]
jmp 0x4147cb
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.0041c6b9
add esp, 0xc
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x414830
mov eax, dword [ebp - 0xcc]
inc eax
cmp eax, dword [ebp - 0xd0]
mov dword [ebp - 0xcc], eax
jl 0x4147b4
jmp 0x414841
cmp dword [ebp - 0xb4], 0
je 0x414841
neg eax
mov dword [ebp - 0xec], eax
and dword [ebp - 0xf4], 0
jmp case.0x4139a1.17
cmp dword [ebp - 0xec], ecx
jge 0x41485d
mov esi, dword [esi + 4]
jmp 0x417664
je 0x417661
mov esi, dword [esi + 0xc]
jmp 0x417664
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x414887
mov dword [ebp - 0xd0], 2
jmp 0x4148a5
push eax
call fcn.004121c1
or eax, edx
pop ecx
je 0x41489e
mov dword [ebp - 0xd0], 1
jmp 0x4148a5
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 0x4148c1
mov dword [ebp - 0xcc], 2
jmp 0x4148df
push eax
call fcn.004121c1
or eax, edx
pop ecx
je 0x4148d8
mov dword [ebp - 0xcc], 1
jmp 0x4148df
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 0x4148fd
movzx eax, byte [eax + ecx + 0x449b80]
jmp 0x414905
movzx eax, byte [eax + ecx + 0x449b8c]
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 0x41492f
mov ax, word [ebx + 0x1c]
and ax, 0xbf01
or al, 1
mov word [ebx + 0x1c], ax
jmp case.0x4139a1.17
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x414466
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 0x413d89
push eax
call fcn.004121c1
or eax, edx
pop ecx
jne 0x41496a
push 1
pop eax
jmp 0x41496c
xor eax, eax
cdq
push edx
push eax
push esi
jmp 0x4172d9
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 0x413d89
push eax
call fcn.004121c1
not edx
not eax
push edx
push eax
push esi
call fcn.0041249f
jmp 0x4179ad
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea eax, [ebx + eax*8]
je 0x4149c1
mov eax, dword [esi + 0xc]
jmp 0x4149f6
push eax
call fcn.00412154
fcomp qword [0x44c810]
pop ecx
fnstsw ax
sahf
je 0x4149df
mov dword [ebp - 0xd0], 1
jmp 0x4149e6
and dword [ebp - 0xd0], 0
cmp byte [esi], 0x1b
jne 0x4149fc
xor eax, eax
cmp dword [ebp - 0xd0], eax
sete al
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jmp 0x416067
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x416067
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
jmp 0x41765b
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.004403d0
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 0x414b2f
push eax
call fcn.0041c921
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x14], 0
je 0x414ac6
and dword [ebp - 0xd0], 0
jmp case.0x4139a1.17
mov ecx, dword [eax + 0x44]
cmp ecx, dword [edi + 0x50]
jne 0x414ae5
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0xd0], ecx
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0xb4], ecx
jmp 0x414b6a
cmp byte [eax + 0x17], 0
je 0x414b16
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xb0]
call fcn.0040faea
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 0x414b6a
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0xb0]
call fcn.00418a88
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x414b0e
mov ecx, dword [eax + 0x24]
test ecx, ecx
jle 0x414b63
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 0x414b5b
xor ecx, ecx
jmp 0x414b5e
mov ecx, dword [edi + 0x50]
mov dword [eax + 0x44], ecx
jmp 0x414b0e
and dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xd0]
test ecx, ecx
je case.0x4139a1.17
mov edx, dword [ebp - 8]
cmp ecx, dword [edx + 0x48]
ja 0x4181dc
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 0x414bac
mov eax, dword [eax + 0x50]
mov dword [ebp - 0xa8], eax
jmp 0x414e06
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 0x414be9
mov dword [ebp - 0x98], eax
jmp 0x414c39
mov eax, dword [ebp - 0xb8]
cmp byte [eax + 0x17], 0
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0xb0]
je 0x414c06
call fcn.00418b8a
jmp 0x414c0b
call fcn.00418c02
pop ecx
mov dword [ebp - 0x98], eax
pop ecx
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [ebp - 0x4c]
ja 0x414c2f
mov ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
mov dword [ecx + 0x54], eax
jmp 0x414c39
mov eax, dword [ebp - 0xb8]
and dword [eax + 0x54], 0
mov ecx, dword [ebp - 0x98]
mov al, byte [ecx]
cmp al, 0x80
jae 0x414c50
movzx eax, al
push 1
mov dword [ebp - 0x60], eax
pop eax
jmp 0x414c5f
lea eax, [ebp - 0x60]
push eax
push ecx
call fcn.0040ec82
pop ecx
pop ecx
movzx eax, al
cmp dword [ebp - 0x60], 0x18003
movzx eax, al
mov dword [ebp - 0x50], eax
jbe 0x414c7a
mov dword [ebp - 4], 0xb
jmp case.0x4139a1.17
mov ecx, dword [ebp - 0xa4]
lea eax, [ecx + ecx*4 + 3]
cmp eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
jle 0x414c98
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
xor ebx, ebx
cmp dword [ebp - 0xb4], ebx
jne 0x414cf2
cmp dword [ebp - 0x4c], eax
jge 0x414cf2
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.0041c85c
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 4], eax
jne case.0x4139a1.17
mov edx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x98], edx
jmp 0x414cf8
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 0x414dae
mov ecx, dword [ebp - 0x64]
cmp dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0xa8]
jae 0x414d91
mov edx, dword [ebp - 0x58]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x80
jae 0x414d52
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0x9c]
movzx eax, al
push 1
mov dword [ecx + edx*4], eax
pop eax
jmp 0x414d6d
mov eax, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xac]
lea eax, [edx + eax*4]
push eax
push ecx
call fcn.0040ec82
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.0041cab3
add dword [ebp - 0x58], eax
pop ecx
adc dword [ebp - 0x54], 0
jmp 0x414d95
and dword [ecx + eax*4], 0
mov eax, dword [ebp - 0x9c]
inc eax
cmp eax, dword [ebp - 0xa4]
mov dword [ebp - 0x9c], eax
jl 0x414d1e
lea eax, [ebp - 0x90]
push eax
call fcn.004103b0
mov edx, dword [ebp - 0x68]
pop ecx
cmp edx, dword [ebp - 0x64]
mov word [ebp - 0x74], 1
ja 0x414c6e
mov eax, dword [ebp - 0xd0]
xor ecx, ecx
cmp dword [ebp - 0x54], ecx
ja 0x414c6e
jb 0x414de9
cmp dword [ebp - 0x58], eax
ja 0x414c6e
cmp edx, dword [ebp - 0x64]
jne 0x414e00
cmp dword [ebp - 0x58], eax
jne 0x414c6e
cmp dword [ebp - 0x54], ecx
jne 0x414c6e
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xa8]
shl eax, 2
cmp dword [eax + edx], 0
je 0x414f00
cmp dword [ebp - 0xb4], 0
je 0x414e68
push dword [ebp - 0x94]
call fcn.004103d6
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.0041cb8c
add esp, 0x10
jmp 0x414eef
push dword [eax + ecx]
call fcn.0041cab3
push dword [ebp - 0x94]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0x90]
push eax
call fcn.00413717
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.0041c85c
add esp, 0x20
mov dword [ebp - 4], eax
test eax, eax
jne case.0x4139a1.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.0041cb8c
add esp, 0xc
mov eax, dword [ebp - 0x94]
mov cl, byte [ebp - 0xd8]
mov byte [eax + 0x1f], cl
jmp 0x414f1c
cmp byte [esi + 1], 0xf8
jne 0x414f1c
push 0x800
push dword [esi + 0x10]
push dword [ebp - 0x94]
call fcn.0041c678
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x414f50
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.0041030b
pop ecx
mov dword [ebp - 4], eax
jmp case.0x4139a1.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.0x4139a1.17
test byte [esi + 0x1d], 0x40
je 0x414f9a
push esi
call fcn.00410362
pop ecx
push dword [ebp - 0xd8]
push dword [ebp - 0xcc]
push esi
call fcn.0041d5cb
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 0x414f8d
jmp case.0x4139a1.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 0x41510f
jmp 0x415049
mov edx, dword [ebp - 0xa4]
xor ebx, ebx
cmp dword [ebp - 0x98], ebx
je 0x41507e
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.0041d5cb
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
xor ebx, ebx
test byte [ecx + 0x1d], 0x40
je 0x415096
cmp dword [ecx + 0x18], ebx
jle 0x415096
push ecx
call fcn.00410362
pop ecx
mov ecx, dword [ebp - 0xcc]
push dword [ebp - 0x94]
push ecx
call fcn.0041c9ec
push eax
mov dword [ebp - 0xa8], eax
call fcn.0041cab3
mov dword [ebp - 0x8c], eax
push ebx
push dword [ebp - 0xa8]
cdq
add dword [ebp - 0xc8], eax
adc dword [ebp - 0xc4], edx
call fcn.004184f4
mov ecx, dword [ebp - 0xcc]
add dword [ebp - 0xc0], eax
add esp, 0x14
test byte [ecx + 0x1d], 0x40
je 0x4150ec
mov eax, dword [ecx]
add dword [ebp - 0xb0], eax
jmp 0x4150fa
cmp dword [ebp - 0x8c], ebx
je 0x4150fa
mov dword [ebp - 0xb0], ebx
add ecx, 0x28
cmp ecx, dword [ebp - 0xa0]
mov dword [ebp - 0xcc], ecx
jbe 0x415043
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.004184f4
add dword [ebp - 0xc0], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.004184f4
add esp, 0x10
cmp dword [ebp - 0xac], eax
jge 0x415148
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 0x4181dc
jl 0x41518f
cmp ecx, eax
ja 0x4181dc
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.00410163
add esp, 0xc
test eax, eax
jne 0x41807f
mov eax, dword [esi + 0x14]
mov ebx, 0x80
cmp dword [ebp - 0xc0], ebx
mov dword [ebp - 0xd0], eax
jae 0x4151d8
mov cl, byte [ebp - 0xc0]
push 1
mov byte [eax], cl
pop eax
jmp 0x4151e6
push dword [ebp - 0xc0]
push eax
call fcn.00418440
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 0x415263
push dword [ebp - 0x94]
push dword [ebp - 0xcc]
call fcn.0041c9ec
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 0xa8], eax
jae 0x415234
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0xd0]
push 1
mov byte [ecx + edx], al
pop eax
jmp 0x41524b
mov ecx, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0xd0]
add ecx, eax
push ecx
call fcn.00418440
pop ecx
pop ecx
movzx eax, al
add dword [ebp - 0x90], eax
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x4151fb
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
cmp eax, dword [ebp - 0xa0]
ja 0x4152b8
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.0041caca
add dword [ebp - 0x90], eax
add esp, 0x10
add dword [ebp - 0xcc], 0x28
mov eax, dword [ebp - 0xcc]
jmp 0x41526f
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 0x4152dd
mov dword [esi], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.0x4139a1.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 0x41530f
lea ecx, [ebp - 0xd0]
push ecx
push eax
call fcn.0041ba57
pop ecx
mov dword [ebp - 4], eax
pop ecx
jmp 0x41531b
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 0x416a03
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 0x10]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
jne 0x415405
cmp dword [eax + 0x90], ecx
jle 0x41535d
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x4156b7
push esi
call fcn.00409006
mov dword [ebp - 0xc8], eax
add eax, 0x19
push eax
push dword [ebp - 8]
call fcn.004080e4
add esp, 0xc
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4139a1.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.00440090
mov eax, dword [ebp - 8]
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x4153bf
and byte [eax + 0x1c], 0
mov byte [eax + 0x1d4], 1
jmp 0x4153c5
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.0x4139a1.17
mov dword [ebp - 0xb8], ecx
mov eax, dword [eax + 0x1c8]
cmp eax, ecx
mov dword [ebp - 0xc0], eax
je 0x415455
push dword [ebp - 0xcc]
push dword [eax]
call fcn.00409024
pop ecx
test eax, eax
pop ecx
je 0x415449
mov eax, dword [ebp - 0xc0]
inc dword [ebp - 0xb8]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [ebp - 0xc0], eax
jne 0x41541b
jmp 0x41544f
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
cmp eax, ecx
jne 0x41547b
push dword [ebp - 0xcc]
lea eax, [edi + 0x5c]
push str.no_such_savepoint:__s
push dword [ebp - 8]
push eax
call fcn.00411590
add esp, 0x10
mov dword [ebp - 4], 1
jmp case.0x4139a1.17
mov ebx, dword [ebp - 8]
cmp dword [ebx + 0x90], ecx
jg 0x41562b
cmp dword [ebp - 0xd0], 2
jne 0x4154a0
cmp dword [ebx + 0x8c], 1
jg 0x415634
cmp dword [eax + 0x10], ecx
jne 0x415500
cmp byte [ebx + 0x1d4], 0
je 0x415500
push 1
pop edx
cmp dword [ebp - 0xd0], edx
mov dword [ebp - 0xe4], edx
jne 0x415506
push edx
push edi
call fcn.00411535
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x41810d
push edi
mov byte [ebx + 0x1c], 1
call fcn.0041099f
pop ecx
push 5
pop esi
cmp eax, esi
je 0x41811e
and byte [ebx + 0x1d4], 0
mov eax, dword [edi + 0x58]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc0]
jmp 0x415599
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 0x41556e
jmp 0x41552c
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.0041121e
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x4180a8
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 8]
inc ecx
mov dword [ebp - 0xb4], ecx
cmp ecx, dword [eax + 4]
jl 0x415526
mov eax, dword [ebp - 0xc0]
cmp dword [ebp - 0xd0], 2
jne 0x415599
mov esi, dword [ebp - 8]
test byte [esi + 0xc], 0x10
je 0x41559c
push esi
call fcn.0041d1de
push 0
push esi
call fcn.0041ed3b
mov eax, dword [ebp - 0xc0]
add esp, 0xc
jmp 0x41559c
mov esi, dword [ebp - 8]
mov ecx, dword [esi + 0x1c8]
cmp ecx, eax
je 0x4155d7
mov dword [ebp - 0xbc], ecx
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x1c8], eax
push dword [ebp - 0xbc]
push esi
call fcn.00407f3a
dec dword [esi + 0x1cc]
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
mov ecx, dword [esi + 0x1c8]
jmp 0x4155a2
cmp dword [ebp - 0xd0], 1
jne 0x415612
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c8], eax
push dword [ebp - 0xc0]
push esi
call fcn.00407f3a
cmp dword [ebp - 0xe4], 0
pop ecx
pop ecx
jne case.0x4139a1.17
mov eax, dword [ebp - 8]
dec dword [eax + 0x1cc]
jmp case.0x4139a1.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.0x4139a1.17
cmp dword [ebp - 0xd0], 2
jne 0x41563b
mov eax, str.rollback
jmp 0x415640
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.00411590
add esp, 0x10
jmp 0x4156c6
mov edx, dword [esi + 4]
mov dword [ebp - 0xd0], edx
mov esi, dword [esi + 8]
cmp edx, ecx
mov dword [ebp - 0xcc], esi
je 0x41568d
cmp byte [eax + 0x1c], 0
jne 0x41568d
push 1
cmp esi, ecx
pop ebx
mov dword [ebp - 0xc8], ebx
je 0x4156aa
cmp dword [eax + 0x8c], ebx
jle 0x415693
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4156b7
mov dword [ebp - 0xc8], ecx
movzx eax, byte [eax + 0x1c]
cmp edx, eax
jne 0x41812d
cmp edx, ecx
jne 0x4156d2
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4156e0
cmp dword [eax + 0x90], ecx
jle 0x415693
push str.cannot_commit_transaction___SQL_statements_in_progress
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411590
add esp, 0xc
mov dword [ebp - 4], 5
jmp case.0x4139a1.17
cmp esi, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x4156e0
mov eax, str.cannot_commit___no_transaction_is_active
push eax
lea eax, [edi + 0x5c]
push dword [ebp - 8]
push eax
call fcn.00411590
add esp, 0xc
jmp 0x41546f
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.0x4139a1.17
push dword [esi + 8]
push eax
call fcn.0040d66c
pop ecx
mov dword [ebp - 4], eax
pop ecx
push 5
pop eax
cmp dword [ebp - 4], eax
je 0x418197
cmp dword [ebp - 4], 0
jne 0x4180a8
cmp dword [esi + 8], 0
je case.0x4139a1.17
cmp byte [edi + 0x65], 0
je case.0x4139a1.17
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1c], 0
je 0x41575e
cmp dword [esi + 0x8c], 1
jle case.0x4139a1.17
cmp dword [edi + 0xc8], 0
lea ecx, [edi + 0xc8]
jne 0x415789
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.00418975
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.0x4139a1.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.0040f5d0
add esp, 0xc
jmp 0x416fbc
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.0041c55e
push dword [ebx]
mov eax, dword [ebp - 0xd0]
push dword [esi + 8]
push dword [eax + 4]
call fcn.0040f605
mov dword [ebp - 4], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x415844
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 0x415857
cmp eax, 2
jne 0x415857
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.0x4139a1.17
push dword [ebp - 8]
call fcn.0041d1de
and byte [edi + 0x62], 0
pop ecx
jmp case.0x4139a1.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 0x41589e
lea ecx, [ebp - 0xd0]
push ecx
push 1
push eax
call fcn.0040f5d0
add esp, 0xc
jmp 0x4158a4
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xd0]
cmp eax, dword [esi + 8]
je case.0x4139a1.17
push dword [edi + 0x5c]
mov ebx, dword [ebp - 8]
push ebx
call fcn.00407f3a
push str.database_schema_has_changed
push ebx
call fcn.0041272c
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 0x4158f2
push esi
push ebx
call fcn.0041ed3b
pop ecx
pop ecx
push ebx
call fcn.0041d1de
pop ecx
mov dword [ebp - 4], 0x11
jmp case.0x4139a1.17
cmp byte [edi + 0x62], 0
je 0x415917
mov dword [ebp - 4], 4
jmp case.0x4139a1.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 0x415969
mov dword [ebp - 0xc0], 1
mov eax, dword [edx + 0xc]
mov al, byte [eax + 0x48]
cmp al, byte [edi + 0x63]
jae 0x41596f
mov byte [edi + 0x63], al
jmp 0x41596f
mov dword [ebp - 0xc0], ecx
cmp byte [esi + 3], 0
je 0x415999
mov eax, dword [ebp - 0xc8]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.0041c55e
mov ebx, dword [ebx]
pop ecx
cmp ebx, 2
mov dword [ebp - 0xc8], ebx
jl 0x4181a7
mov cl, byte [esi + 1]
mov eax, dword [ebp - 0xd0]
cmp cl, 0xfa
jne 0x4159cb
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 0x4159d3
cmp cl, 0xf2
jne 0x4159d9
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.0041d4ef
add esp, 0x14
mov dword [ebp - 0xb8], eax
test eax, eax
je 0x41807f
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.004189b1
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 0x415a4c
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 0x415b78
push 1
push 0xffffffffffffffff
push dword [esi + 8]
push dword [esi + 4]
push edi
call fcn.0041d4ef
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x41807f
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xd0]
add eax, 0x20
push eax
push dword [0x449b98]
push 0x1f4
push 1
pop ebx
push ebx
push 0
push dword [ebp - 8]
call fcn.0043de84
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x415b72
mov eax, dword [ebp - 0xd0]
push ebx
push dword [eax + 0x20]
call fcn.0040d66c
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x415b72
cmp dword [esi + 0x10], eax
je 0x415b4e
lea eax, [ebp - 0xfc]
push 2
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x20]
call fcn.0041b51e
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x415b42
mov eax, dword [ebp - 0xd0]
push dword [eax]
push dword [esi + 0x10]
push ebx
push dword [ebp - 0xfc]
push dword [eax + 0x20]
call fcn.004189b1
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 0x415b72
mov eax, dword [ebp - 0xd0]
push dword [eax]
push 0
push ebx
push ebx
push dword [eax + 0x20]
call fcn.004189b1
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.0x4139a1.17
push 0
push 0xffffffffffffffff
push dword [esi + 0xc]
push dword [esi + 4]
push edi
call fcn.0041d4ef
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x41807f
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.0x4139a1.17
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x34]
push dword [ecx + eax*4]
push edi
call fcn.004105c2
mov eax, dword [esi + 4]
pop ecx
pop ecx
mov ecx, dword [edi + 0x34]
and dword [ecx + eax*4], 0
jmp case.0x4139a1.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 0x417661
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 0x415dd2
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ebx + eax*8]
push ebx
call fcn.004137d0
push ebx
call fcn.004121c1
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 0x415d67
test al, 8
je 0x417661
cmp dword [ebp - 0xa0], 0
jne 0x415d1b
mov eax, 0x80000000
cmp dword [ebp - 0x9c], eax
jne 0x415d1b
and dword [ebp - 0x114], 0
mov dword [ebp - 0x110], eax
fild qword [ebp - 0x114]
fcomp qword [ebx + 8]
fnstsw ax
sahf
ja 0x415cad
fld qword [ebx + 8]
fcomp qword [0x44c810]
fnstsw ax
sahf
jbe 0x415d1b
mov dword [ebp - 0xd0], 1
fld qword [ebx + 8]
fcomp qword [0x44c810]
fnstsw ax
sahf
jae 0x415ce8
cmp dword [ebp - 0xcc], 0x2d
jl 0x417661
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418c1e
jmp 0x415d09
cmp dword [ebp - 0xcc], 0x2c
jg 0x417661
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418e35
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x4180a8
jmp 0x4149fc
cmp dword [ebp - 0xcc], 0x2b
je 0x415d4b
cmp dword [ebp - 0xcc], 0x2d
je 0x415d4b
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jbe 0x415d67
add dword [ebp - 0xa0], 0xffffffff
adc dword [ebp - 0x9c], 0xffffffff
jmp 0x415d67
fild qword [ebp - 0xa0]
fcomp qword [ebx + 8]
fnstsw ax
sahf
jae 0x415d67
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.00418ee3
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x4180a8
cmp dword [ebp - 0xd0], eax
jne 0x415e5a
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 0x415e5a
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 0x415e29
push eax
call fcn.00410362
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.00418ee3
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 4], eax
jne 0x4180a8
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 0x415eac
cmp dword [ebp - 0xd0], ebx
jl 0x415e96
jne 0x415e8b
cmp dword [ebp - 0xcc], 0x2e
je 0x415e96
mov dword [ebp - 0xd0], ebx
jmp case.0x4139a1.17
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004191c5
jmp 0x415ee6
cmp dword [ebp - 0xd0], ebx
jg 0x415ed2
jne 0x415ebf
cmp dword [ebp - 0xcc], 0x2b
je 0x415ed2
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.004191b7
pop ecx
jmp 0x4149f6
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00419300
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xc8]
and byte [eax + 0x11], 0
jmp 0x4149fc
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.0x4139a1.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.004121c1
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.0x4139a1.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 0x41605c
cmp dword [esi + 0x10], ecx
jle 0x415fb4
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 0x415ffc
test byte [ebx + 0x1d], 0x40
je 0x415fc7
push ebx
call fcn.00410362
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.0041cd7c
add esp, 0x14
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x41807f
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.00418ee3
add esp, 0x18
cmp dword [esi + 0x10], ebx
mov dword [ebp - 4], eax
jne 0x41602c
push dword [ebp - 0xc4]
call fcn.0041cea2
pop ecx
cmp dword [ebp - 4], ebx
jne case.0x4139a1.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 0x416072
cmp dword [ebp - 0xd0], ecx
je case.0x4139a1.17
jmp 0x417661
cmp dword [ebp - 0xd0], ecx
jmp 0x41765b
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 0x41611b
movzx edx, word [ebp - 0xd0]
lea edx, [edx + edx*4]
test byte [ebx + edx*8 + 0x1c], 1
jne 0x41610e
mov dx, word [ebp - 0xc4]
inc word [ebp - 0xd0]
cmp word [ebp - 0xd0], dx
jb 0x4160e4
jmp 0x41611b
mov edx, dword [esi + 8]
mov dword [ebp - 0xc8], ecx
dec edx
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc8], ecx
je case.0x4139a1.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.0041c55e
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.00418ee3
add esp, 0x1c
mov dword [ebp - 4], eax
test byte [ebp - 0xb2], 0x20
jne 0x417661
mov eax, dword [ebp - 0xb0]
cmp eax, dword [ebp - 0xa0]
jne 0x4161be
mov ecx, dword [ebp - 0xac]
cmp ecx, dword [ebp - 0x9c]
je 0x417661
mov dword [ebx], eax
mov eax, dword [ebp - 0xac]
mov dword [ebx + 4], eax
jmp case.0x4139a1.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 0x416293
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.00418ee3
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 0x416285
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x40], eax
jmp case.0x4139a1.17
mov esi, dword [esi + 8]
mov dword [eax + 0x40], ecx
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x4139a1.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.0x4139a1.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 0x41531b
mov dword [ebp - 0xc0], ecx
cmp byte [eax + 0x13], 0
jne 0x41649f
push dword [eax]
call fcn.00418a7d
mov dword [ebp - 0xd0], eax
or eax, edx
pop ecx
mov dword [ebp - 0xcc], edx
jne 0x4163a6
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418e35
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
jne 0x4180a8
cmp dword [ebp - 0xc4], eax
je 0x41635e
and dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], 1
jmp 0x4163a6
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0040faea
cmp dword [ebp - 0xd0], 0xffffffff
pop ecx
pop ecx
mov dword [ebp - 4], eax
jne 0x416398
cmp dword [ebp - 0xcc], 0x7fffffff
jne 0x416398
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x13], 1
jmp 0x4163a6
add dword [ebp - 0xd0], 1
adc dword [ebp - 0xcc], 0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x416456
mov eax, dword [edi + 0xcc]
test eax, eax
je 0x4163da
mov dword [ebp - 0xb8], eax
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4163cc
mov eax, ecx
jmp 0x4163bb
mov esi, dword [esi + 0xc]
mov eax, dword [eax + 0x10]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*8]
jmp 0x4163e0
lea eax, [ecx + ecx*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xbc], eax
call fcn.0041c55e
mov edx, dword [ebp - 0xbc]
pop ecx
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x416409
cmp ecx, 0x7fffffff
je 0x4181b3
mov esi, dword [ebp - 0xc8]
cmp byte [esi + 0x13], 0
jne 0x4181b3
mov esi, dword [ebp - 0xcc]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x41643f
jl 0x416433
cmp dword [ebp - 0xd0], eax
jae 0x41643f
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 0x416479
mov eax, dword [ebp - 0xd0]
jl 0x416471
cmp eax, 0xffffffff
jae 0x416479
add eax, 1
adc ecx, 0
jmp 0x41647d
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.00418a56
mov eax, dword [ebp - 0xc8]
add esp, 0xc
cmp byte [eax + 0x13], 0
je 0x41657d
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 0x4164ca
mov eax, dword [ebp - 0xc8]
cmp dword [ebp - 0xc0], esi
jne 0x4164fb
mov ecx, dword [ebp - 0xd0]
xor edx, edx
and ecx, ebx
cmp ecx, dword [ebp - 0xd0]
jne 0x4164fb
cmp edx, dword [ebp - 0xcc]
jne 0x4164fb
add dword [ebp - 0xd0], 1
adc dword [ebp - 0xcc], esi
jmp 0x416526
lea eax, [ebp - 0xd0]
push eax
push 8
call fcn.00408eac
cmp dword [ebp - 0xc0], 5
pop ecx
pop ecx
jge 0x416520
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.00418ee3
add esp, 0x18
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0x64
mov dword [ebp - 4], eax
jge 0x416567
cmp eax, esi
jne 0x416577
cmp dword [ebp - 0xc4], esi
je 0x4164c4
cmp eax, esi
jne 0x416577
cmp dword [ebp - 0xc4], esi
je 0x4181b3
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 0x41531b
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 0x4165d9
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 0x4165e0
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
test byte [esi + 3], 1
je 0x4165ef
inc dword [edi + 0x68]
test byte [esi + 3], 2
je 0x416604
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 0x416622
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 0x416639
mov edx, dword [ebp - 0xc0]
mov edx, dword [edx + 0x40]
mov dword [ebp - 0xb8], edx
jmp 0x41663f
mov dword [ebp - 0xb8], ecx
test byte [eax + 0x1d], 0x40
je 0x41664f
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
jmp 0x416655
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0xc0]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00418a56
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.00419413
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.0x4139a1.17
mov eax, dword [ebp - 8]
cmp dword [eax + 0xb8], ebx
je case.0x4139a1.17
cmp dword [esi + 0x10], ebx
je case.0x4139a1.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 0x417f8a
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 0x416774
cmp dword [esi + 0x10], ecx
je 0x416774
mov eax, dword [edx + 8]
mov dword [ebp - 0xd0], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xcc], eax
push edx
call fcn.0041c921
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xc8]
xor ebx, ebx
push ebx
push ebx
push dword [eax]
call fcn.00418a56
mov eax, dword [ebp - 0xc8]
push dword [eax]
call fcn.0041b314
mov ecx, dword [ebp - 0xc8]
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 4], eax
mov dword [ecx + 0x44], ebx
jne 0x4167f7
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xb8]
cmp edx, ebx
je 0x4167f7
mov ecx, dword [esi + 0x10]
cmp ecx, ebx
je 0x4167f7
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.0x4139a1.17
jmp 0x417ee4
push dword [edi + 0x68]
push dword [ebp - 8]
call fcn.00411808
and dword [edi + 0x68], 0
pop ecx
pop ecx
jmp case.0x4139a1.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.0041c921
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x17], 0
je 0x41689e
lea eax, [ebp - 0xc0]
push eax
push dword [ebp - 0xcc]
call fcn.0040faea
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 0x4181dc
jl 0x416896
cmp ecx, eax
ja 0x4181dc
mov dword [ebp - 0xc8], ecx
jmp 0x4168c4
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xcc]
call fcn.00418a88
mov eax, dword [ebp - 8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [eax + 0x48]
ja 0x4181dc
push 0
push dword [ebp - 0xc8]
push ebx
call fcn.00410163
add esp, 0xc
test eax, eax
jne 0x41807f
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 0x416918
call fcn.0040fb81
jmp 0x41691d
call fcn.00418aa1
add esp, 0x10
mov dword [ebp - 4], eax
mov byte [ebx + 0x1f], 1
jmp case.0x4139a1.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 0x41694f
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
jmp case.0x4139a1.17
cmp byte [eax + 0x15], 0
je 0x41696c
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xc4], eax
jmp 0x4169f2
mov edx, dword [eax + 0x38]
cmp edx, ecx
je 0x4169b3
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.00407f3a
mov eax, dword [ebp - 0xc0]
add esp, 0x10
mov ecx, dword [eax + 8]
mov dword [edi + 0x5c], ecx
and dword [eax + 8], 0
jmp 0x4169f2
push eax
call fcn.0041c921
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xd0]
cmp byte [eax + 0x11], 0
je 0x4169df
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [eax + 0xc]
jmp 0x416961
lea ecx, [ebp - 0xc8]
push ecx
push dword [eax]
call fcn.0040faea
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.0x4139a1.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.0x4139a1.17
push eax
call fcn.0040fad2
jmp 0x417947
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 0x416a6a
mov dword [ebp - 0xc8], 1
jmp 0x416a84
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.00418e35
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.0x4139a1.17
cmp dword [ebp - 0xc8], ecx
je case.0x4139a1.17
jmp 0x417664
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 0x416b32
lea eax, [ebp - 0xc8]
push eax
push edx
call fcn.00418c1e
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 0x416b3c
mov dword [ebp - 0xc8], 1
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x14], cl
cmp dword [ebp - 0xc8], 0
jmp 0x416067
cmp dword [eax + 0xd8], ecx
jne 0x4181bf
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.0x4139a1.17
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xcc], ecx
jne 0x416b89
mov byte [eax + 0x14], 1
jmp case.0x4139a1.17
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], 1
cmp byte [esi], 0x42
push eax
push ecx
jne 0x416ba7
call fcn.004191c5
jmp 0x416bac
call fcn.00419300
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 0x416bf2
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0xc], eax
mov al, byte [esi + 3]
test al, al
je 0x416bf2
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.0x4139a1.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.0x4139a1.17
test byte [ebx + 0x1d], 0x40
je 0x416c41
push ebx
call fcn.00410362
mov edx, dword [ebp - 0xd0]
pop ecx
mov dword [ebp - 4], eax
jmp 0x416c44
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne case.0x4139a1.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 0x416c6b
mov edx, dword [edx + 0x40]
jmp 0x416c6d
xor edx, edx
push edx
push dword [esi + 0xc]
cdq
push 0
push 0
push 0x453d30
push edx
push eax
push ebx
push dword [ebp - 0xcc]
call fcn.00419413
add esp, 0x24
jmp 0x416d11
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.0x4139a1.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.00418ee3
add esp, 0x18
mov dword [ebp - 4], eax
test eax, eax
jne 0x416d14
cmp dword [ebp - 0xc8], eax
jne 0x416d14
push dword [ebp - 0xcc]
call fcn.0041b314
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x44], 0
jmp case.0x4139a1.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.0x4139a1.17
push dword [ebp - 0xcc]
call fcn.0041c921
test eax, eax
pop ecx
mov dword [ebp - 4], eax
jne 0x4180a8
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x14], 0
jne case.0x4139a1.17
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0xd0]
push dword [ebp - 8]
call fcn.0041d062
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne 0x4180a8
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.0x4139a1.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.0x4139a1.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.0041d14f
add esp, 0xc
cmp byte [esi], 0x48
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xcc]
jne 0x416e2f
neg eax
jmp 0x416e30
inc eax
test eax, eax
mov dword [ebp - 0xcc], eax
jle case.0x4139a1.17
jmp 0x417661
mov dword [ebp - 0xcc], ecx
mov eax, dword [eax + 0x88]
cmp eax, ecx
mov dword [ebp - 0xc8], eax
je 0x416e78
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x416e73
cmp byte [eax + 0x64], 2
jae 0x416e73
cmp dword [eax + 0x54], ecx
jl 0x416e73
inc dword [ebp - 0xcc]
mov eax, dword [eax + 8]
jmp 0x416e4f
mov eax, dword [ebp - 0x10]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0xcc], 1
jle 0x416e9a
mov dword [ebp - 4], 6
mov byte [edi + 0x38], 2
jmp case.0x4139a1.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.0041b88b
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.0x4139a1.17
cmp dword [ebp - 0xd0], 0
je case.0x4139a1.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.0041f0df
add esp, 0xc
mov byte [ebp + 0xb], 1
jmp case.0x4139a1.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.0041b70c
add esp, 0xc
cmp dword [esi + 0xc], 0
mov dword [ebp - 4], eax
je case.0x4139a1.17
mov eax, dword [ebp - 0xd0]
add dword [edi + 0x68], eax
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x4139a1.17
lea ecx, [esi + esi*4]
lea ecx, [ebx + ecx*8]
jmp 0x417639
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.0041b51e
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xd0]
jmp 0x413a8e
mov ebx, dword [ebp - 8]
mov eax, dword [esi + 4]
push ebx
mov dword [ebp - 0xd0], eax
call fcn.0041886d
cmp dword [esi + 8], 0
mov eax, dword [ebp - 0xd0]
pop ecx
jne 0x417001
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 0x4170af
cmp eax, 1
mov dword [ebp - 0xcc], str.sqlite_temp_master
je 0x41701a
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.00411094
add esp, 0x14
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x417065
mov dword [ebp - 4], 7
jmp 0x4170af
lea eax, [ebp - 0xc4]
push 0
push eax
push fcn.00420e76
mov byte [ebx + 0x7c], 1
push dword [ebp - 0xc8]
and dword [ebp - 0xb8], 0
push ebx
call fcn.00420996
add esp, 0x14
mov dword [ebp - 4], eax
test eax, eax
jne 0x41709d
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 4], eax
push dword [ebp - 0xc8]
push ebx
call fcn.00407f3a
and byte [ebx + 0x7c], 0
pop ecx
pop ecx
push ebx
call fcn.004188fa
cmp dword [ebp - 4], 7
pop ecx
je 0x41807f
jmp case.0x4139a1.17
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041e287
pop ecx
jmp 0x414f5b
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041ee5c
jmp 0x4172de
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0041ea26
jmp 0x4172de
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.0042215b
jmp 0x4172de
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], eax
lea eax, [eax*4 + 4]
push eax
push dword [ebp - 8]
call fcn.004080e4
pop ecx
mov dword [ebp - 0xcc], eax
test eax, eax
pop ecx
je 0x41807f
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 0x417191
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.004121c1
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 0x417160
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.0041bb46
push dword [ebp - 0xcc]
mov dword [ebp - 0xc0], eax
push esi
call fcn.00407f3a
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.004104ca
add esp, 0x20
cmp dword [ebp - 0xc4], 0
je 0x41722d
cmp dword [ebp - 0xc0], 0
je 0x41807f
push fcn.00407eec
push 1
push 0xffffffffffffffff
push dword [ebp - 0xc0]
push ebx
call fcn.0040ff8b
add esp, 0x14
movzx eax, byte [ebp - 0xd8]
push eax
push ebx
call fcn.00411c86
pop ecx
jmp 0x417947
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 0x417273
mov esi, eax
push esi
call fcn.0041c5d2
test byte [esi + 0x1c], 0x20
pop ecx
je 0x41807f
push dword [ebx + 4]
mov eax, dword [ebp - 0xd4]
push dword [ebx]
push dword [eax]
call fcn.0041851d
jmp 0x4172de
cmp dword [eax + 0xd8], ecx
jne 0x4181bf
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 0x4172e6
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax]
call fcn.00418597
pop ecx
test eax, eax
pop ecx
je 0x4172e6
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.0041249f
add esp, 0xc
jmp case.0x4139a1.17
push dword [ebp - 0xd4]
call fcn.004104ca
pop ecx
jmp 0x417661
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 0x41733b
push ecx
call fcn.0041c5d2
mov eax, dword [ebp - 0xd4]
pop ecx
test byte [eax + 0x1c], 0x20
je 0x41807f
mov eax, dword [ebp - 0xd0]
test eax, eax
je 0x417273
jl 0x41734a
and eax, 0xf
jmp 0x41734f
mov eax, 0xff
push dword [ebx + 4]
push dword [ebx]
push eax
mov eax, dword [ebp - 0xd4]
push dword [eax]
call fcn.0041875f
add esp, 0x10
mov dword [ebp - 0xcc], eax
test eax, eax
jne 0x417661
mov eax, dword [ebp - 0xd0]
test eax, eax
jl case.0x4139a1.17
jmp 0x417273
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 0x4173dd
mov edx, dword [edi + 0xcc]
mov ebx, dword [esi + 0x14]
cmp edx, ecx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xbc], edx
je 0x4173dd
cmp dword [edx + 0x20], ebx
je 0x4173d5
mov edx, dword [edx + 0x3c]
cmp edx, ecx
mov dword [ebp - 0xbc], edx
jne 0x4173c3
cmp edx, ecx
jne case.0x4139a1.17
mov ecx, dword [edi + 0xd0]
cmp ecx, dword [eax + 0x70]
jl 0x417405
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.00411590
jmp 0x4172de
mov eax, dword [ebp - 0xc8]
test byte [eax + 0x1c], 0x40
jne 0x41755b
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.0040ac05
pop ecx
mov dword [ebp - 0xbc], eax
test eax, eax
pop ecx
je 0x41807f
push dword [ebp - 0xc8]
call fcn.004103b0
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 0x417563
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 0x41752a
mov eax, dword [ebp - 0xbc]
jmp 0x417563
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.0x4139a1.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 0x413d19
cmp dword [esi + 4], ecx
je 0x417644
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.0x4139a1.17
lea ecx, [edi + 0xb8]
jmp 0x417636
cmp dword [esi + 4], ecx
je 0x41766d
add eax, 0x1d8
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne case.0x4139a1.17
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
jmp case.0x4139a1.17
lea eax, [edi + 0xb8]
jmp 0x417656
mov eax, dword [edi + 0xcc]
cmp eax, ecx
je 0x41769e
mov dword [ebp - 0xcc], eax
mov edx, dword [eax + 0x3c]
cmp edx, ecx
je 0x417690
mov eax, edx
jmp 0x41767f
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x4176a7
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov dword [ebp - 0xd0], eax
call fcn.0041c55e
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea esi, [ebx + eax*8]
push esi
call fcn.0041c55e
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.0x4139a1.17
jl 0x4176e6
mov edx, dword [eax]
cmp edx, ecx
jae case.0x4139a1.17
mov dword [eax], ecx
mov eax, dword [ebp - 0xd0]
mov dword [eax + 4], esi
jmp case.0x4139a1.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.0x4139a1.17
jg 0x417661
cmp dword [ebx], ecx
jbe case.0x4139a1.17
jmp 0x417661
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
cmp dword [ebx + eax*8 + 4], ecx
lea ebx, [ebx + eax*8]
jg case.0x4139a1.17
jl 0x417661
cmp dword [ebx], ecx
jae case.0x4139a1.17
jmp 0x417661
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 0x41765b
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 0x4177c2
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xcc]
mov dword [eax + ecx*4], ebx
push dword [ebp - 0xc4]
call fcn.0041379b
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 0x417787
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 0x417830
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 0x417878
lea eax, [ebp - 0xb8]
push eax
call fcn.0041235f
push eax
push 0x4500f4
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411590
mov eax, dword [ebp - 0x8c]
add esp, 0x14
mov dword [ebp - 4], eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004103b0
jmp 0x417947
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.0041046b
pop ecx
mov dword [ebp - 4], eax
test eax, eax
pop ecx
je 0x4178ca
push dword [ebp - 0xd0]
call fcn.0041235f
push eax
push 0x4500f4
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411590
add esp, 0x14
movzx eax, byte [ebp - 0xd8]
push eax
push dword [ebp - 0xd0]
call fcn.00411c86
push dword [ebp - 0xd0]
call fcn.0041c650
add esp, 0xc
jmp 0x417d19
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.004221e8
jmp 0x4170d0
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.00418934
cmp eax, 0x65
pop ecx
mov dword [ebp - 4], eax
jne case.0x4139a1.17
mov esi, dword [esi + 8]
dec esi
and dword [ebp - 4], 0
mov dword [ebp - 0xc], esi
jmp case.0x4139a1.17
cmp dword [esi + 4], ecx
jne 0x41794d
push dword [ebp - 8]
call fcn.0041d1de
pop ecx
jmp case.0x4139a1.17
mov byte [edi + 0x62], 1
jmp case.0x4139a1.17
mov cl, byte [esi + 0xc]
test cl, cl
mov byte [ebp - 0x104], cl
jne 0x41796d
test byte [eax + 0xd], 0x40
jne case.0x4139a1.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.0041c45a
add esp, 0xc
cmp al, 6
mov dword [ebp - 4], eax
jne case.0x4139a1.17
push dword [esi + 0x10]
lea eax, [edi + 0x5c]
push str.database_table_is_locked:__s
push dword [ebp - 8]
push eax
call fcn.00411590
add esp, 0x10
jmp case.0x4139a1.17
mov esi, dword [esi + 0x10]
push esi
mov dword [ebp - 0xd0], esi
push dword [ebp - 8]
call fcn.00422ea6
cmp dword [ebp - 0xd0], 0
pop ecx
pop ecx
mov dword [ebp - 4], eax
je case.0x4139a1.17
push dword [edi + 0x5c]
push dword [ebp - 8]
call fcn.00407f3a
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 0x417df2
lea eax, [edi + 0x5c]
push eax
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.004228b9
add esp, 0x10
jmp 0x414f5c
mov byte [edi + 0x64], 2
push dword [esi + 0x10]
push dword [esi + 4]
push dword [ebp - 8]
call fcn.00422d44
add esp, 0xc
and byte [edi + 0x64], 0
mov dword [ebp - 4], eax
jmp case.0x4139a1.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.00407f3a
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.0x4139a1.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.0041d4ef
add esp, 0x14
mov dword [ebp - 0xd0], eax
test eax, eax
je 0x417ad7
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.0x4139a1.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 0x417947
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 0x417ba7
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.0041379b
pop ecx
mov ecx, dword [ebp - 0xac]
inc ecx
cmp ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xac], ecx
jl 0x417b61
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.00407f3a
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 0x417c0b
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 0x417c1a
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0xb4]
and byte [eax + 0x14], 0
jmp case.0x4139a1.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 0x417c53
push ebx
jmp 0x413d8a
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.004403d0
push dword [ebp - 0xc8]
lea eax, [ebp - 0xb8]
push eax
call fcn.00413717
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.00407f3a
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 0x417ce5
mov dword [ebp - 4], eax
movzx eax, byte [ebp - 0xd8]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00411c86
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xc8]
call fcn.00413717
push dword [ebp - 0xc8]
call fcn.0041c650
add esp, 0x14
test eax, eax
jne 0x4181dc
jmp case.0x4139a1.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.0x4139a1.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.00407f3a
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 0x417da6
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 0x41765b
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.00407f3a
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.0x4139a1.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.0x4139a1.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 0x417e89
push dword [ebp - 0xb4]
call fcn.0041379b
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 0x417e47
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.00407f3a
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 0x417ee4
cmp dword [esi + 4], ecx
je 0x417ee4
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.0x4139a1.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.0040f65b
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xc8], eax
push ecx
push eax
call fcn.0040b000
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
jne case.0x4139a1.17
mov eax, dword [ebp - 0xcc]
jmp 0x413a8e
mov esi, dword [esi + 0x10]
cmp esi, ecx
je 0x417f3e
mov dword [ebp - 0xd0], esi
jmp 0x417f4a
mov edx, dword [edi + 0xb0]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], ecx
je case.0x4139a1.17
cmp dword [eax + 0x94], ecx
lea esi, [eax + 0x94]
je case.0x4139a1.17
push dword [ebp - 0xd0]
push edi
call fcn.0041d1f6
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.00407f3a
add esp, 0x18
inc dword [ebp - 0xc]
cmp dword [ebp - 4], 0
je 0x413904
jmp 0x4180dc
mov dword [ebp - 4], 9
jmp 0x4180dc
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 0x417fd9
push esi
push 0x4500f4
push dword [ebp - 8]
lea eax, [edi + 0x5c]
push eax
call fcn.00411590
add esp, 0x10
push edi
call fcn.0041099f
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x418148
mov dword [edi + 0x58], esi
jmp 0x41810d
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 0x41805a
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00412080
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.0041379b
mov eax, dword [ebp - 0xcc]
pop ecx
inc eax
pop ecx
mov dword [ebp - 0xcc], eax
cmp eax, dword [esi + 8]
jl 0x41801c
mov eax, dword [ebp - 8]
cmp byte [eax + 0x1e], 0
jne 0x41807f
mov eax, dword [ebp - 0xc]
push 0x64
inc eax
pop esi
mov dword [edi + 0x54], eax
jmp 0x41810d
lea eax, [ebp - 0xc0]
push eax
call fcn.004103b0
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.00411590
add esp, 0xc
mov dword [ebp - 4], 7
jmp 0x4180dc
mov dword [ebp - 4], 0x14
mov esi, dword [ebp - 8]
cmp byte [esi + 0x1e], 0
je 0x4180b8
mov dword [ebp - 4], 7
cmp dword [ebp - 4], 0xc0a
je 0x4180dc
push dword [ebp - 4]
call fcn.0043d94a
push eax
push 0x4500f4
push esi
lea eax, [edi + 0x5c]
push eax
call fcn.00411590
add esp, 0x14
mov esi, dword [ebp - 4]
push edi
mov dword [edi + 0x58], esi
call fcn.0041099f
cmp esi, 0xc0a
pop ecx
jne 0x4180f8
mov eax, dword [ebp - 8]
mov byte [eax + 0x1e], 1
cmp byte [ebp + 0xb], 0
push 1
pop esi
je 0x41810d
push 0
push dword [ebp - 8]
call fcn.0041ed3b
pop ecx
pop ecx
add edi, 0x78
push edi
call fcn.00410bc8
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 0x417feb
cmp esi, ecx
je 0x418157
mov esi, dword [ebp - 8]
push esi
call fcn.0043d8a1
pop ecx
mov byte [esi + 0x1c], 1
mov ebx, esi
push ebx
call fcn.0043d5d4
pop ecx
mov esi, dword [edi + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x41810d
push 1
push edi
call fcn.00411535
mov esi, eax
pop ecx
test esi, esi
pop ecx
jne 0x41810d
mov ebx, dword [ebp - 8]
mov al, byte [ebp - 0xd0]
push edi
mov byte [ebx + 0x1c], al
call fcn.0041099f
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x418141
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x54], eax
mov al, 1
sub al, byte [ebp - 0xd0]
mov byte [ebx + 0x1c], al
jmp 0x417feb
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov dword [edi + 0x54], ecx
mov dword [edi + 0x58], eax
jmp 0x41810d
mov dword [ebp - 4], 0xb
jmp 0x4180a8
mov dword [ebp - 4], 0xd
jmp 0x4180a8
push 9
pop eax
push eax
mov dword [ebp - 4], eax
mov dword [edi + 0x58], eax
call fcn.0043d94a
push eax
push 0x4500f4
push dword [ebp - 8]
jmp 0x4180d0
push str.string_or_blob_too_big
lea eax, [edi + 0x5c]
push dword [ebp - 8]
push eax
call fcn.00411590
add esp, 0xc
mov dword [ebp - 4], 0x12
jmp 0x4180dc