Function at 0x458fe0
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x288
push ebx
push ebp
push esi
mov esi, dword [esp + 0x298]
mov ebp, dword [esi + 0x58]
mov edx, dword [esi + 0x5c]
push edi
mov edi, dword [esi]
mov cl, byte [edi + 0x42]
xor eax, eax
push esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov byte [esp + 0x53], al
mov byte [esp + 0x40], cl
mov dword [esp + 0x5c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x20], edx
call fcn.00452bb0
add esp, 4
cmp dword [esi + 0x28], 7
je 0x45a607
xor eax, eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x68], eax
mov ecx, dword [edi + 0xf8]
mov dword [edi + 0x184], eax
test ecx, ecx
jne 0x45dfcc
cmp dword [edi + 0x130], eax
je 0x459073
mov edi, dword [edi + 0x138]
mov eax, dword [esi + 0xb0]
xor edx, edx
div edi
sub edi, edx
mov dword [esp + 0xa0], edi
jmp 0x45907e
mov dword [esp + 0xa0], 0xffffffff
mov esi, dword [esi + 0x24]
lea edx, [esi + esi*4]
lea ebp, [ebp + edx*4]
jmp 0x459090
mov cl, byte [ebp]
inc dword [esp + 0x70]
movzx eax, cl
cmp eax, 0xa4
ja case.0x4590a5.74
jmp dword [eax*4 + 0x45e168]
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov edx, 4
mov word [ecx + 8], dx
mov edx, ebp
sub edx, dword [esp + 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x45da86
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [ebp + ebp*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x30]
lea ebp, [ecx + edx*4]
mov edx, 0x80
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp + 0xc]
dec eax
cdq
mov dword [ecx + 4], edx
mov edx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
cmp dword [ebp + 8], 0
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
lea eax, [ebp + ebp*4]
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ebp, [edx + ecx*4 - 0x14]
mov edx, 0x80
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
mov edx, 4
sub ebp, edi
mov word [ecx + 8], dx
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
lea eax, [esi + esi*4]
lea ebp, [edi + eax*4]
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je case.0x4590a5.74
mov esi, dword [esp + 0x29c]
mov ecx, ebp
sub ecx, dword [esp + 0x30]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp dword [ebp + 4], 0
jne 0x45dbad
mov ecx, dword [esi + 0xc4]
test ecx, ecx
je 0x45dbad
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x18]
dec dword [esi + 0xcc]
mov dword [esi + 0xc4], eax
mov eax, dword [esi + 0x2c]
add dword [edx + 0x5c], eax
mov ebx, ecx
mov dword [edx + 0x58], eax
call fcn.00453570
cmp dword [ebp + 8], 4
jne 0x459233
mov edx, dword [esi + 0x58]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
dec eax
mov ebp, dword [esi + 0x58]
mov ecx, dword [esi + 0x5c]
mov dword [esp + 0x30], ebp
lea edx, [eax + eax*4]
lea ebp, [ebp + edx*4]
mov dword [esp + 0x1c], ecx
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, eax
mov eax, dword [ebp + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov edx, 8
mov word [eax + 8], dx
mov ecx, dword [ebp + 0x10]
fld qword [ecx]
add ebp, 0x14
fstp qword [eax]
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov edi, dword [ebp + 0x10]
mov esi, eax
mov eax, edi
mov byte [ebp], 0x3a
call fcn.00436830
mov bl, byte [esp + 0x3c]
mov dword [ebp + 4], eax
cmp bl, 1
je 0x45933a
push 0
push 1
push edi
or eax, 0xffffffff
mov ecx, esi
call fcn.004510a0
mov dword [esp + 0x20], eax
movzx ecx, bl
add esp, 0xc
mov eax, esi
call fcn.00450460
test eax, eax
jne 0x45a607
mov edx, 0x800
or word [esi + 8], dx
mov bl, 0xf9
mov dword [esi + 0x18], eax
cmp byte [ebp + 1], bl
jne 0x45932b
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
call fcn.00433e80
mov byte [ebp + 1], bl
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x18]
cmp edx, dword [eax + 0x60]
jg 0x45ced0
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, eax
mov edx, 0xa02
mov word [ecx + 8], dx
mov eax, dword [ebp + 0x10]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 4]
mov al, byte [esp + 0x3c]
mov dword [ecx + 0xc], edx
mov byte [ecx + 0xa], al
mov eax, dword [ebp + 0xc]
test eax, eax
jle case.0x4590a5.74
mov edi, dword [esp + 0x1c]
lea esi, [eax + eax*4]
movzx eax, word [ebp + 2]
mov ebx, dword [edi + esi*8]
cdq
cmp ebx, eax
jne case.0x4590a5.74
mov eax, dword [edi + esi*8 + 4]
cmp eax, edx
jne case.0x4590a5.74
mov edx, 0xa10
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov edi, dword [ebp + 0xc]
sub edi, dword [ebp + 8]
mov esi, eax
mov eax, dword [ebp + 4]
neg eax
sbb eax, eax
and eax, 0x100
inc eax
movzx ebx, ax
mov word [esi + 8], bx
mov dword [esi + 0xc], 0
test edi, edi
jle case.0x4590a5.74
mov edi, edi
add esi, 0x28
mov eax, esi
call fcn.00450d70
dec edi
mov word [esi + 8], bx
mov dword [esi + 0xc], 0
test edi, edi
jg 0x4593f0
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov cx, word [eax + 8]
mov edx, 0xff61
and cx, dx
or cx, 1
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov esi, eax
mov eax, dword [ebp + 0x10]
push 0
push 0
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.004510a0
mov cl, byte [esp + 0x48]
add esp, 0xc
mov byte [esi + 0xa], cl
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax + 0x74]
lea esi, [ecx + edx*8 - 0x28]
mov ecx, esi
call fcn.00450f20
test eax, eax
jne 0x45ced0
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
push 0x800
lea ecx, [eax + edx*8]
push esi
push ecx
call fcn.00450f70
add esp, 0xc
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov edi, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + edx*8]
lea esi, [ecx + eax*8]
nop
mov eax, esi
call fcn.00451060
mov ecx, 0x1000
test word [esi + 8], cx
je 0x4594f1
mov eax, esi
call fcn.00450610
test eax, eax
jne 0x45a607
add ebx, 0x28
add esi, 0x28
sub edi, 1
jne 0x4594d0
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
lea ecx, [ecx]
push 0x1000
push edi
push esi
call fcn.00450f70
mov ecx, 0x1000
add esp, 0xc
test word [esi + 8], cx
je 0x459549
mov eax, esi
call fcn.00450610
test eax, eax
jne 0x45a607
mov edx, ebx
dec ebx
test edx, edx
je case.0x4590a5.74
add esi, 0x28
add edi, 0x28
jmp 0x459520
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp + 8]
push 0x1000
lea eax, [eax + eax*4]
push edx
lea ecx, [ecx + eax*8]
push ecx
call fcn.00450f70
add esp, 0xc
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [ebp + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.00450dd0
add esp, 8
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea edi, [esi + ecx*8]
mov cl, byte [edi + 8]
lea edx, [eax + eax*4]
movzx eax, word [ebx + 8]
or cl, al
mov dword [esp + 0x24], ebx
lea esi, [esi + edx*8]
test cl, 1
je 0x4595f5
mov eax, esi
call fcn.00450d70
add ebp, 0x14
jmp 0x459090
test eax, 0x4000
je 0x45960b
mov eax, ebx
call fcn.00450680
test eax, eax
jne 0x45a607
mov edx, 0x4000
test word [edi + 8], dx
je 0x459625
mov eax, edi
call fcn.00450680
test eax, eax
jne 0x45a607
test byte [ebx + 8], 0x12
jne 0x459644
mov eax, dword [esp + 0x3c]
push 0
push eax
mov eax, ebx
call fcn.00450730
add esp, 8
test eax, eax
jne 0x45a607
test byte [edi + 8], 0x12
jne 0x459663
mov ecx, dword [esp + 0x3c]
push 0
push ecx
mov eax, edi
call fcn.00450730
add esp, 8
test eax, eax
jne 0x45a607
mov eax, dword [edi + 0xc]
add eax, dword [ebx + 0xc]
cdq
mov ecx, edx
mov edx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [edx + 0x60]
cdq
cmp ecx, edx
mov dword [esp + 0x240], ebx
jg 0x45ced0
jl 0x45968f
cmp ebx, eax
ja 0x45ced0
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ebx + 2]
mov ebx, esi
call fcn.00450480
add esp, 4
test eax, eax
jne 0x45a607
mov cx, word [esi + 8]
mov edx, 0x3e00
and cx, dx
or cx, 2
mov word [esi + 8], cx
cmp esi, edi
je 0x4596d8
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [esi + 0x10]
push eax
push ecx
push edx
call fcn.00596f90
add esp, 0xc
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push ecx
push edx
push eax
call fcn.00596f90
mov ecx, dword [esi + 0x10]
mov eax, dword [esp + 0x24c]
mov byte [eax + ecx], 0
mov edx, dword [esi + 0x10]
mov byte [edx + eax + 1], 0
mov dl, byte [esp + 0x48]
mov ecx, 0x200
or word [esi + 8], cx
add esp, 0xc
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], dl
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edi
call fcn.00458f50
movzx ecx, ax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea esi, [ebx + edx*8]
mov eax, esi
mov dword [esp + 0x28], ecx
call fcn.00458f50
movzx ecx, ax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov ax, word [esi + 8]
or ax, word [edi + 8]
mov dword [esp + 0x24], ecx
and cl, byte [esp + 0x28]
mov dword [esp + 0x2c], edx
movzx eax, ax
test cl, 4
je 0x459882
mov edx, dword [esi + 4]
mov ebx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x64], edx
movzx edx, byte [ebp]
add edx, 0xffffffa8
mov dword [esp + 0x60], ebx
mov byte [esp + 0x37], 1
cmp edx, 3
ja case.default.0x4597a2
jmp dword [edx*4 + 0x45e3fc]
push ecx
push eax
lea eax, [esp + 0x68]
push eax
call fcn.004379e0
add esp, 0xc
test eax, eax
jne 0x45988f
jmp 0x459855
push ecx
push eax
lea edx, [esp + 0x68]
call fcn.00437a80
add esp, 8
test eax, eax
jne 0x45988f
jmp 0x459855
push ecx
push eax
lea ecx, [esp + 0x68]
push ecx
call fcn.00437ad0
add esp, 0xc
test eax, eax
jne 0x45988f
jmp 0x459855
mov edx, eax
or edx, ecx
je 0x459991
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x459817
test ebx, ebx
jne 0x459817
cmp dword [esp + 0x64], 0x80000000
je 0x45988f
push ecx
push eax
mov eax, dword [esp + 0x6c]
push eax
push ebx
call fcn.005926f0
jmp 0x45984d
mov edx, eax
or edx, ecx
je 0x459991
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x459840
mov eax, 1
xor ecx, ecx
push ecx
push eax
mov eax, dword [esp + 0x6c]
push eax
push ebx
call fcn.0059d760
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [eax], ecx
mov cx, word [eax + 8]
mov dword [eax + 4], edx
mov edx, 0x3e00
and cx, dx
or cx, 4
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x459090
test al, 1
jne 0x459991
mov byte [esp + 0x37], 0
mov edx, edi
call fcn.00450b10
fstp qword [esp + 0x40]
mov edx, esi
call fcn.00450b10
movzx eax, byte [ebp]
add eax, 0xffffffa8
cmp eax, 3
ja case.default.0x4598ad
jmp dword [eax*4 + 0x45e40c]
fadd qword [esp + 0x40]
jmp 0x459931
fsub qword [esp + 0x40]
jmp 0x459931
fmul qword [esp + 0x40]
jmp 0x459931
fldz
fld qword [esp + 0x40]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x45998d
fdivp st(1)
jmp 0x459931
fld qword [esp + 0x40]
call fcn.0059af46
mov esi, eax
mov edi, edx
call fcn.0059af46
mov ecx, esi
or ecx, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
je 0x459991
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x459913
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0059d760
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], edx
fild qword [esp + 0x160]
sub esp, 8
fst qword [esp + 0x48]
fstp qword [esp]
call fcn.004367f0
add esp, 8
test eax, eax
jne 0x459991
mov esi, dword [esp + 0x2c]
fld qword [esp + 0x40]
mov dx, word [esi + 8]
fstp qword [esi]
mov eax, 0x3e00
and dx, ax
mov al, byte [esp + 0x24]
or al, byte [esp + 0x28]
or dx, 8
mov word [esi + 8], dx
test al, 8
jne case.0x4590a5.74
cmp byte [esp + 0x37], 0
jne case.0x4590a5.74
call fcn.00450b30
add ebp, 0x14
jmp 0x459090
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x2c]
call fcn.00450d70
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
test eax, eax
je case.0x4590a5.74
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
push 0
push 0
lea eax, [edx + ecx*8]
call fcn.00450dd0
add esp, 8
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + ecx*8]
mov ecx, dword [ebp + 8]
lea edx, [ecx + ecx*4]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea edx, [eax + edx*8]
lea eax, [eax + ecx*8]
mov cl, byte [edx + 8]
or cl, byte [esi + 8]
mov dword [esp + 0x2c], eax
test cl, 1
je 0x459a06
call fcn.00450d70
add ebp, 0x14
jmp 0x459090
call fcn.00450a90
mov edi, edx
mov edx, esi
mov ebx, eax
call fcn.00450a90
mov esi, eax
mov al, byte [ebp]
cmp al, 0x54
jne 0x459a28
and ebx, esi
and edi, edx
jmp 0x459af8
cmp al, 0x55
jne 0x459a35
or ebx, esi
or edi, edx
jmp 0x459af8
mov ecx, esi
or ecx, edx
je 0x459af8
test edx, edx
jg 0x459a6d
jl 0x459a49
test esi, esi
jae 0x459a62
mov cl, 0xad
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x459a6d
jg 0x459a5b
cmp esi, 0xffffffc0
jbe 0x459a6d
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x459a8e
jg 0x459a6d
cmp esi, 0x40
jb 0x459a8e
test edi, edi
jg 0x459a85
jl 0x459a77
test ebx, ebx
jae 0x459a85
cmp al, 0x56
je 0x459a85
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x459af8
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x459af8
cmp al, 0x56
mov edx, edi
mov ecx, esi
mov eax, ebx
jne 0x459aad
call fcn.005ad010
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
jmp 0x459aea
call fcn.005ad030
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
test edi, edi
jg 0x459aea
jl 0x459aca
test ebx, ebx
jae 0x459aea
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.005ad010
or dword [esp + 0x98], eax
or dword [esp + 0x9c], edx
mov ebx, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x2c]
mov dx, word [eax + 8]
mov ecx, 0x3e00
and dx, cx
or dx, 4
mov dword [eax], ebx
mov dword [eax + 4], edi
mov word [eax + 8], dx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
call fcn.00450ba0
mov eax, dword [ebp + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 8]
lea esi, [edx + ecx*8]
test al, 4
jne 0x459b90
test al, 8
jne 0x459b6c
test al, 2
je 0x459b71
push 1
mov eax, esi
call fcn.00458df0
add esp, 4
jmp 0x459b71
call fcn.00450b30
movzx eax, word [esi + 8]
test al, 4
jne 0x459b90
cmp dword [ebp + 8], 0
jne 0x45da86
mov dword [esp + 0x14], 0x14
jmp 0x45ceec
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea esi, [ecx + eax*8]
je case.0x4590a5.74
call fcn.00450c00
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
mov ecx, 0x4000
test word [esi + 8], cx
je 0x459bee
mov eax, esi
call fcn.00450680
mov dword [esp + 0x14], eax
jmp 0x459bf6
mov dword [esp + 0x14], 0
mov dl, byte [esp + 0x3c]
mov cl, byte [ebp + 8]
mov eax, esi
call fcn.00450cd0
cmp dword [esp + 0x14], 0
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
movzx ecx, word [edi + edx*8 + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
lea ebx, [edi + edx*8]
movzx edx, word [esi + 8]
mov eax, edx
or eax, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edx
test al, 1
je 0x459cb2
movzx eax, word [ebp + 2]
test al, al
jns 0x459c70
mov cl, dl
and cl, byte [esp + 0x20]
test cl, 1
je 0x459d1d
test edx, 0x100
jne 0x459d1d
xor eax, eax
jmp 0x459dc4
test al, 0x20
je 0x459ca2
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov cx, word [edi + edx*8 + 8]
lea eax, [edi + edx*8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov dword [esp + 0x58], 1
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x459090
test al, 0x10
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov cl, byte [ebp + 2]
and cl, 0x47
cmp cl, 0x43
jl 0x459d41
test al, 2
je 0x459cfb
mov al, byte [esp + 0x20]
and al, 0xe
cmp al, 2
jne 0x459ce3
push 0
mov eax, ebx
call fcn.00458df0
movzx ecx, word [esi + 8]
add esp, 4
mov dword [esp + 0x2c], ecx
mov dl, byte [esp + 0x2c]
and dl, 0xe
cmp dl, 2
jne 0x459cfb
push 0
mov eax, esi
call fcn.00458df0
add esp, 4
mov al, byte [ebx + 8]
and al, byte [esi + 8]
test al, 4
je 0x459db8
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 4]
cmp eax, ecx
mov edx, dword [esi]
mov edi, dword [ebx]
jl 0x459d39
jg 0x459d1d
cmp edx, edi
jbe 0x459d27
mov eax, 1
jmp 0x459dc4
cmp eax, ecx
jg 0x459c69
jl 0x459d39
cmp edx, edi
jae 0x459c69
or eax, 0xffffffff
jmp 0x459dc4
cmp cl, 0x42
jne 0x459db8
mov al, byte [esp + 0x20]
test al, 2
jne 0x459d7f
test al, 0xc
je 0x459d7f
mov ecx, dword [esp + 0x3c]
push 1
push ecx
mov eax, ebx
call fcn.00450730
mov ax, word [esp + 0x28]
mov dx, word [ebx + 8]
xor dx, ax
mov ecx, 0x3e00
and dx, cx
add esp, 8
xor ax, dx
mov word [esp + 0x20], ax
mov al, byte [esp + 0x2c]
test al, 2
jne 0x459db8
test al, 0xc
je 0x459db8
mov edx, dword [esp + 0x3c]
push 1
push edx
mov eax, esi
call fcn.00450730
mov ax, word [esp + 0x34]
mov cx, word [esi + 8]
xor cx, ax
mov edx, 0x3e00
and cx, dx
add esp, 8
xor ax, cx
mov word [esp + 0x2c], ax
mov edi, dword [ebp + 0x10]
mov eax, ebx
mov ecx, esi
call fcn.00455460
movzx ecx, byte [ebp]
add ecx, 0xffffffb3
cmp ecx, 4
ja case.default.0x459dd0
jmp dword [ecx*4 + 0x45e41c]
xor edx, edx
test eax, eax
sete dl
jmp 0x459e06
mov edx, eax
jmp 0x459e06
xor edx, edx
test eax, eax
setl dl
jmp 0x459e06
xor edx, edx
test eax, eax
setle dl
jmp 0x459e06
xor edx, edx
test eax, eax
setg dl
jmp 0x459e06
xor edx, edx
test eax, eax
setge dl
movzx ecx, word [esp + 0x20]
mov word [ebx + 8], cx
movzx ecx, word [esp + 0x2c]
mov word [esi + 8], cx
movzx ebx, word [ebp + 2]
test bl, 0x20
je 0x459e71
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x58], eax
xor eax, eax
test edx, edx
lea ecx, [ecx + ecx*4]
setne al
lea ecx, [esi + ecx*8]
test bl, 8
je 0x459e4f
xor edx, edx
cmp byte [ebp], 0x4e
sete dl
cmp edx, eax
je case.0x4590a5.74
mov dx, word [ecx + 8]
mov esi, 0x3e00
and dx, si
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x459090
test edx, edx
jne 0x45da86
add ebp, 0x14
jmp 0x459090
cmp dword [esp + 0x58], 0
jne 0x45da86
add ebp, 0x14
jmp 0x459090
test byte [ebp + 2], 1
jne 0x459e9e
xor edx, edx
jmp 0x459ea4
mov edx, dword [ebp - 4]
add edx, 4
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x40], esi
xor esi, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x24], eax
test ecx, ecx
jle case.0x4590a5.74
lea ecx, [eax + 0x14]
mov dword [esp + 0x28], ecx
jmp 0x459edb
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x459ee4
mov ecx, dword [edx + esi*4]
jmp 0x459ee6
mov ecx, esi
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x28]
mov edi, dword [edx]
movzx edx, byte [esi + eax]
mov eax, dword [esp + 0x40]
add eax, ecx
add ecx, ebx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea eax, [edx + eax*8]
lea ecx, [edx + ecx*8]
call fcn.00455460
mov dword [esp + 0x58], eax
test eax, eax
jne 0x459f30
add dword [esp + 0x28], 4
inc esi
cmp esi, dword [esp + 0x38]
jl 0x459ed3
add ebp, 0x14
jmp 0x459090
cmp dword [esp + 0x5c], 0
je case.0x4590a5.74
mov edx, dword [esp + 0x58]
neg edx
mov dword [esp + 0x58], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x58]
test eax, eax
jge 0x459f6c
mov ebp, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
lea eax, [ebp + ebp*4]
lea ebp, [ecx + eax*4 - 0x14]
add ebp, 0x14
jmp 0x459090
je 0x45da86
mov ebp, dword [ebp + 0xc]
mov edx, dword [esp + 0x30]
lea ecx, [ebp + ebp*4]
lea ebp, [edx + ecx*4 - 0x14]
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea edx, [edi + eax*8]
je 0x459fa4
mov esi, 2
jmp 0x459fb6
call fcn.00450a90
or eax, edx
je 0x459fb4
mov esi, 1
jmp 0x459fb6
xor esi, esi
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 8], 1
lea edx, [edi + ecx*8]
je 0x459fcd
mov eax, 2
jmp 0x459fdf
call fcn.00450a90
or eax, edx
je 0x459fdd
mov eax, 1
jmp 0x459fdf
xor eax, eax
cmp byte [ebp], 0x47
jne 0x459ff2
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x5fd1c4]
jmp 0x459ffd
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x5fd208]
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
cmp eax, 2
jne 0x45a027
mov dx, word [ecx + 8]
mov eax, 0x3e00
and dx, ax
or dx, 1
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x459090
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
mov dword [ecx], eax
mov eax, 0x3e00
and dx, ax
or dx, 4
mov word [ecx + 8], dx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea edi, [esi + ecx*8]
lea esi, [esi + edx*8]
mov eax, esi
call fcn.00450d70
test byte [edi + 8], 1
jne case.0x4590a5.74
mov eax, 4
mov edx, edi
mov word [esi + 8], ax
call fcn.00450a90
or eax, edx
jne 0x45a097
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea edi, [esi + ecx*8]
lea esi, [esi + edx*8]
mov eax, esi
call fcn.00450d70
test byte [edi + 8], 1
jne case.0x4590a5.74
mov eax, 4
mov edx, edi
mov word [esi + 8], ax
call fcn.00450a90
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov edi, dword [eax + 0xc4]
test edi, edi
je 0x45a159
mov ecx, ebp
sub ecx, dword [eax + 0x58]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
and esi, 7
mov ebx, 1
mov ecx, esi
mov edx, eax
mov eax, dword [edi + 0x18]
shl ebx, cl
shr edx, 3
test byte [edx + eax], bl
jne 0x45da86
mov ecx, eax
add edx, ecx
mov al, 1
mov ecx, esi
shl al, cl
or byte [edx], al
mov eax, dword [esp + 0x29c]
mov eax, dword [eax + 0x58]
mov ecx, dword [eax + 4]
mov dword [ebp + 4], ecx
add ebp, 0x14
jmp 0x459090
mov ecx, dword [eax + 0x58]
mov edx, dword [ecx + 4]
cmp edx, dword [ebp + 4]
je 0x45da86
mov eax, ecx
mov ecx, dword [eax + 4]
mov dword [ebp + 4], ecx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
test byte [eax + edx*8 + 8], 1
lea edx, [eax + edx*8]
je 0x45a191
mov eax, dword [ebp + 0xc]
jmp 0x45a1bb
call fcn.00450b10
fcomp qword [0x6094b8]
fnstsw ax
test ah, 0x44
jnp 0x45a1aa
mov eax, 1
jmp 0x45a1ac
xor eax, eax
cmp byte [ebp], 0x16
jne 0x45a1bb
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
test byte [eax + edx*8 + 8], 1
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x45da86
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x29c]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax + 2], 0
je case.0x4590a5.74
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.00450d70
jmp 0x45da86
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x29c]
mov ecx, dword [esi + 0x70]
mov edx, dword [ecx + eax*4]
mov eax, dword [ebp + 8]
mov dword [esp + 0xd4], edx
lea ecx, [esp + 0x74]
lea edx, [esp + 0xd4]
mov dword [esp + 0x74], eax
call fcn.00454b90
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0xd4]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [edi + 0x48]
mov dword [esp + 0x2c], edx
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x28], eax
cmp edx, dword [esi + 0x20]
je 0x45a398
cmp byte [edi + 2], 0
je 0x45a2cc
cmp byte [edi], 3
jne 0x4595e8
mov eax, dword [edi + 0x28]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*8 + 0xc]
lea eax, [ecx + eax*8]
mov dword [edi + 0x54], ebx
mov dword [edi + 0x50], ebx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xe4], ebx
mov dword [edi + 0x4c], ecx
jmp 0x45a310
mov ebx, dword [edi + 0x28]
mov eax, ebx
call fcn.00448f00
mov edx, dword [ebx + 0x1c]
mov dword [edi + 0x50], edx
lea esi, [esp + 0xe4]
mov edx, ebx
call fcn.00449470
mov ebx, dword [esp + 0xe4]
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x50]
cmp eax, ebx
ja 0x45a300
mov dword [edi + 0x54], eax
jmp 0x45a310
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 0x60]
ja 0x45ced0
mov dword [edi + 0x54], ebx
mov edx, dword [esp + 0x29c]
mov eax, dword [edx + 0x20]
mov dword [edi + 0x1c], eax
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x45a337
movzx eax, al
mov dword [esp + 0xdc], eax
mov ecx, 1
jmp 0x45a34d
lea esi, [esp + 0xdc]
call fcn.00437820
movzx ecx, al
mov eax, dword [esp + 0xdc]
movzx ecx, cl
mov dword [edi + 0x30], ecx
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov word [edi + 0x3a], dx
mov dword [ecx], eax
cmp ebx, eax
jae 0x45a388
mov dword [edi + 0x4c], edx
mov dword [edi + 0x54], edx
cmp eax, 0x18003
ja 0x45a375
cmp eax, dword [edi + 0x50]
jbe 0x45a39c
mov eax, 0x13e1b
call fcn.004a4e20
mov dword [esp + 0x14], eax
jmp 0x45ceec
test eax, eax
jbe 0x45a39c
mov eax, dword [edi + 0x4c]
mov dword [esp + 0x20], eax
jmp 0x45a43a
mov ecx, dword [esp + 0x2c]
movzx edx, word [edi + 0x3a]
mov eax, dword [esp + 0x74]
cmp edx, eax
jg 0x45a584
mov eax, dword [edi + 0x30]
cmp eax, dword [ecx]
jae 0x45a548
cmp dword [edi + 0x4c], 0
jne 0x45a433
xor eax, eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov ecx, dword [ecx]
mov edx, dword [edi + 0x28]
push eax
lea eax, [esp + 0x1c4]
call fcn.00451380
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x20], ecx
jmp 0x45a43a
mov edx, dword [edi + 0x4c]
mov dword [esp + 0x20], edx
movzx esi, word [edi + 0x3a]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x20]
mov ebx, dword [edi + 0x30]
mov eax, dword [eax]
add ebx, edx
add eax, edx
mov dword [esp + 0x40], eax
lea eax, [edi + esi*4 + 0x58]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x38], eax
mov edi, edi
movzx eax, byte [ebx]
mov dword [esp + 0x50], eax
cmp eax, 0x80
jae 0x45a496
movzx edx, al
movzx eax, byte [edx + 0x5fd120]
cdq
inc ebx
add ecx, eax
adc dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
jmp 0x45a4c0
lea esi, [esp + 0x50]
mov ecx, ebx
call fcn.00437820
movzx eax, al
add ebx, eax
mov eax, dword [esp + 0x50]
call fcn.00454d00
add dword [esp + 0x78], eax
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
adc dword [esp + 0x7c], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov dword [eax], edx
add eax, 4
inc esi
cmp esi, dword [esp + 0x74]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + esi*4], ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0x5c], esi
jg 0x45a4ed
cmp ebx, eax
jb 0x45a470
jmp 0x45a4f1
cmp ebx, eax
jb 0x45a510
cmp ebx, eax
ja 0x45dd7c
mov eax, dword [edi + 0x50]
xor edx, edx
cmp ecx, eax
jne 0x45dd7c
cmp dword [esp + 0x7c], edx
jne 0x45dd7c
mov edx, dword [edi + 0x50]
xor eax, eax
cmp dword [esp + 0x7c], eax
ja 0x45dd7c
jb 0x45a529
cmp ecx, edx
ja 0x45dd7c
sub ebx, dword [esp + 0x20]
mov word [edi + 0x3a], si
mov dword [edi + 0x30], ebx
cmp dword [edi + 0x4c], 0
jne 0x45a550
lea eax, [esp + 0x1c0]
call fcn.004509e0
jmp 0x45a550
mov dword [esp + 0x50], 0
movzx ecx, word [edi + 0x3a]
mov esi, dword [esp + 0x74]
cmp ecx, esi
jg 0x45a590
cmp byte [ebp + 1], 0xf5
mov eax, dword [esp + 0x28]
jne 0x4595e8
mov edx, dword [ebp + 0x10]
push 0x800
push edx
push eax
call fcn.00450f70
add esp, 0xc
add ebp, 0x14
jmp 0x459090
mov ecx, dword [edi + eax*4 + 0x58]
mov esi, dword [esp + 0x74]
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0x28]
mov edx, 0x2460
test word [ebx + 8], dx
je 0x45a5a6
mov eax, ebx
call fcn.00450d70
mov ecx, dword [edi + 0x54]
mov eax, dword [esp + 0x2c]
cmp ecx, dword [eax + esi*4 + 4]
jb 0x45a694
mov ecx, dword [edi + 0x4c]
add ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
cmp edx, 0xc
jae 0x45a5d9
mov eax, ebx
call fcn.00454e30
add ebp, 0x14
jmp 0x459090
lea esi, [edx - 0xc]
mov dl, byte [esp + 0x3c]
shr esi, 1
lea eax, [esi + 2]
cmp dword [ebx + 0x18], eax
mov dword [ebx + 0xc], esi
mov byte [ebx + 0xa], dl
jge 0x45a652
mov ecx, 1
push 0
mov word [ebx + 8], cx
call fcn.00450480
add esp, 4
test eax, eax
je 0x45a658
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x45], 0
jne 0x45a634
cmp byte [eax + 0x46], 0
jne 0x45a634
cmp dword [eax + 0xa8], 0
mov byte [eax + 0x45], 1
jle 0x45a62e
mov dword [eax + 0xf8], 1
inc dword [eax + 0x100]
mov esi, dword [esp + 0x29c]
push str.out_of_memory
call fcn.004519d0
mov dword [esp + 0x18], 7
jmp 0x45cee9
mov edx, dword [ebx + 0x14]
mov dword [ebx + 0x10], edx
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x10]
mov edi, dword [esp + 0x50]
push esi
push eax
push ecx
call fcn.00596f90
mov edx, dword [ebx + 0x10]
mov byte [esi + edx], 0
mov eax, dword [ebx + 0x10]
and edi, 1
mov byte [esi + eax + 1], 0
mov cx, word [edi*2 + 0x5fd214]
add esp, 0xc
mov word [ebx + 8], cx
add ebp, 0x14
jmp 0x459090
mov dl, byte [esp + 0x3c]
mov byte [ebx + 0xa], dl
movzx eax, word [ebp + 2]
mov edx, dword [esp + 0x50]
test al, 0xc0
je 0x45a6b5
cmp edx, 0xc
jb 0x45a6b1
test dl, 1
je 0x45a6c2
test al, al
js 0x45a6c2
mov eax, edx
call fcn.00454d00
mov ecx, eax
test ecx, ecx
jne 0x45a6d6
mov eax, ebx
mov ecx, 0x67244c
call fcn.00454e30
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + esi*4]
push edx
mov edx, dword [edi + 0x28]
mov eax, ebx
call fcn.00451380
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.00454e30
mov eax, 0xefff
and word [esi + 8], ax
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov al, byte [esi]
lea edi, [edx + ecx*8]
push ebx
mov ecx, edi
call fcn.00458e70
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x45a730
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8 - 0x28]
mov edx, dword [esp + 0x29c]
mov dword [esp + 0x24], eax
movzx eax, byte [edx + 0x8f]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0xfc], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], eax
test esi, esi
je 0x45a7ca
mov al, byte [esi]
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, ebx
call fcn.00458e70
mov al, byte [esi + 1]
inc esi
add esp, 4
add ebx, 0x28
test al, al
jne 0x45a7b0
mov esi, dword [esp + 0x24]
mov edi, edi
mov edx, dword [esp + 0x38]
push edx
lea ebx, [esp + 0xac]
mov edx, esi
call fcn.00454be0
mov ebx, eax
mov eax, 0x4000
add esp, 4
mov dword [esp + 0x28], ebx
mov dword [esi + 0x1c], ebx
test word [esi + 8], ax
je 0x45a834
mov ecx, edi
or ecx, dword [esp + 0xfc]
je 0x45a816
mov eax, esi
call fcn.00450680
test eax, eax
jne 0x45a607
jmp 0x45a834
mov ecx, dword [esi]
mov ebx, dword [esp + 0x28]
mov eax, ecx
cdq
add dword [esp + 0x88], eax
adc dword [esp + 0x8c], edx
sub dword [esp + 0xa8], ecx
add edi, dword [esp + 0xa8]
adc dword [esp + 0xfc], 0
cmp ebx, 0x7f
ja 0x45a84f
mov eax, 1
jmp 0x45a85a
push 0
push ebx
call fcn.004378a0
add esp, 8
mov ebx, dword [esp + 0x20]
add ebx, eax
mov dword [esp + 0x20], ebx
cmp esi, dword [esp + 0x40]
je 0x45a872
sub esi, 0x28
jmp 0x45a7d0
cmp ebx, 0x7e
jle 0x45a89a
mov eax, ebx
cdq
push edx
push eax
call fcn.004378a0
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
mov dword [esp + 0x30], ebx
call fcn.004378a0
add esp, 0x10
cmp esi, eax
jge 0x45a89f
inc ebx
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0xfc]
mov eax, ebx
cdq
add edi, eax
adc ecx, edx
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x18]
mov esi, edi
add esi, dword [esp + 0x88]
mov dword [esp + 0x120], eax
mov eax, dword [edx + 0x60]
adc ecx, dword [esp + 0x8c]
cdq
cmp ecx, edx
mov dword [esp + 0x228], edi
jg 0x45ced0
jl 0x45a8ec
cmp esi, eax
ja 0x45ced0
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x18], edi
jge 0x45a936
push 0
mov eax, edi
mov ebx, esi
call fcn.00450480
add esp, 4
test eax, eax
jne 0x45a607
mov ebx, dword [esp + 0x20]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x38], esi
cmp ebx, 0x80
jae 0x45a943
mov eax, 1
movzx eax, al
mov byte [esi], bl
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x20], eax
jmp 0x45a978
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
jmp 0x45a90f
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x120]
push ecx
push edx
call fcn.00437650
movzx eax, al
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x48]
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x45a978
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x28], ecx
cmp ecx, 0x80
jae 0x45a991
mov byte [eax + esi], cl
mov eax, 1
jmp 0x45a9a2
push 0
push ecx
add esi, eax
call fcn.00437650
mov ecx, dword [esp + 0x30]
add esp, 8
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x5c]
movzx eax, al
add dword [esp + 0x20], eax
lea edi, [esi + edx]
mov eax, ebx
call fcn.00454d20
add esi, eax
add ebx, 0x28
mov dword [esp + 0x5c], esi
cmp ebx, dword [esp + 0x24]
jbe 0x45a970
mov ecx, dword [esp + 0x228]
mov eax, dword [esp + 0x2c]
mov edx, 0x10
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x88]
mov word [eax + 8], dx
mov edx, ecx
or edx, dword [esp + 0x8c]
je case.0x4590a5.74
mov dword [eax], ecx
mov ecx, 0x4010
mov word [eax + 8], cx
add ebp, 0x14
jmp 0x459090
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x29c]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x28]
lea edx, [esp + 0x100]
xor edi, edi
push edx
mov dword [esp + 0x104], edi
mov dword [esp + 0x108], edi
call fcn.0044de60
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x45ceec
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov dword [eax], ecx
mov dword [eax + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ebx
test eax, eax
jne 0x45ab3c
cmp dword [esi + 0xa4], eax
jg 0x45db07
mov eax, ebx
call fcn.00436830
mov ebx, eax
mov eax, dword [esi + 0x1b4]
add eax, dword [esi + 0x1b0]
push eax
push 0
push esi
call fcn.00492620
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
push eax
lea ecx, [ebx + 0x21]
push ecx
mov eax, esi
call fcn.004341b0
mov edi, eax
add esp, 8
test edi, edi
je 0x459c04
mov edx, dword [esp + 0x24]
inc ebx
push ebx
lea eax, [edi + 0x20]
push edx
push eax
mov dword [edi], eax
call fcn.00596f90
add esp, 0xc
cmp byte [esi + 0x43], 0
je 0x45aafe
mov byte [esi + 0x43], 0
mov byte [esi + 0x4b], 1
jmp 0x45ab04
inc dword [esi + 0x1b0]
mov eax, dword [esi + 0x1a8]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x1b8]
mov dword [esi + 0x1a8], edi
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x1bc]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x1c0]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x1c4]
mov dword [edi + 0x14], ecx
jmp 0x459c04
mov edi, dword [esi + 0x1a8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x40], edi
test edi, edi
je 0x45ab6e
mov ecx, dword [edi]
mov eax, ebx
call fcn.00436b40
test eax, eax
je 0x45ab90
mov edi, dword [edi + 0x18]
inc dword [esp + 0x20]
mov dword [esp + 0x40], edi
test edi, edi
jne 0x45ab52
mov esi, dword [esp + 0x29c]
push ebx
push str.no_such_savepoint:__s
call fcn.004519d0
add esp, 8
mov dword [esp + 0x14], 1
jmp 0x45ceec
mov eax, dword [esp + 0x28]
xor ebx, ebx
cmp dword [esi + 0xa4], ebx
jle 0x45aba7
cmp eax, 1
je 0x45db25
cmp dword [edi + 0x18], ebx
jne 0x45ac0a
cmp byte [esi + 0x4b], 0
je 0x45ac0a
mov dword [esp + 0x2c], 1
cmp eax, 1
jne 0x45ac0e
mov esi, dword [esp + 0x29c]
push eax
mov eax, esi
call fcn.00454290
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, ebx
jne 0x45e13a
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x29c]
mov byte [esi + 0x43], 1
call fcn.00454300
cmp eax, 5
je 0x45dda1
mov byte [esi + 0x4b], 0
mov edx, dword [edi + 0x28]
mov dword [esp + 0x14], edx
jmp 0x45acca
mov dword [esp + 0x2c], ebx
mov ecx, dword [esi + 0x1b0]
sub ecx, dword [esp + 0x20]
dec ecx
mov dword [esp + 0x20], ecx
cmp eax, 2
jne 0x45ac74
mov eax, dword [esi + 0x18]
shr eax, 0x17
and eax, 1
xor ebx, ebx
cmp dword [esi + 0x14], ebx
mov dword [esp + 0x24], eax
jle 0x45ac78
xor edx, edx
test eax, eax
sete dl
xor edi, edi
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + edi + 4]
push eax
push 0x204
push edx
call fcn.00448920
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
inc ebx
add edi, 0x10
cmp ebx, dword [esi + 0x14]
jl 0x45ac43
jmp 0x45ac78
mov dword [esp + 0x24], ebx
xor ebx, ebx
cmp dword [esi + 0x14], ebx
jle 0x45acae
xor edi, edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + edi + 4]
push eax
mov eax, dword [esp + 0x2c]
call fcn.00448bf0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
inc ebx
add edi, 0x10
cmp ebx, dword [esi + 0x14]
jl 0x45ac81
cmp dword [esp + 0x24], 0
je 0x45acca
mov eax, esi
call fcn.00456230
mov eax, esi
call fcn.0046ef90
or dword [esi + 0x18], 0x800000
mov edi, dword [esp + 0x40]
cmp dword [esi + 0x1a8], edi
je 0x45ad3e
jmp 0x45ace0
cmp dword [esi + 0x1c8], 0
mov eax, dword [esi + 0x1a8]
mov edx, dword [eax + 0x18]
mov dword [esi + 0x1a8], edx
je 0x45ad01
mov ecx, esi
call fcn.00433e00
jmp 0x45ad30
cmp eax, dword [esi + 0x120]
jb 0x45ad27
cmp eax, dword [esi + 0x124]
jae 0x45ad27
mov ecx, dword [esi + 0x11c]
mov dword [eax], ecx
dec dword [esi + 0x108]
mov dword [esi + 0x11c], eax
jmp 0x45ad30
push eax
call fcn.00433d90
add esp, 4
dec dword [esi + 0x1b0]
cmp dword [esi + 0x1a8], edi
jne 0x45ace0
mov ebx, dword [esp + 0x28]
cmp ebx, 1
jne 0x45ad6c
mov edx, dword [edi + 0x18]
mov eax, edi
mov ecx, esi
mov dword [esi + 0x1a8], edx
call fcn.00433e80
cmp dword [esp + 0x2c], 0
jne 0x459c04
dec dword [esi + 0x1b0]
jmp 0x45ada0
cmp dword [esp + 0x2c], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x1b8], eax
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x1bc], ecx
mov edx, dword [edi + 0x10]
mov dword [esi + 0x1c0], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x1c4], eax
je 0x45ada0
cmp ebx, 2
jne 0x459c04
mov ecx, dword [esp + 0x20]
push ecx
push ebx
push esi
call fcn.00492620
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x45addb
test dword [edi + 0x18], 0x80000
jne 0x45dee1
mov edx, dword [ebp + 4]
mov ecx, dword [edi + 0x10]
shl edx, 4
mov ebx, dword [edx + ecx + 4]
test ebx, ebx
je 0x45aebe
push eax
push ebx
call fcn.00447b50
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45deee
mov esi, dword [esp + 0x29c]
cmp dword [ebp + 8], eax
je 0x45ae98
test byte [esi + 0x94], 0x40
je 0x45ae98
cmp byte [edi + 0x43], al
je 0x45ae31
cmp dword [edi + 0xa0], 1
jle 0x45ae98
cmp dword [esi + 0x30], 0
jne 0x45ae4e
inc dword [edi + 0x1b4]
mov eax, dword [edi + 0x1b4]
mov edx, dword [edi + 0x1b0]
add edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
dec eax
push eax
push 0
push edi
call fcn.00492620
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ae74
mov eax, dword [esi + 0x30]
mov ecx, ebx
call fcn.00448b90
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x1b8]
mov dword [esi + 0x48], ecx
mov edx, dword [edi + 0x1bc]
mov dword [esi + 0x4c], edx
mov eax, dword [edi + 0x1c0]
mov dword [esi + 0x50], eax
mov ecx, dword [edi + 0x1c4]
mov dword [esi + 0x54], ecx
lea edx, [esp + 0xa4]
push edx
push 1
mov eax, ebx
call fcn.0044dd90
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x10]
add esp, 8
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x45aed2
mov esi, dword [esp + 0x29c]
mov dword [esp + 0xa4], 0
xor eax, eax
cmp word [ebp + 2], 0
je 0x45aef2
mov ecx, dword [esp + 0xa4]
cmp ecx, dword [ebp + 0xc]
jne 0x45db43
cmp eax, dword [ebp + 0x10]
jne 0x45db43
cmp dword [esp + 0x14], 0
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x118]
push edx
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
call fcn.0044dd90
mov edx, dword [esp + 0x2a4]
add esp, 8
mov eax, ebp
call fcn.00458fb0
mov ecx, eax
mov eax, dword [esp + 0x118]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ebp, 0x14
jmp 0x459090
mov esi, dword [ebp + 4]
mov edi, dword [esp + 0x18]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
shl esi, 4
add esi, dword [edi + 0x10]
push ecx
mov eax, dword [esi + 4]
push edx
call fcn.0044ddf0
mov edx, eax
mov eax, dword [ebp + 8]
add esp, 8
mov dword [esp + 0x14], edx
cmp eax, 1
jne 0x45af8e
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
or dword [edi + 0x18], 0x800000
jmp 0x45af9c
cmp eax, 2
jne 0x45af9c
mov eax, dword [esi + 0xc]
mov cl, byte [ebp + 0xc]
mov byte [eax + 0x4c], cl
cmp dword [ebp + 4], 1
jne 0x45afb7
mov eax, edi
call fcn.00456230
mov eax, dword [esp + 0x29c]
and dword [eax + 0x94], 0xfffffffe
test edx, edx
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, dword [ebp + 4]
mov esi, dword [edx + 0x70]
mov esi, dword [esi + eax*4]
test esi, esi
je 0x45aff0
mov eax, dword [esi + 0x34]
cmp eax, dword [ebp + 8]
je 0x45b0e6
jmp 0x45aff0
mov edx, dword [esp + 0x29c]
test byte [edx + 0x94], 1
jne 0x45df21
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov eax, esi
shl eax, 4
add eax, dword [ebx + 0x10]
xor edi, edi
mov ebx, dword [eax + 4]
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], ebx
cmp cl, 0x69
jne 0x45b049
movzx ebx, word [ebp + 2]
mov ecx, dword [eax + 0xc]
mov al, byte [ecx + 0x4c]
and ebx, 8
or ebx, 4
cmp al, byte [edx + 0x8f]
jae 0x45b04b
mov byte [edx + 0x8f], al
jmp 0x45b04b
xor ebx, ebx
test byte [ebp + 2], 0x10
je 0x45b06e
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
call fcn.00450ba0
mov ecx, dword [esi]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x28], ecx
mov al, byte [ebp + 1]
cmp al, 0xf7
jne 0x45b088
mov eax, dword [ebp + 0x10]
movzx edi, word [eax + 8]
movzx edx, word [eax + 6]
mov dword [esp + 0x24], eax
add edi, edx
jmp 0x45b08f
cmp al, 0xfd
jne 0x45b08f
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push 0
push esi
push edi
mov edi, dword [esp + 0x2a8]
push eax
call fcn.00458d10
mov esi, eax
add esp, 0x10
test esi, esi
je 0x45a607
mov ecx, dword [esi + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
or dword [esi + 8], 4
push ecx
mov ecx, dword [esp + 0x3c]
push edi
push ebx
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.00448d60
add esp, 0xc
mov dword [esi + 0x2c], edi
cmp byte [ebp + 1], 0xf7
mov dword [esp + 0x14], eax
setne dl
mov byte [esi + 4], dl
mov al, byte [ebp + 2]
mov ecx, dword [esi + 0x28]
and al, 3
cmp dword [esp + 0x14], 0
mov byte [ecx + 0x43], al
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edi, dword [esp + 0x29c]
mov edx, dword [ebp + 8]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
movsx ecx, word [esi + 0x38]
mov edx, dword [ebp + 4]
push 0
push 0xffffffffffffffff
push ecx
push edx
call fcn.00458d10
add esp, 0x10
test eax, eax
je 0x45a607
or dword [eax + 8], 1
mov byte [eax + 2], 1
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x2c], ecx
mov dl, byte [esi + 4]
mov ecx, dword [eax + 0x28]
mov byte [eax + 4], dl
mov edx, dword [eax + 0x2c]
push ecx
mov ecx, dword [esi + 0xc]
push edx
push 4
mov eax, 1
call fcn.00448d60
add esp, 0xc
mov dword [esp + 0x14], eax
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
mov edi, dword [esp + 0x29c]
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.00458d10
mov esi, eax
add esp, 0x10
test esi, esi
je 0x45a607
or dword [esi + 8], 1
mov byte [esi + 2], 1
movzx edx, word [ebp + 2]
push 0x41e
or edx, 5
push edx
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
lea edi, [esi + 0xc]
push 0
push eax
mov ecx, edi
call fcn.00446b10
add esp, 0x10
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov ecx, dword [edi]
push 1
push ecx
call fcn.00447b50
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov ebx, dword [ebp + 0x10]
mov dword [esi + 0x2c], ebx
test ebx, ebx
je 0x45b22e
movzx edx, word [ebp + 2]
or edx, 2
push edx
lea eax, [esp + 0x130]
push eax
mov eax, dword [edi]
call fcn.0044d840
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45b228
mov ecx, dword [esi + 0x28]
mov eax, dword [esp + 0x12c]
push ecx
mov ecx, dword [edi]
push ebx
push 4
call fcn.00448d60
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 0
jmp 0x45b24d
mov edx, dword [esi + 0x28]
mov ecx, dword [edi]
push edx
push 0
push 4
mov eax, 1
call fcn.00448d60
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [esi + 4], 1
cmp dword [esp + 0x14], 0
jne 0x45ceec
xor eax, eax
cmp word [ebp + 2], 8
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
add ebp, 0x14
jmp 0x459090
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x29c]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.00458d10
add esp, 0x10
test eax, eax
je 0x45a607
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x2c], ecx
mov edx, dword [ebp + 0xc]
push eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.0045f870
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x29c]
mov eax, dword [edx + 0x70]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, ecx
or eax, edx
je 0x45da86
add ebp, 0x14
jmp 0x459090
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov edi, dword [esp + 0x29c]
push 3
push 0xffffffffffffffff
push ecx
push edx
call fcn.00458d10
add esp, 0x10
test eax, eax
je 0x45a607
mov byte [eax + 2], 1
mov ecx, dword [ebp + 8]
mov dword [eax + 0x28], ecx
mov byte [eax + 4], 1
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + edx*4]
push esi
call fcn.004534d0
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x70]
add esp, 4
mov dword [edx + ecx*4], 0
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov ecx, dword [ebp + 4]
mov edx, dword [edx + 0x70]
mov esi, dword [edx + ecx*4]
xor edi, edi
cmp byte [esi + 4], 0
mov ebx, eax
mov dword [esp + 0x28], edi
mov byte [esi + 2], 0
je 0x45b443
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
and dl, 0xe
cmp dl, 2
jne 0x45b3b0
push 0
mov eax, edi
call fcn.00458df0
add esp, 4
mov edx, edi
call fcn.00450a90
mov dword [esp + 0xe8], eax
movzx eax, word [edi + 8]
mov dword [esp + 0xec], edx
test al, 4
jne 0x45b3fe
test al, 8
je 0x45da86
fild qword [esp + 0xe8]
fcom qword [edi]
fnstsw ax
test ah, 0x41
jne 0x45b3ef
fstp st(0)
test bl, 1
je 0x45b3fe
dec ebx
jmp 0x45b3fe
fcomp qword [edi]
fnstsw ax
test ah, 5
jp 0x45b3fe
test bl, 1
jne 0x45b3fe
inc ebx
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0xe8]
mov edx, dword [esi + 0x28]
lea eax, [esp + 0x54]
push eax
push 0
push ecx
push edi
push 0
push edx
call fcn.00449790
mov ecx, dword [esp + 0x104]
add esp, 0x18
mov dword [esp + 0x14], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ecx
test eax, eax
jne 0x45ceec
xor edi, edi
jmp 0x45b4cf
mov edx, dword [esi + 0x28]
test byte [edx + 0x43], 2
je 0x45b454
mov dword [esp + 0x28], 1
mov eax, dword [esi + 0x2c]
mov cx, word [ebp + 0x10]
test bl, 1
sete dl
mov dword [esp + 0x138], eax
mov eax, dword [ebp + 0xc]
mov word [esp + 0x140], cx
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov byte [esp + 0x146], 0
lea edx, [edx + edx - 1]
mov byte [esp + 0x142], dl
lea edx, [ecx + eax*8]
lea eax, [esp + 0x54]
push eax
push edi
push edi
push edi
lea ecx, [esp + 0x148]
mov dword [esp + 0x14c], edx
mov edx, dword [esi + 0x28]
push ecx
push edx
call fcn.00449790
add esp, 0x18
mov dword [esp + 0x14], eax
cmp eax, edi
jne 0x45ceec
cmp dword [esp + 0x28], edi
je 0x45b4cf
cmp byte [esp + 0x146], 0
je 0x45b53e
cmp ebx, 0x1a
mov eax, dword [esp + 0x54]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], edi
jl 0x45b523
cmp eax, edi
jl 0x45b4f0
jne 0x45b4ea
cmp ebx, 0x1b
je 0x45b4f0
mov dword [esp + 0x54], edi
jmp 0x45b54a
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [esp + 0x5c], edi
call fcn.00449dd0
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x45b54a
cmp eax, 0x65
jne 0x45ceec
mov dword [esp + 0x14], edi
mov dword [esp + 0x54], 1
jmp 0x45da86
cmp eax, edi
jg 0x45b55f
jne 0x45b52e
cmp ebx, 0x18
je 0x45b55f
mov ecx, dword [esi + 0x28]
xor edx, edx
cmp byte [ecx + 0x42], 1
setne dl
mov dword [esp + 0x54], edx
cmp dword [esp + 0x54], edi
jne 0x45da86
xor edi, edi
cmp dword [esp + 0x28], edi
je case.0x4590a5.74
add ebp, 0x14
add ebp, 0x14
jmp 0x459090
mov eax, dword [esi + 0x28]
push edi
push eax
mov dword [esp + 0x5c], edi
call fcn.00449f50
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x45b54a
cmp eax, 0x65
jmp 0x45b50c
cmp dword [ebp + 0x10], 0
mov edx, dword [esp + 0x29c]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
jle 0x45b5ce
mov eax, dword [edi + 0x2c]
mov cx, word [ebp + 0x10]
mov dword [esp + 0x230], eax
mov word [esp + 0x238], cx
mov dword [esp + 0x234], ebx
lea esi, [esp + 0x230]
mov dword [esp + 0x24], 0
jmp 0x45b613
mov edx, 0x4000
test word [ebx + 8], dx
je 0x45b5e8
mov eax, ebx
call fcn.00450680
test eax, eax
jne 0x45a607
mov esi, dword [edi + 0x2c]
call fcn.00454fc0
mov esi, eax
mov dword [esp + 0x24], esi
test esi, esi
je 0x45a607
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov edx, dword [edi + 0x2c]
push esi
push eax
push ecx
push edx
call fcn.00455020
add esp, 0x10
mov byte [esi + 0xa], 0
xor ebx, ebx
cmp byte [ebp], 0x1c
jne 0x45b647
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 8]
jae 0x45b647
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x45b642
movzx edx, word [esi + 8]
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x45b62f
jmp 0x45b647
mov ebx, 1
mov ecx, dword [edi + 0x28]
lea eax, [esp + 0x134]
push eax
push 0
push 0
push 0
push esi
push ecx
call fcn.00449790
mov esi, eax
mov eax, dword [esp + 0x3c]
add esp, 0x18
mov dword [esp + 0x14], esi
test eax, eax
je 0x45b679
mov ecx, dword [esp + 0x18]
call fcn.00433e40
test esi, esi
jne 0x45ceec
mov ecx, dword [esp + 0x134]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
sub dl, al
mov dword [edi + 0x20], ecx
mov byte [edi + 2], dl
mov byte [edi + 3], 0
mov dword [edi + 0x1c], esi
cmp byte [ebp], 0x1e
jne 0x45b6b6
test eax, eax
jne 0x45da86
add ebp, 0x14
jmp 0x459090
test ebx, ebx
jne 0x45da86
test eax, eax
je 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x45b70e
test al, 8
jne 0x45b6f9
test al, 2
je 0x45b6fe
push 1
mov eax, esi
call fcn.00458df0
add esp, 4
jmp 0x45b6fe
call fcn.00450b30
test byte [esi + 8], 4
je 0x45da86
jmp 0x45b70e
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x29c]
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x28]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
lea edx, [esp + 0xc4]
push edx
push 0
push ebx
push edi
push 0
push ecx
mov dword [esp + 0xdc], 0
call fcn.00449790
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xdc]
add esp, 0x18
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x1c], 0
mov byte [esi + 3], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x45b78f
cmp dword [ebp + 8], 0
jne 0x45da86
mov eax, 0x144af
call fcn.004a4e20
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x70]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x10]
mov dword [eax], edx
mov ecx, dword [ecx + 0x14]
mov dword [eax + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + edx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
xor edi, edi
xor ebx, ebx
mov eax, ebp
mov edx, esi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x84], edi
call fcn.00458fb0
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x70]
mov esi, dword [edx + ecx*4]
test byte [esi + 8], 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], esi
jne 0x45b87f
mov eax, dword [esi + 0x28]
lea edi, [esp + 0x84]
call fcn.00449740
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [esp + 0x84], eax
je 0x45b844
lea ebx, [eax + 1]
xor edi, edi
jmp 0x45b877
mov edi, dword [esi + 0x28]
mov eax, edi
call fcn.00448f00
mov ebx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
cmp edi, 0x7fffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
jl 0x45b871
jg 0x45b86b
cmp ebx, 0xffffffff
jb 0x45b871
or dword [esi + 8], 2
jmp 0x45b87f
add ebx, 1
adc edi, 0
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x45b90e
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax + 0xc4]
test ecx, ecx
je 0x45b8b6
mov eax, dword [ecx + 4]
test eax, eax
je 0x45b8ab
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x45b8a2
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x45b8c0
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x1c]
lea esi, [edx + ecx*8]
call fcn.00450ba0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x45b8db
cmp ecx, 0x7fffffff
je 0x45b98b
mov edx, dword [esp + 0x24]
test byte [edx + 8], 2
jne 0x45b98b
add eax, 1
adc ecx, 0
cmp edi, ecx
jg 0x45b905
jl 0x45b8f9
cmp ebx, eax
jae 0x45b905
mov ebx, eax
mov edi, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], edi
mov dword [esi], ebx
mov dword [esi + 4], edi
mov esi, dword [esp + 0x24]
test byte [esi + 8], 2
je 0x45b998
mov dword [esp + 0x24], 0
lea eax, [esp + 0x68]
push eax
push 8
call fcn.00435e20
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edx, dword [esi + 0x28]
lea ecx, [esp + 0x8c]
push ecx
and edi, 0x3fffffff
add ebx, 1
push 0
adc edi, 0
push edi
push ebx
push 0
push edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], edi
call fcn.00449790
add esp, 0x20
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [esp + 0x84], eax
jne 0x45b998
mov eax, dword [esp + 0x24]
inc eax
cmp eax, 0x64
mov dword [esp + 0x24], eax
jl 0x45b920
mov dword [esp + 0x14], 0xd
jmp 0x45ceec
mov eax, dword [esp + 0x2c]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [eax], ebx
mov dword [eax + 4], edi
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x29c]
mov edi, dword [ebx + 0x70]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
mov edi, dword [edi + eax*4]
mov eax, dword [ebp + 0xc]
xor esi, esi
cmp cl, 0x74
jne 0x45b9eb
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
mov edx, dword [edx + ecx*8 + 4]
jmp 0x45b9ec
cdq
cmp byte [ebp + 1], 0xfa
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1a4], edx
mov dword [esp + 0x1a0], eax
jne 0x45ba41
cmp dword [ecx + 0xdc], 0
je 0x45ba41
movsx esi, byte [edi + 1]
mov ebx, dword [ecx + 0x10]
shl esi, 4
mov esi, dword [esi + ebx]
mov bl, byte [ebp + 2]
mov dword [esp + 0x40], esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x24], esi
and bl, 4
movzx esi, bl
mov ebx, dword [esp + 0x29c]
neg esi
sbb esi, esi
and esi, 5
add esi, 0x12
jmp 0x45ba51
mov dword [esp + 0x24], 0
mov dword [esp + 0x40], 0
test byte [ebp + 2], 1
je 0x45ba5a
inc dword [ebx + 0x2c]
test byte [ebp + 2], 0x20
je 0x45ba66
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov ebx, dword [esp + 0x38]
movzx edx, word [ebx + 8]
test dl, 1
je 0x45ba7e
xor eax, eax
mov dword [esp + 0x1a8], eax
jmp 0x45ba8b
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1b4], eax
movzx eax, word [ebp + 2]
test al, 0x10
je 0x45ba9f
mov ecx, dword [edi + 0x20]
jmp 0x45baa1
xor ecx, ecx
test edx, 0x4000
je 0x45bab4
mov edx, dword [ebx]
mov dword [esp + 0x1b8], edx
jmp 0x45babf
mov dword [esp + 0x1b8], 0
push ecx
and eax, 0xa
push eax
mov eax, dword [edi + 0x28]
push eax
lea ebx, [esp + 0x1a4]
mov dword [esp + 0x1a4], 0
call fcn.0044cf80
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x14], eax
mov byte [edi + 3], cl
mov dword [edi + 0x1c], ecx
cmp eax, ecx
jne 0x45ceec
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xdc]
test eax, eax
je case.0x4590a5.74
test esi, esi
je case.0x4590a5.74
mov edx, dword [esp + 0x1a4]
mov ecx, dword [ecx + 0xd8]
push edx
mov edx, dword [esp + 0x1a4]
push edx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
push edx
mov edx, dword [esp + 0x4c]
push edx
push esi
push ecx
call eax
add esp, 0x18
add ebp, 0x14
jmp 0x459090
cmp byte [ebp + 1], 0xfa
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x29c]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], edx
mov edx, dword [ecx + 0x70]
mov esi, dword [edx + eax*4]
jne 0x45bba9
cmp dword [edi + 0xdc], 0
je 0x45bba9
movsx eax, byte [esi + 1]
mov ecx, dword [edi + 0x10]
mov ebx, dword [ebp + 0x10]
shl eax, 4
test byte [ebp + 2], 2
mov edx, dword [eax + ecx]
mov dword [esp + 0x24], edx
je 0x45bbaf
cmp byte [esi + 4], 0
je 0x45bbaf
mov eax, dword [esi + 0x28]
mov dword [esp + 0x40], eax
call fcn.00448f00
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x40], ecx
mov edx, dword [eax + 0x14]
mov dword [esi + 0x44], edx
jmp 0x45bbaf
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov eax, dword [esi + 0x28]
push eax
mov al, byte [ebp + 2]
call fcn.0044d2c0
xor ecx, ecx
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], ecx
cmp eax, ecx
jne 0x45ceec
test byte [esp + 0x38], 1
je case.0x4590a5.74
mov eax, dword [esp + 0x29c]
inc dword [eax + 0x2c]
mov eax, dword [edi + 0xdc]
test eax, eax
je case.0x4590a5.74
test byte [ebx + 0x24], 0x20
jne case.0x4590a5.74
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x40]
push ecx
mov ecx, dword [ebx]
push edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [edi + 0xd8]
push edx
push 9
push ecx
call eax
add esp, 0x18
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov ecx, dword [edx + 0x2c]
mov eax, dword [esp + 0x18]
add dword [eax + 0x5c], ecx
mov dword [eax + 0x58], ecx
mov dword [edx + 0x2c], 0
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + edx*8]
mov edx, dword [ebp + 0x10]
lea esi, [esp + 0xc8]
push esi
push edx
push ecx
mov dword [esp + 0xd4], 0
call fcn.00461b80
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [esp + 0xc8], eax
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x29c]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [eax + edx*8]
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + edx*4]
call fcn.00461ae0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x70]
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x1c], 0
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov edx, dword [esi + 0x70]
mov ecx, dword [ebp + 4]
mov edi, eax
mov eax, dword [edx + ecx*4]
mov esi, dword [eax + 0x28]
mov eax, esi
call fcn.00448f00
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0x60]
ja 0x45ced0
push 0
mov eax, edi
mov edx, esi
call fcn.00451380
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [ebp + 0xc], eax
jne case.0x4590a5.74
mov eax, 0x1000
test word [edi + 8], ax
je case.0x4590a5.74
mov eax, edi
call fcn.00450610
test eax, eax
jne 0x45a607
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi + 2], 0
mov ebx, eax
je 0x45bd9c
mov eax, 1
mov word [ebx + 8], ax
add ebp, 0x14
jmp 0x459090
cmp byte [esi + 3], 0
je 0x45bdca
mov ecx, dword [esi + 0x40]
mov dword [esp + 0xb8], ecx
mov edx, dword [esi + 0x44]
mov dword [esp + 0xbc], edx
mov dword [ebx], ecx
mov edx, dword [esp + 0xbc]
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x459090
cmp byte [esi], 2
jne 0x45be1d
mov esi, dword [esi + 0x28]
mov edi, dword [esi]
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
lea ecx, [esp + 0xb8]
push ecx
push esi
call edx
mov esi, eax
mov eax, dword [esp + 0x2a4]
push eax
mov dword [esp + 0x20], esi
call fcn.00456300
add esp, 0xc
test esi, esi
jne 0x45ceec
mov ecx, dword [esp + 0xb8]
mov dword [ebx], ecx
mov edx, dword [esp + 0xbc]
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, esi
call fcn.00454b70
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp byte [esi + 2], al
je 0x45be46
mov ecx, 1
mov word [ebx + 8], cx
add ebp, 0x14
jmp 0x459090
mov esi, dword [esi + 0x28]
mov eax, esi
call fcn.00448f00
mov edx, dword [esi + 0x10]
mov dword [esp + 0xb8], edx
mov eax, dword [esi + 0x14]
mov dword [esp + 0xbc], eax
mov ecx, edx
mov dword [ebx], ecx
mov edx, dword [esp + 0xbc]
mov dword [ebx + 4], edx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx + 0x70]
mov eax, dword [edx + eax*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x1c], 0
jne case.0x4590a5.74
mov esi, dword [eax + 0x28]
call fcn.004453b0
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x29c]
mov eax, dword [ebp + 4]
mov edx, dword [ecx + 0x70]
mov esi, dword [edx + eax*4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x20], ecx
cmp dword [ebp + 0xc], 0
mov dword [esp + 0xd0], 0
je 0x45bee2
cmp byte [eax + 0x42], 1
je case.0x4590a5.74
lea edi, [esp + 0xd0]
call fcn.00449740
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x14], eax
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x45ceec
cmp dword [ebp + 8], eax
jle case.0x4590a5.74
test ecx, ecx
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax + 0x70]
mov edx, dword [ebp + 4]
mov edx, dword [ecx + edx*4]
mov esi, dword [edx + 0x28]
lea edi, [esp + 0xd8]
mov eax, esi
call fcn.00449710
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [esp + 0xd8], eax
jne 0x45da86
push esi
call fcn.00449c50
add esp, 4
test edx, edx
jl case.0x4590a5.74
jg 0x45bf7d
test eax, eax
jb case.0x4590a5.74
push edx
push eax
call fcn.00437c50
cwde
add esp, 8
cmp eax, dword [ebp + 0xc]
jge case.0x4590a5.74
mov dword [esp + 0xd8], 1
jmp 0x45da86
mov eax, dword [esp + 0x29c]
inc dword [eax + 0xa8]
jmp 0x45bfb7
mov eax, dword [esp + 0x29c]
mov ecx, dword [ebp + 4]
mov edx, dword [eax + 0x70]
mov esi, dword [edx + ecx*4]
cmp byte [esi], 1
mov dword [esp + 0xac], 1
lea edi, [esp + 0xac]
jne 0x45bfe0
mov ecx, esi
call fcn.00461a00
jmp 0x45bff3
mov eax, dword [esi + 0x28]
call fcn.00449710
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov eax, dword [esp + 0xac]
mov byte [esi + 2], al
test eax, eax
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x29c]
mov ecx, dword [edi + 0x70]
mov esi, dword [ecx + eax*4]
mov edx, dword [esp + 0x18]
push edx
mov eax, esi
call fcn.00461a50
add esp, 4
mov dword [esp + 0x14], eax
jmp 0x45c07b
mov edi, dword [esp + 0x29c]
mov eax, dword [ebp + 4]
mov ecx, dword [edi + 0x70]
cmp dword [ecx + eax*4], 0
je case.0x4590a5.74
jmp 0x45c05e
mov edi, dword [esp + 0x29c]
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x70]
mov esi, dword [eax + edx*4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x28]
mov eax, dword [ebp + 0x10]
push ecx
push edx
call eax
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x45c0a0
mov byte [esi + 2], al
movzx ecx, word [ebp + 2]
inc dword [edi + ecx*4 + 0xa0]
lea eax, [edi + ecx*4 + 0xa0]
jmp case.0x4590a5.13
cmp eax, 0x65
jne 0x45ceec
mov dword [esp + 0x14], 0
mov byte [esi + 2], 1
jmp 0x45d61b
test byte [ebp + 2], 1
mov ecx, dword [esp + 0x29c]
mov edx, dword [ebp + 4]
mov eax, dword [ecx + 0x70]
mov edi, dword [eax + edx*4]
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
lea esi, [ebx + edx*8]
je 0x45c0e0
inc dword [ecx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x45c0fe
mov eax, esi
call fcn.00450680
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp byte [ebp], 0x7d
jne 0x45c111
push esi
mov eax, edi
call fcn.00460960
add esp, 4
jmp 0x45c177
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
cdq
mov dword [esp + 0x250], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x254], edx
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
mov dword [esp + 0x25c], eax
movzx eax, word [ebp + 2]
mov dword [esp + 0x248], ecx
mov cx, word [ebp + 0x10]
mov word [esp + 0x260], cx
test al, 0x10
je 0x45c156
mov ecx, dword [edi + 0x20]
jmp 0x45c158
xor ecx, ecx
mov edx, dword [edi + 0x28]
push ecx
and eax, 0xa
push eax
push edx
lea ebx, [esp + 0x254]
call fcn.0044cf80
add esp, 0xc
mov dword [edi + 0x1c], 0
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx + 0x70]
mov eax, dword [ebp + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov cx, word [ebp + 0xc]
mov dword [esp + 0x208], eax
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov word [esp + 0x210], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x11c]
push edx
push 0
push 0
push 0
lea eax, [esp + 0x218]
push eax
push edi
mov byte [esp + 0x22a], 0
mov dword [esp + 0x224], ecx
call fcn.00449790
add esp, 0x18
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp dword [esp + 0x11c], eax
jne 0x45c21b
push edi
mov al, 4
call fcn.0044d2c0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add ebp, 0x14
jmp 0x459090
mov edi, dword [esp + 0x29c]
mov ecx, dword [ebp + 4]
mov edx, dword [edi + 0x70]
mov esi, dword [edx + ecx*4]
mov eax, esi
call fcn.00454b70
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
cmp byte [esi + 2], al
jne 0x45c2ea
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0xb0]
push eax
mov eax, dword [esi + 0x28]
xor ebx, ebx
push ecx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
call fcn.00456020
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, ebx
jne 0x45ceec
cmp byte [ebp], 0x80
jne 0x45c2c6
mov edx, dword [ebp + 0xc]
mov eax, dword [edi + 0x70]
mov eax, dword [eax + edx*4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov byte [eax + 2], bl
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edx
mov byte [eax + 3], 1
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x24], esi
add ebp, 0x14
jmp 0x459090
mov eax, ebp
mov edx, edi
call fcn.00458fb0
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [eax], edx
mov dword [eax + 4], ecx
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea eax, [eax + edx*8]
call fcn.00450d70
add ebp, 0x14
jmp 0x459090
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x29c]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x2c]
cmp cl, 0x28
sbb cl, cl
mov dword [esp + 0x218], edx
mov dx, word [ebp + 0x10]
mov byte [esp + 0x222], cl
mov ecx, dword [ebp + 0xc]
mov word [esp + 0x220], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + edx*8]
lea ecx, [esp + 0x218]
mov dword [esp + 0x21c], edx
mov edx, dword [esp + 0x18]
push ecx
push edx
lea edi, [esp + 0x88]
mov dword [esp + 0x88], 0
call fcn.00456170
mov ecx, dword [esp + 0x88]
add esp, 8
test byte [ebp], 1
mov dword [esp + 0x14], eax
jne 0x45c386
neg ecx
jmp 0x45c387
inc ecx
mov dword [esp + 0x80], ecx
test eax, eax
jne 0x45ceec
test ecx, ecx
jg 0x45da86
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov edi, eax
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xac]
inc ecx
cmp dword [eax + 0xa0], ecx
jg 0x45df2e
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov eax, dword [eax + 0x10]
lea edx, [esp + 0xe0]
push edx
mov edx, ebx
shl edx, 4
mov eax, dword [edx + eax + 4]
push ecx
mov dword [esp + 0xe8], 0
call fcn.0044dd40
mov esi, dword [esp + 0xe8]
mov ecx, eax
mov edx, 4
mov eax, esi
mov word [edi + 8], dx
cdq
add esp, 8
mov dword [esp + 0x14], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
test ecx, ecx
jne 0x45ceec
test esi, esi
je case.0x4590a5.74
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
mov eax, ebx
call fcn.00471600
inc bl
mov byte [esp + 0x4f], bl
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 4]
neg eax
sbb eax, eax
lea ecx, [esp + 0xc0]
and eax, ecx
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov dword [esp + 0xc4], 0
mov eax, dword [edx + ecx + 4]
call fcn.0044da70
add esp, 4
cmp dword [ebp + 0xc], 0
mov esi, eax
mov dword [esp + 0x14], esi
je 0x45c4bc
mov ecx, dword [esp + 0x29c]
mov eax, dword [esp + 0xc0]
add dword [ecx + 0x2c], eax
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x45c4bc
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx + edx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
test esi, esi
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov edx, dword [ebp + 4]
mov ecx, dword [eax + 0x70]
mov eax, dword [ecx + edx*4]
cmp byte [eax], 1
jne 0x45c4f9
mov edx, dword [esp + 0x18]
mov esi, dword [eax + 0x28]
push edx
call fcn.0045fd60
add esp, 4
add ebp, 0x14
jmp 0x459090
mov eax, dword [eax + 0x28]
mov ebx, dword [eax + 0x34]
mov eax, dword [eax]
push 0
call fcn.0044da70
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [ebp + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebp], 0x87
mov eax, dword [eax + 4]
setne cl
lea edx, [esp + 0xcc]
mov dword [esp + 0xcc], 0
inc ecx
push ecx
push edx
call fcn.0044d840
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov eax, dword [esp + 0xcc]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x18]
inc byte [esi + 0x4e]
mov eax, dword [ebp + 0x10]
push 0
push 0
push 0
push eax
push esi
call fcn.0047ec70
dec byte [esi + 0x4e]
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x29c]
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
add ecx, 0x6c
push edx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x158], ecx
mov ecx, dword [edi + 0x10]
shl eax, 4
mov dword [esp + 0x154], edi
mov edx, dword [eax + ecx]
push str.sqlite_master
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.00435ba0
mov esi, eax
add esp, 0x10
test esi, esi
je 0x45db9c
push 0
lea eax, [esp + 0x154]
push eax
push fcn.00482bb0
push esi
push edi
mov byte [edi + 0x99], 1
mov dword [esp + 0x170], 0
call fcn.0047ec70
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x45c649
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov eax, esi
mov ecx, edi
call fcn.00433e40
mov byte [edi + 0x99], 0
test ebx, ebx
je case.0x4590a5.74
mov eax, edi
call fcn.0046ef90
cmp ebx, 7
je 0x45a607
jmp 0x45ceec
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x18]
call fcn.0046d420
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x18]
push edx
call fcn.0046f300
add esp, 4
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [ebp + 4]
push ecx
call fcn.0046ed50
add esp, 8
add ebp, 0x14
jmp 0x459090
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
push edx
push eax
mov eax, dword [ebp + 4]
call fcn.0048e7b0
add esp, 8
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0x130]
push eax
mov eax, dword [esi]
inc eax
push eax
push ecx
movzx ecx, word [ebp + 2]
push edx
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
call fcn.0044e9f0
mov ebx, eax
add esp, 0x10
mov eax, edi
call fcn.00450d70
mov eax, dword [esp + 0x130]
test eax, eax
je 0x45c765
test ebx, ebx
je 0x45a607
dec eax
cdq
sub dword [esi], eax
push fcn.00433d90
push 1
sbb dword [esi + 4], edx
push ebx
or eax, 0xffffffff
mov ecx, edi
call fcn.004510a0
add esp, 0xc
movzx ecx, byte [esp + 0x3c]
mov eax, edi
call fcn.00450460
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
lea esi, [ecx + edx*8]
mov bl, 0x20
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
test byte [esi + 8], bl
jne 0x45c7a4
call fcn.00450e70
test byte [esi + 8], bl
je 0x45a607
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov esi, dword [esi]
push ecx
push edx
call fcn.0043d330
add esp, 8
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 8], 0x20
lea edi, [ebx + eax*8]
je 0x45c809
mov eax, dword [edi]
lea esi, [esp + 0x148]
call fcn.0043d640
test eax, eax
je 0x45c809
mov ecx, dword [esp + 0x14c]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x148]
push ecx
lea eax, [eax + eax*4]
push edx
lea eax, [ebx + eax*8]
call fcn.00450dd0
add esp, 8
jmp 0x45d61b
mov eax, edi
call fcn.00450d70
jmp case.0x4590a5.13
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebp + 0xc]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x45c844
call fcn.00450e70
test byte [esi + 8], 0x20
je 0x45a607
test ebx, ebx
je 0x45c86a
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov eax, dword [esi]
push ecx
push edx
push ebx
call fcn.0043d690
add esp, 0xc
test eax, eax
jne 0x45da86
test ebx, ebx
jl case.0x4590a5.74
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov esi, dword [esi]
push eax
push ecx
call fcn.0043d330
add esp, 8
add ebp, 0x14
jmp 0x459090
cmp word [ebp + 2], 0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov esi, dword [esp + 0x29c]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edx, [eax + edx*8]
mov dword [esp + 0x28], edx
je 0x45c8c6
mov eax, dword [esi + 0xc4]
mov ecx, dword [ebx + 0x14]
test eax, eax
je 0x45c8c6
cmp dword [eax + 0x1c], ecx
je case.0x4590a5.74
mov eax, dword [eax + 4]
test eax, eax
jne 0x45c8b2
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0xcc]
mov eax, dword [esp + 0x18]
cmp ecx, dword [eax + 0x88]
jge 0x45df42
test byte [edx + 8], 0x40
jne 0x45c9c7
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
mov dword [esp + 0x20], eax
test ecx, ecx
jne 0x45c8fb
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0xc]
lea ecx, [eax + eax*4 + 0xa]
mov eax, dword [ebx + 4]
add eax, 7
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
cdq
push edx
push eax
mov eax, dword [esp + 0x20]
call fcn.004340d0
mov edi, eax
add esp, 8
test edi, edi
je 0x45a607
mov eax, dword [esp + 0x28]
call fcn.004509e0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
sub ebp, dword [esp + 0x30]
mov dword [eax], edi
mov edx, 0x40
mov word [eax + 8], dx
mov dword [edi + 0x3c], ecx
mov dword [edi], esi
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x30], eax
mov edx, dword [esi + 0x5c]
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0x18]
mov dword [edi + 0x38], eax
mov edx, dword [esi + 0x70]
mov dword [edi + 0x14], edx
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x2c], eax
mov edx, dword [esi + 0x58]
mov dword [edi + 8], edx
mov eax, dword [esi + 0x88]
mov dword [edi + 0x34], eax
mov edx, dword [ebx + 0x14]
lea eax, [ecx + ecx*4 + 0xa]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
mov dword [edi + 0x1c], edx
cmp eax, ecx
je 0x45c9c9
mov edx, dword [esp + 0x18]
mov ebp, 0x80
mov word [eax + 8], bp
mov dword [eax + 0x20], edx
add eax, 0x28
cmp eax, ecx
jne 0x45c9b2
jmp 0x45c9c9
mov edi, dword [edx]
inc dword [esi + 0xcc]
mov ecx, dword [esi + 0xc4]
mov eax, dword [esp + 0x18]
mov dword [edi + 4], ecx
mov edx, dword [eax + 0x20]
mov dword [edi + 0x20], edx
mov eax, dword [eax + 0x24]
mov dword [edi + 0x24], eax
mov ecx, dword [esi + 0x2c]
mov dword [edi + 0x44], ecx
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov dword [edi + 0x48], eax
mov ecx, dword [esi + 0xd8]
mov dword [edi + 0x28], ecx
mov dword [esi + 0xc4], edi
xor ebp, ebp
mov dword [esi + 0xd8], ebp
mov dword [esi + 0x2c], ebp
lea eax, [edi + 0x50]
mov dword [esi + 0x5c], eax
mov edx, dword [edi + 0x3c]
mov dword [esi + 0x18], edx
movzx ecx, word [edi + 0x40]
mov dword [esi + 0x1c], ecx
mov ecx, edx
mov dword [esp + 0x1c], eax
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
mov dword [esi + 0x70], eax
mov ecx, dword [ebx + 0xc]
lea ecx, [eax + ecx*4]
mov dword [edi + 0x18], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push ebp
push ecx
call fcn.00591690
mov ebp, dword [ebx]
mov dword [esi + 0x58], ebp
mov edx, dword [ebx + 4]
mov dword [esp + 0x3c], ebp
add ebp, 0xffffffec
add esp, 0xc
mov dword [esi + 0x88], edx
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x29c]
mov eax, ebp
mov edx, esi
call fcn.00458fb0
mov edx, dword [esi + 0xc4]
mov ecx, dword [edx + 0x30]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
mov ecx, dword [esi + ecx*4 + 4]
add ecx, dword [ebp + 4]
push 0x1000
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
push ecx
push eax
call fcn.00450f70
add esp, 0xc
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x18], 0x40000
mov eax, dword [ebp + 8]
cdq
je 0x45cadd
add dword [ecx + 0x1c0], eax
adc dword [ecx + 0x1c4], edx
add ebp, 0x14
jmp 0x459090
cmp dword [ebp + 4], 0
je 0x45caf7
add dword [ecx + 0x1b8], eax
adc dword [ecx + 0x1bc], edx
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x29c]
add dword [ecx + 0x40], eax
adc dword [ecx + 0x44], edx
add ebp, 0x14
jmp 0x459090
cmp dword [ebp + 4], 0
je 0x45cb2a
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x1b8]
or edx, dword [eax + 0x1bc]
jne case.0x4590a5.74
jmp 0x45cb41
mov eax, dword [esp + 0x29c]
mov edx, dword [eax + 0x40]
or edx, dword [eax + 0x44]
jne case.0x4590a5.74
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x1c0]
or ecx, dword [eax + 0x1c4]
je 0x45da86
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov ecx, dword [edx + 0xc4]
test ecx, ecx
je 0x45cb8a
mov eax, dword [ecx + 4]
test eax, eax
je 0x45cb7c
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x45cb73
mov eax, dword [ebp + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x45cb97
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea edi, [eax + edx*8]
mov esi, edi
call fcn.00450ba0
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.00450ba0
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x4590a5.74
jl 0x45cbcc
mov edx, dword [edi]
cmp edx, eax
jae case.0x4590a5.74
mov dword [edi], eax
mov dword [edi + 4], esi
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
test esi, esi
jl case.0x4590a5.74
jg 0x45cbff
test edi, edi
jbe case.0x4590a5.74
mov eax, dword [ebp + 0xc]
cdq
sub edi, eax
sbb esi, edx
mov dword [ecx], edi
mov dword [ecx + 4], esi
jmp 0x45da86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
mov edx, dword [esp + 0x29c]
lea edi, [ecx + eax*8]
mov eax, ebp
call fcn.00458fb0
mov ebx, eax
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], esi
test esi, esi
jl 0x45cc98
jg 0x45cc54
test eax, eax
jbe 0x45cc98
mov eax, dword [edi]
mov edi, dword [edi + 4]
test edi, edi
jl 0x45cc63
jg 0x45cc67
test eax, eax
ja 0x45cc67
xor eax, eax
xor edi, edi
push edi
push eax
lea ecx, [esp + 0xf8]
push ecx
call fcn.004379e0
add esp, 0xc
test eax, eax
jne 0x45cc98
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xf4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
add ebp, 0x14
jmp 0x459090
mov dword [ebx], 0xffffffff
mov dword [ebx + 4], 0xffffffff
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea edx, [edx + ecx*8]
mov ecx, dword [edx + 4]
mov esi, eax
or esi, ecx
je case.0x4590a5.74
test ecx, ecx
jl 0x45da86
jg 0x45ccdc
test eax, eax
jbe 0x45da86
sub eax, 1
sbb ecx, 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x45da86
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 4]
cmp ecx, 0x80000000
jl 0x45cd18
jg 0x45cd0d
test edx, edx
jbe 0x45cd18
sub edx, 1
sbb ecx, 0
mov dword [eax], edx
mov dword [eax + 4], ecx
mov edx, dword [eax]
or edx, dword [eax + 4]
je 0x45da86
add ebp, 0x14
jmp 0x459090
movzx ebx, word [ebp + 2]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.004341b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x45a607
mov dword [ecx + 8], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x29c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], ecx
mov byte [ebp], 0x95
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
cmp dword [edi + 8], esi
je 0x45cdc8
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], esi
js 0x45cdc8
lea edx, [edi + ecx*4 + 0x1c]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x45cdb3
inc dword [esi + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x290], edx
mov dword [esp + 0x288], 0
mov ecx, 1
mov word [esp + 0x278], cx
mov ecx, dword [edi + 4]
lea eax, [esp + 0x270]
mov dword [edi], eax
movzx eax, byte [edi + 0x1a]
lea edx, [edi + 0x1c]
push edx
push eax
mov byte [edi + 0x19], 0
mov byte [edi + 0x18], 0
mov ecx, dword [ecx + 0xc]
push edi
call ecx
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x45ce63
cmp dword [edi + 0x14], 0
je 0x45ce4c
lea edx, [esp + 0x270]
push edx
call fcn.004568a0
mov esi, dword [esp + 0x2a0]
add esp, 4
push eax
push 0x6032e0
call fcn.004519d0
mov eax, dword [edi + 0x14]
add esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x270]
call fcn.004509e0
cmp dword [esp + 0x14], 0
jne 0x45ceec
cmp byte [edi + 0x18], 0
je case.0x4590a5.74
mov eax, dword [ebp - 0x10]
test eax, eax
je case.0x4590a5.74
lea ecx, [eax + eax*4]
push 0
push 1
lea eax, [ebx + ecx*8]
call fcn.00450dd0
add esp, 8
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
mov eax, esi
call fcn.00450820
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45df59
movzx ecx, byte [esp + 0x3c]
mov eax, esi
call fcn.00450460
mov ecx, esi
call fcn.00450f20
test eax, eax
je case.0x4590a5.74
mov esi, dword [esp + 0x29c]
push str.string_or_blob_too_big
call fcn.004519d0
mov dword [esp + 0x18], 0x12
add esp, 4
mov ebx, dword [esp + 0x18]
cmp byte [ebx + 0x45], 0
je 0x45cefe
mov dword [esp + 0x14], 7
mov esi, dword [esp + 0x29c]
cmp dword [esi + 0x6c], 0
jne 0x45e04b
mov eax, dword [esp + 0x14]
cmp eax, 0xc0a
je 0x45e04b
mov ecx, str.unknown_error
cmp eax, 0x204
je 0x45e038
and eax, 0xff
cmp eax, 0x1a
ja 0x45e03d
mov eax, dword [eax*4 + 0x600298]
test eax, eax
je 0x45e03d
mov ecx, eax
jmp 0x45e03d
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x18]
or eax, 0xffffffff
lea ecx, [esp + 0x114]
push ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], eax
mov eax, dword [ebp + 4]
push edx
xor edi, edi
push eax
lea ecx, [esp + 0x11c]
mov dword [esp + 0x118], edi
call fcn.004a3a90
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x45cfaf
cmp eax, 5
jne 0x45ceec
mov dword [esp + 0x14], edi
mov dword [esp + 0x10c], 1
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
xor esi, esi
lea edi, [edx + ecx*8]
mov edi, edi
mov eax, dword [esp + esi*4 + 0x10c]
cdq
push edx
push eax
mov eax, edi
call fcn.00450dd0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x45cfc0
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov edi, dword [ebp + 0xc]
mov ebx, eax
mov eax, dword [ebp + 4]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ecx, byte [esi + 5]
mov dword [esp + 0x20], ecx
cmp edi, 0xffffffff
jne 0x45d021
mov edi, ecx
cmp byte [esi + 0x11], 3
jae 0x45d03d
mov edx, dword [esi + 0x44]
cmp dword [edx], 0
je 0x45d041
cmp dword [esi + 0x54], 0
jl 0x45d041
jg 0x45d03d
cmp dword [esi + 0x50], 0
jbe 0x45d041
mov edi, dword [esp + 0x20]
cmp byte [esi + 0x10], 0
mov eax, 0x6021c6
jne 0x45d052
mov eax, dword [esi + 0xb0]
cmp edi, 5
jne 0x45d074
call fcn.00436830
test eax, eax
je 0x45d06b
mov eax, esi
call fcn.004423f0
test eax, eax
jne 0x45d074
mov edi, dword [esp + 0x20]
jmp 0x45d0f9
mov eax, dword [esp + 0x20]
cmp edi, eax
je 0x45d0f9
cmp eax, 5
je 0x45d08e
cmp edi, 5
jne 0x45d0f9
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x43], 0
je 0x45df7c
cmp dword [ecx + 0xa0], 1
jg 0x45df7c
cmp eax, 5
jne 0x45d0c7
mov eax, ecx
push eax
mov eax, esi
call fcn.00442560
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45d100
mov eax, edi
jmp 0x45d0d1
cmp eax, 4
jne 0x45d0d8
mov eax, 2
mov ecx, esi
call fcn.00442240
cmp dword [esp + 0x14], 0
jne 0x45d100
mov eax, dword [esp + 0x24]
xor ecx, ecx
cmp edi, 5
sete cl
inc ecx
push ecx
call fcn.0044f030
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x45d104
mov edi, dword [esp + 0x20]
mov eax, edi
mov ecx, esi
call fcn.00442240
mov edx, 0xa02
mov word [ebx + 8], dx
cmp eax, 6
jne 0x45d11f
xor eax, eax
jmp 0x45d126
mov eax, dword [eax*4 + 0x5fdb10]
mov dword [ebx + 0x10], eax
call fcn.00436830
movzx ecx, byte [esp + 0x3c]
mov dword [ebx + 0xc], eax
mov eax, ebx
mov byte [ebx + 0xa], 1
call fcn.00450460
cmp dword [esp + 0x14], 0
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x18]
add eax, 0x6c
push eax
mov eax, dword [ebp + 4]
call fcn.00490fb0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
push eax
call fcn.00448460
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je case.0x4590a5.74
cmp eax, 0x65
jne 0x45ceec
mov dword [esp + 0x14], 0
jmp 0x45da86
cmp dword [ebp + 4], 0
jne 0x45d1d5
mov eax, dword [esp + 0x18]
call fcn.00456230
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
or dword [eax + 0x94], 1
add ebp, 0x14
jmp 0x459090
mov cl, byte [ebp + 0xc]
test cl, cl
jne 0x45d203
mov edx, dword [esp + 0x18]
test dword [edx + 0x18], 0x400
jne case.0x4590a5.74
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
push edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.0044ef50
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je case.0x4590a5.74
cmp al, 6
jne 0x45ceec
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x29c]
push eax
push str.database_table_is_locked:__s
call fcn.004519d0
add esp, 8
jmp 0x45ceec
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
call fcn.00492560
mov esi, eax
mov dword [esp + 0x14], esi
test edi, edi
je 0x45d27a
mov eax, dword [esp + 0x29c]
mov edi, dword [edi + 8]
push eax
call fcn.00456300
add esp, 4
test esi, esi
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x194], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
lea eax, [esp + 0x170]
mov dword [esp + 0x190], esi
call fcn.00450fe0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x170]
push eax
call fcn.004568a0
add esp, 4
test eax, eax
je 0x45d32b
mov ecx, dword [esp + 0x29c]
add ecx, 0x6c
push ecx
push eax
mov eax, dword [ebp + 4]
mov ecx, esi
call fcn.004920d0
add esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x170]
call fcn.004509e0
cmp dword [esp + 0x14], 0
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov esi, dword [esp + 0x18]
inc dword [esi + 0xac]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
mov ecx, esi
call fcn.004923b0
dec dword [esi + 0xac]
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x94], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x45dfbf
mov eax, dword [esi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x45dfbf
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x94]
push ecx
push esi
call edx
mov ebx, eax
mov eax, dword [esp + 0x2a4]
push eax
mov edi, esi
mov dword [esp + 0x20], ebx
call fcn.00456300
add esp, 0xc
test ebx, ebx
jne 0x45ceec
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x29c]
push 2
push 0xffffffffffffffff
mov dword [ecx], esi
mov edx, dword [ebp + 4]
push ebx
push edx
call fcn.00458d10
mov ecx, dword [esp + 0xa4]
add esp, 0x10
test eax, eax
je 0x45dfad
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + edx*8]
lea edx, [eax + edx*8]
mov eax, dword [esp + 0x29c]
mov esi, dword [eax + 0x70]
mov ecx, dword [esi + ecx*4]
mov esi, dword [ecx + 0x28]
mov ebx, dword [esi]
mov dword [esp + 0x38], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x24], ecx
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x40], edi
mov edi, dword [eax + 0x60]
xor eax, eax
test ecx, ecx
jle 0x45d45f
add edx, 0x50
mov dword [edi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x45d454
mov edx, dword [ebp + 0x10]
mov eax, dword [esp + 0x40]
push edi
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [ecx + 0x20]
push eax
push esi
call edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2b0]
add esp, 0x14
push eax
mov edi, ebx
call fcn.00456300
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x45ceec
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x28]
push esi
call edx
mov ecx, dword [esp + 0x3c]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x45da86
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x29c]
mov ecx, dword [eax + 0x70]
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ecx + edx*4]
cmp byte [ecx + 2], 0
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea esi, [eax + edx*8]
je 0x45d4ef
mov eax, esi
call fcn.00450d70
add ebp, 0x14
jmp 0x459090
mov edx, dword [ecx + 0x28]
mov edi, dword [edx]
mov edx, dword [edi]
xor eax, eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x1e8], esi
mov ax, word [esi + 8]
mov ebx, 0x3e00
and ax, bx
or ax, 1
mov word [esi + 8], ax
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0x28]
mov edx, dword [edx + 0x2c]
push eax
lea eax, [esp + 0x1ec]
push eax
push ecx
call edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2a8]
add esp, 0xc
push eax
call fcn.00456300
mov eax, dword [esp + 0x200]
add esp, 4
test eax, eax
je 0x45d586
mov dword [esp + 0x14], eax
movzx ecx, byte [esp + 0x3c]
mov eax, esi
call fcn.00450460
mov ecx, esi
call fcn.00450f20
test eax, eax
jne 0x45ced0
cmp dword [esp + 0x14], eax
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov ecx, dword [ebp + 4]
mov eax, dword [edx + 0x70]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
jne case.0x4590a5.74
mov eax, dword [esi + 0x28]
mov edi, dword [eax]
mov ebx, dword [edi]
mov ecx, dword [ebx + 0x24]
push eax
call ecx
mov edx, dword [esp + 0x2a0]
add esp, 4
push edx
mov dword [esp + 0x18], eax
call fcn.00456300
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x45ceec
mov eax, dword [esi + 0x28]
mov ecx, dword [ebx + 0x28]
push eax
call ecx
add esp, 4
test eax, eax
jne 0x45d61b
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x30]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xf8]
test edx, edx
jne 0x45dfcc
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x70], eax
jb case.0x4590a5.74
mov esi, dword [ecx + 0x130]
test esi, esi
je case.0x4590a5.74
mov edi, dword [esp + 0x70]
mov ebx, ecx
mov ecx, dword [ebx + 0x138]
mov eax, edi
div ecx
sub ecx, edx
mov edx, dword [ebx + 0x134]
add ecx, edi
push edx
mov dword [esp + 0xa4], ecx
call esi
add esp, 4
test eax, eax
jne 0x45dc9f
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ebp + 4]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov ecx, 1
mov eax, esi
call fcn.00450460
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
mov ecx, dword [esi + 0x10]
mov eax, dword [edi]
mov edx, dword [eax + 0x4c]
push ecx
push edi
call edx
mov esi, dword [esp + 0x2a4]
mov ebx, eax
push esi
mov dword [esp + 0x20], ebx
call fcn.00456300
and dword [esi + 0x94], 0xfffffffe
add esp, 0xc
test ebx, ebx
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x45dfbf
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x45dfbf
cmp dword [eax + 0x34], 0
mov ecx, dword [ebp + 8]
je case.0x4590a5.74
mov edx, dword [esp + 0x18]
mov al, byte [edx + 0x4a]
mov edx, dword [esp + 0x29c]
mov esi, dword [edx + 0x60]
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x37], al
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
xor eax, eax
test ecx, ecx
jle 0x45d743
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x45d738
mov al, byte [ebp + 2]
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x168]
push edx
mov byte [ebx + 0x4a], al
mov eax, dword [esp + 0x28]
push esi
push ecx
mov ecx, dword [eax + 0x34]
push edi
call ecx
mov dl, byte [esp + 0x47]
mov esi, dword [esp + 0x2ac]
push esi
mov dword [esp + 0x28], eax
mov byte [ebx + 0x4a], dl
call fcn.00456300
mov ecx, dword [esp + 0x28]
add esp, 0x14
test ecx, ecx
jne 0x45d79d
cmp dword [ebp + 4], ecx
je 0x45d79d
mov eax, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
cmp cl, 0x13
jne 0x45d7e3
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x10], 0
je 0x45d7e3
movzx eax, word [ebp + 2]
cmp ax, 4
jne 0x45d7c5
mov dword [esp + 0x14], 0
add ebp, 0x14
jmp 0x459090
cmp ax, 5
jne 0x45d7d8
mov eax, 2
mov byte [esi + 0x8e], al
jmp 0x45d7e6
movzx eax, ax
mov byte [esi + 0x8e], al
jmp 0x45d7e6
inc dword [esi + 0x2c]
test ecx, ecx
jne 0x45ceec
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov ecx, dword [ebp + 4]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
add ebp, 0x14
jmp 0x459090
mov edx, dword [esp + 0x29c]
mov eax, ebp
call fcn.00458fb0
mov edx, dword [ebp + 4]
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov ecx, dword [ebp + 0xc]
xor ebx, ebx
test ecx, ecx
je 0x45d862
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x2c]
cmp ebx, ecx
jae 0x45d862
mov ebx, ecx
call fcn.00447650
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
add ebp, 0x14
jmp 0x459090
movzx ebx, word [ebp + 2]
lea eax, [ebx*4 + 0x1c]
push 0
push eax
mov eax, dword [esp + 0x20]
call fcn.004341b0
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x45a607
mov dword [ecx], 0
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov edx, ebp
sub edx, dword [esp + 0x30]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x29c]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [ecx + 0x1a], bl
add byte [ebp], 2
mov byte [ebp + 1], 0xf0
mov dword [ebp + 0x10], ecx
mov eax, dword [ebp + 0xc]
mov esi, dword [esp + 0x1c]
mov edi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
cmp dword [edi], ebx
je 0x45d915
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi], ebx
js 0x45d915
lea edx, [edi + ecx*4 + 0x1c]
lea ebx, [ebx]
mov eax, dword [ebp + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx], eax
dec ecx
sub edx, 4
test ecx, ecx
jge 0x45d900
mov cx, word [ebx + 8]
mov edx, 0x3e00
and cx, dx
or cx, 1
mov word [ebx + 8], cx
movzx edx, byte [edi + 0x1a]
mov eax, dword [edi + 4]
lea ecx, [edi + 0x1c]
push ecx
push edx
mov byte [edi + 0x19], 0
mov eax, dword [eax + 0xc]
push edi
call eax
add esp, 0xc
cmp byte [edi + 0x19], 0
je 0x45d99e
cmp dword [edi + 0x14], 0
je 0x45d973
push ebx
call fcn.004568a0
mov esi, dword [esp + 0x2a0]
add esp, 4
push eax
push 0x6032e0
call fcn.004519d0
mov ecx, dword [edi + 0x14]
add esp, 8
mov dword [esp + 0x14], ecx
mov edx, dword [ebp + 4]
mov eax, dword [edi + 0x10]
mov edi, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x2a4]
add eax, 0xd8
call fcn.004547a0
add esp, 8
cmp dword [esp + 0x14], 0
jne 0x45ceec
test byte [ebx + 8], 0x12
je case.0x4590a5.74
movzx ecx, byte [esp + 0x3c]
mov eax, ebx
call fcn.00450460
mov ecx, ebx
call fcn.00450f20
test eax, eax
jne 0x45ced0
add ebp, 0x14
jmp 0x459090
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + 0x4c]
test al, 0x81
je 0x45da31
mov edx, dword [esp + 0x29c]
test byte [edx + 0x94], 2
jne 0x45da31
mov edx, dword [ebp + 0x10]
test edx, edx
jne 0x45d9fe
mov ecx, dword [esp + 0x29c]
mov edx, dword [ecx + 0xbc]
test edx, edx
je 0x45da31
test al, al
jns 0x45da9d
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x29c]
mov edi, dword [ebx + 0xb8]
call fcn.00458870
mov edx, dword [ebx + 0xbc]
mov esi, eax
push esi
push edx
call edi
push esi
call fcn.00433d90
add esp, 0xc
mov ebx, 1
mov ecx, dword [ebp + 4]
cmp ecx, dword [0x66c700]
mov eax, dword [esp + 0x29c]
jl 0x45da7d
xor edi, edi
cmp dword [eax + 0x88], ebx
mov esi, ebx
jle 0x45da7a
mov edx, 0x14
lea esp, [esp]
mov ecx, dword [eax + 0x58]
add ecx, edx
cmp byte [ecx], 0x14
jne 0x45da6d
mov dword [ecx + 4], edi
add esi, ebx
add edx, 0x14
cmp esi, dword [eax + 0x88]
jl 0x45da60
mov dword [ebp + 4], edi
add dword [ebp + 4], ebx
add dword [eax + 0xb8], ebx
mov ebp, dword [ebp + 8]
mov eax, dword [esp + 0x30]
lea edx, [ebp + ebp*4]
lea ebp, [eax + edx*4 - 0x14]
add ebp, 0x14
jmp 0x459090
mov eax, dword [esp + 0x18]
mov ebx, 1
cmp dword [eax + 0xa8], ebx
push edx
jle 0x45dae7
push str.____s
mov edi, eax
call fcn.00435ba0
mov ecx, dword [edi + 0xbc]
mov edx, dword [edi + 0xb8]
mov esi, eax
mov eax, dword [esp + 0x2a4]
push esi
push eax
push ecx
push ebx
call edx
add esp, 0x18
mov eax, esi
mov ecx, edi
call fcn.00433e80
jmp 0x45da36
mov ecx, dword [esp + 0x2a0]
mov edx, dword [eax + 0xbc]
mov eax, dword [eax + 0xb8]
push ecx
push edx
push ebx
call eax
add esp, 0x10
jmp 0x45da36
mov esi, dword [esp + 0x29c]
push str.cannot_open_savepoint___SQL_statements_in_progress
call fcn.004519d0
mov dword [esp + 0x18], 5
jmp 0x45cee9
mov esi, dword [esp + 0x29c]
push str.cannot_release_savepoint___SQL_statements_in_progress
call fcn.004519d0
mov dword [esp + 0x18], 5
jmp 0x45cee9
mov eax, dword [esi + 0x6c]
mov ecx, edi
call fcn.00433e80
mov ebx, str.database_schema_has_changed
mov eax, edi
call fcn.004343d0
mov dword [esi + 0x6c], eax
mov eax, dword [ebp + 4]
mov edx, dword [edi + 0x10]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
mov edx, dword [esp + 0xa4]
cmp dword [ecx], edx
je 0x45db88
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.0046ef60
mov esi, dword [esp + 0x29c]
or dword [esi + 0x94], 1
mov dword [esp + 0x14], 0x11
jmp 0x45ceec
mov dword [esp + 0x14], 7
mov ebx, dword [esp + 0x14]
jmp 0x45c661
mov eax, dword [ebp + 4]
mov dword [esi + 0x28], eax
mov cl, byte [ebp + 8]
mov byte [esi + 0x8e], cl
mov dword [esi + 0x24], ebx
test eax, eax
je 0x45dc3f
movzx eax, word [ebp + 2]
mov esi, dword [esp + 0x29c]
test ax, ax
je 0x45dc11
movzx edx, ax
mov eax, dword [edx*4 + 0x5fd1f4]
push eax
push str._s_constraint_failed
call fcn.004519d0
mov eax, dword [ebp + 0x10]
add esp, 8
test eax, eax
je 0x45dc22
mov ecx, dword [esi + 0x6c]
mov edi, dword [esp + 0x18]
push eax
push ecx
push str._z:__s
call fcn.00435ba0
add esp, 0xc
mov dword [esi + 0x6c], eax
jmp 0x45dc22
mov edx, dword [ebp + 0x10]
push edx
push 0x6032e0
call fcn.004519d0
add esp, 8
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0xbc]
mov edx, dword [ebp + 4]
push eax
push ecx
push ebx
push str.abort_at__d_in___s_:__s
push edx
call fcn.00435dd0
add esp, 0x14
mov edi, dword [esp + 0x29c]
call fcn.00454300
mov dword [esp + 0x14], eax
mov esi, edi
cmp eax, 5
jne 0x45dc5e
mov dword [edi + 0x28], eax
jmp 0x45e13a
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x14], eax
jmp 0x45e13a
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x130]
test eax, eax
je 0x45dcac
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0xa0]
jb 0x45dcac
mov edx, dword [edi + 0x134]
push edx
call eax
add esp, 4
test eax, eax
je 0x45dcac
mov dword [esp + 0x14], 9
jmp 0x45ceec
mov esi, dword [esp + 0x29c]
push 0
mov eax, esi
call fcn.00454290
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45ceec
lea edx, [eax + 1]
mov eax, esi
call fcn.00454270
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x1c]
add eax, 2
or eax, 1
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
xor ebx, ebx
mov dword [esi + 0x68], eax
cmp dword [ebp + 8], ebx
jle 0x45dd2e
mov edi, eax
lea ebx, [ebx]
mov eax, 0x1000
test word [edi + 8], ax
je 0x45dd1a
mov eax, edi
call fcn.00450610
test eax, eax
jne 0x45a607
mov eax, edi
call fcn.00450710
inc ebx
add edi, 0x28
cmp ebx, dword [ebp + 8]
jl 0x45dd00
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x45], 0
jne 0x45a607
test byte [edi + 0x4c], 4
je 0x45dd55
mov ecx, dword [edi + 0xbc]
mov edx, dword [edi + 0xb8]
push 0
push esi
push ecx
push 4
call edx
add esp, 0x10
sub ebp, dword [esp + 0x30]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esi + 0x24], ecx
mov dword [esp + 0x14], 0x64
jmp 0x45e13a
cmp dword [edi + 0x4c], 0
jne 0x45dd8e
lea eax, [esp + 0x1c0]
call fcn.004509e0
mov eax, 0x13e56
call fcn.004a4e20
mov dword [esp + 0x14], eax
jmp 0x45ceec
sub ebp, dword [esp + 0x30]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov byte [esi + 0x43], 0
mov dword [esp + 0x14], 5
mov dword [edi + 0x28], 5
mov esi, edi
jmp 0x45e13a
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + 0x43]
mov ebx, dword [ebp + 4]
mov eax, dword [ebp + 8]
cmp ebx, ecx
je 0x45deae
test eax, eax
je 0x45de02
push 0x204
mov eax, esi
call fcn.004a2f60
add esp, 4
mov byte [esi + 0x43], 1
jmp 0x45de4d
test ebx, ebx
je 0x45de2d
cmp dword [esi + 0xa4], 0
jle 0x45de2d
mov esi, dword [esp + 0x29c]
push str.cannot_commit_transaction___SQL_statements_in_progress
call fcn.004519d0
mov dword [esp + 0x18], 5
jmp 0x45cee9
mov eax, dword [esp + 0x29c]
push 1
call fcn.00454290
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x45e133
mov byte [esi + 0x43], bl
mov edi, dword [esp + 0x29c]
call fcn.00454300
mov ecx, 5
cmp eax, ecx
jne 0x45de91
sub ebp, dword [esp + 0x30]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov dl, 1
mov eax, esi
sub dl, bl
mov byte [eax + 0x43], dl
mov dword [esp + 0x14], ecx
mov dword [edi + 0x28], ecx
mov esi, edi
jmp 0x45e13a
call fcn.004a24b0
mov eax, dword [edi + 0x28]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x14], eax
mov esi, edi
jmp 0x45e13a
test ebx, ebx
jne 0x45deb9
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x45dec7
test eax, eax
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x45dec7
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [esp + 0x29c]
push eax
call fcn.004519d0
mov dword [esp + 0x18], 1
jmp 0x45cee9
mov dword [esp + 0x14], 8
jmp 0x45ceec
cmp al, 5
jne 0x45ceec
sub ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x29c]
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x14]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], edx
jmp 0x45e13a
mov dword [esp + 0x14], 0x204
jmp 0x45ceec
mov dword [esp + 0x14], 6
mov byte [esi + 0x8e], 2
jmp 0x45ceec
push str.too_many_levels_of_trigger_recursion
mov dword [esp + 0x18], 1
call fcn.004519d0
jmp 0x45cee9
push esi
call fcn.004568a0
mov esi, dword [esp + 0x2a0]
add esp, 4
push eax
push 0x6032e0
call fcn.004519d0
add esp, 8
jmp 0x45ceec
mov dword [esp + 0x14], 1
mov eax, 0x606660
cmp edi, 5
je 0x45df93
mov eax, str.out_of
mov esi, dword [esp + 0x29c]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.004519d0
add esp, 8
jmp 0x45ceec
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x1c]
push ecx
call eax
add esp, 4
jmp 0x45a607
mov dword [esp + 0x14], 6
jmp 0x45ceec
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x29c]
xor eax, eax
cmp byte [ecx + 0x45], al
mov ecx, str.unknown_error
sete al
lea eax, [eax + eax + 7]
mov dword [esp + 0x14], eax
mov dword [esi + 0x28], eax
cmp eax, 0x204
je 0x45e020
and eax, 0xff
cmp eax, 0x1a
ja 0x45e025
mov eax, dword [eax*4 + 0x600298]
test eax, eax
je 0x45e025
mov ecx, eax
push ecx
push 0x6032e0
call fcn.004519d0
add esp, 8
jmp 0x45ceec
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x6032e0
call fcn.004519d0
add esp, 8
jmp 0x45ceec
mov ecx, str.abort_due_to_ROLLBACK
push ecx
push 0x6032e0
call fcn.004519d0
add esp, 8
mov edi, dword [esp + 0x14]
mov dword [esi + 0x28], edi
cmp edi, 0xc0a
je 0x45e085
mov eax, edi
and eax, 0xff
cmp eax, 0xe
je 0x45e06b
cmp eax, 0xa
jne 0x45e085
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x45e080
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x45e082
xor eax, eax
mov dword [ebx + 0x3c], eax
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0xbc]
sub ebp, dword [esp + 0x30]
push edx
push eax
mov eax, 0x66666667
imul ebp
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str.statement_aborts_at__d:___s___s
push edi
call fcn.00435dd0
add esp, 0x14
mov edi, esi
call fcn.00454300
cmp dword [esp + 0x14], 0xc0a
jne 0x45e0ee
cmp byte [ebx + 0x45], 0
jne 0x45e0ee
cmp byte [ebx + 0x46], 0
jne 0x45e0ee
cmp dword [ebx + 0xa8], 0
mov byte [ebx + 0x45], 1
jle 0x45e0e8
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
mov al, byte [esp + 0x4f]
mov dword [esp + 0x14], 1
test al, al
jbe 0x45e133
movzx esi, al
dec esi
mov eax, ebx
mov ecx, dword [eax + 0x10]
mov edx, esi
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
push edx
call fcn.00474f20
add esp, 4
cmp esi, 1
je 0x45e133
mov eax, ebx
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.00474f20
add esp, 4
mov esi, edi
jmp 0x45e13a
mov esi, dword [esp + 0x29c]
mov eax, dword [esp + 0x70]
add dword [esi + 0xb0], eax
cmp dword [esi + 0x9c], 0
je 0x45e156
push esi
call fcn.00452c30
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x288
ret