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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x14]
push edi
mov edi, dword [esi]
mov ecx, dword [edi + 8]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esi + 0x4c]
xor ebx, ebx
mov dword [esp + 0x100], eax
mov al, byte [edx + 0x49]
mov byte [esp + 0xec], al
mov eax, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
mov byte [esp + 0xf7], bl
mov dword [esp + 0xf8], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x104], ebx
call fcn.0040d860
cmp dword [esi + 0x58], 7
je 0x43b52e
mov dword [esi + 0x58], ebx
mov dword [esi + 0x2c], ebx
cmp dword [edi + 0xe0], ebx
mov dword [edi + 0x1a8], ebx
jne 0x43fc71
mov eax, dword [edi + 0x108]
xor edx, edx
cmp eax, ebx
mov eax, dword [esi + 0x54]
setne dl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10c], edx
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x1e]
test al, al
jne 0x43b52e
mov eax, dword [esp + 0x1c]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x100]
lea esi, [eax + edx*4]
mov eax, dword [esp + 0x10c]
test eax, eax
mov dword [esp + 0x24], esi
je 0x43b13b
mov edx, dword [ecx + 0x110]
cmp edx, dword [esp + 0xf8]
jne 0x43b134
mov eax, dword [ecx + 0x10c]
push eax
call dword [ecx + 0x108]
add esp, 4
test eax, eax
jne 0x43faa6
mov dword [esp + 0xf8], eax
inc dword [esp + 0xf8]
test byte [esi + 2], 2
je 0x43b15f
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8]
mov eax, edi
mov dword [esp + 0x20], edi
call fcn.0040d1e0
mov word [edi + 0x1c], 4
movzx eax, byte [esi]
dec eax
cmp eax, 0x90
ja case.0x43b16e.17
jmp dword [eax*4 + 0x43fca0]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xe0]
test ecx, ecx
jne 0x43fc71
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
lea ecx, [edx + ecx*8]
cdq
mov dword [ecx], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 4], edx
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 0x1c], eax
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov edx, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov eax, dword [edx + ecx*8]
mov dword [esp + 0x1c], eax
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov edx, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov eax, dword [edx + ecx*8]
lea ecx, [edx + ecx*8]
mov word [ecx + 0x1c], 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
test byte [eax + edx*8 + 0x1c], 1
je case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
mov ebx, dword [ebp + 8]
jne 0x43fab3
mov edi, dword [ebx + 0xdc]
test edi, edi
je 0x43fab3
mov ecx, dword [edi + 0x3c]
mov edx, dword [ebx + 0xe0]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xdc], ecx
mov ecx, dword [ebx + 0x6c]
dec edx
mov dword [ebx + 0xe0], edx
call fcn.0040dcb0
mov eax, edi
call fcn.0040d7f0
cmp dword [esi + 8], 4
mov dword [esp + 0x1c], eax
jne 0x43b278
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + edx*4 + 8]
dec ecx
mov dword [esp + 0x1c], ecx
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x100], edx
mov dword [esp + 0x18], eax
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx]
mov eax, dword [esp + 0x20]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x43b16e.17
mov eax, dword [esp + 0x20]
mov word [eax + 0x1c], 8
mov edx, dword [esi + 0x10]
fld qword [edx]
fstp qword [eax + 8]
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov byte [esi], 9
call fcn.00408380
mov edi, dword [esp + 0x20]
mov dword [esi + 4], eax
cmp byte [esp + 0xec], 1
je 0x43b358
push 1
push 0xffffffffffffffff
xor eax, eax
mov ebx, edi
call fcn.0042e460
add esp, 8
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x43b368
movzx ecx, byte [esp + 0xec]
mov eax, edi
call fcn.0041fbf0
test eax, eax
jne 0x43b52e
mov dword [edi + 0x24], eax
xor eax, eax
mov ax, word [edi + 0x1c]
or bl, 0xff
and eax, 0xfbff
or eax, 0x800
mov word [edi + 0x1c], ax
cmp byte [esi + 1], bl
jne 0x43b349
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00408130
add esp, 8
mov byte [esi + 1], bl
mov eax, dword [edi + 0x14]
mov dword [esi + 0x10], eax
mov ecx, dword [edi + 0x18]
mov dword [esi + 4], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 4]
cmp edx, dword [eax + 0x48]
jle 0x43b401
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
push str.string_or_blob_too_big
add edi, 0x5c
call fcn.0041db50
mov dword [esp + 0x14], 0x12
add esp, 4
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 0xbc]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
push edx
push eax
push ecx
push str.statement_aborts_at__d:___s___s
push edi
mov dword [esi + 0x58], edi
call fcn.00418ab0
push esi
call fcn.0042dd20
add esp, 0x18
cmp edi, 0xc0a
jne 0x43b3c5
mov edx, dword [esp + 0x14]
mov byte [edx + 0x1e], 1
mov al, byte [esp + 0xf7]
test al, al
mov esi, 1
je 0x43b3e3
mov eax, dword [esp + 0x14]
push 0
call fcn.00420a50
add esp, 4
mov eax, dword [ebp + 8]
add eax, 0x80
push eax
call fcn.0040c520
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x20]
mov al, byte [esp + 0xec]
mov word [edi + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [edi + 0x14], ecx
mov edx, dword [esi + 4]
mov dword [edi + 0x18], edx
mov byte [edi + 0x1f], al
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov ebx, dword [esp + 0x20]
push 0
push edx
xor eax, eax
call fcn.0042e460
mov al, byte [esp + 0xf4]
add esp, 8
mov byte [ebx + 0x1f], al
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
lea ecx, [esi + esi*4]
lea esi, [eax + ecx*8 - 0x28]
mov ecx, esi
mov dword [esp + 0x28], esi
call fcn.0040d390
test eax, eax
jne 0x43b368
mov ebx, dword [esp + 0x20]
push 0x800
push esi
call fcn.0040d3c0
add esp, 8
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
test eax, eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
lea edx, [ecx + ecx*4]
mov dword [esp + 0x30], ecx
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x18]
lea ebx, [ecx + edx*8]
lea edx, [esi + esi*4]
mov dword [esp + 0x34], esi
lea esi, [ecx + edx*8]
mov dword [esp + 0x20], esi
je 0x43b4e3
nop
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x28], eax
mov eax, esi
mov dword [esi + 0x24], 0
call fcn.0040d400
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x24], ecx
mov eax, dword [esp + 0x2c]
add ebx, 0x28
add esi, 0x28
test eax, eax
jne 0x43b4b0
mov dword [esp + 0x20], esi
dec eax
mov dword [esp + 0x2c], eax
jmp case.0x43b16e.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ebx, [eax + edx*8]
lea ecx, [esi + esi*4]
lea edx, [eax + ecx*8]
push 0x1000
push edx
mov dword [esp + 0x28], ebx
call fcn.0040d3c0
add esp, 8
test byte [ebx + 0x1d], 0x10
je case.0x43b16e.17
mov eax, ebx
call fcn.004196b0
test eax, eax
je case.0x43b16e.17
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + 8]
push str.out_of_memory
add edi, 0x5c
mov byte [eax + 0x1e], 1
call fcn.0041db50
mov dword [esp + 0x14], 7
jmp 0x43b384
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ebx, [eax + ecx*8]
lea edx, [esi + esi*4]
lea eax, [eax + edx*8]
push 0x1000
push eax
mov dword [esp + 0x28], ebx
call fcn.0040d3c0
add esp, 8
jmp case.0x43b16e.17
mov ebx, dword [ebp + 8]
xor edx, edx
mov ecx, ebx
call fcn.0041ff10
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
push 1
push ebx
call fcn.00426690
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov ecx, dword [ebx + 0x50]
add ecx, 2
or ecx, 1
mov dword [ebx + 0x50], ecx
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
mov dword [ebx + 0x2c], eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x43b614
lea esp, [esp]
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.00414cb0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0040e150
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [edx + 8]
jl 0x43b5e0
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x1e]
test cl, cl
jne 0x43b52e
mov ecx, dword [esp + 0x1c]
mov edx, dword [ebp + 8]
inc ecx
mov dword [edx + 0x54], ecx
mov esi, 0x64
jmp 0x43b3e3
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
lea ecx, [ebx + ecx*8]
lea edx, [eax + eax*4]
lea edi, [ebx + edx*8]
lea eax, [esi + esi*4]
lea ebx, [ebx + eax*8]
mov ax, word [ecx + 0x1c]
mov dword [esp + 0x24], ecx
mov cl, byte [edi + 0x1c]
or cl, al
test cl, 1
mov dword [esp + 0xf0], edi
mov dword [esp + 0x20], ebx
je 0x43b682
push ebx
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
test ah, 0x40
je 0x43b698
mov esi, dword [esp + 0x24]
call fcn.00414c50
test eax, eax
jne 0x43b52e
test byte [edi + 0x1d], 0x40
je 0x43b6ad
mov esi, edi
call fcn.00414c50
test eax, eax
jne 0x43b52e
mov edx, dword [esp + 0x24]
test byte [edx + 0x1c], 0x12
jne 0x43b6d2
movzx eax, byte [esp + 0xec]
push eax
mov esi, edx
call fcn.0041fc10
add esp, 4
test eax, eax
jne 0x43b52e
test byte [edi + 0x1c], 0x12
jne 0x43b6f3
movzx ecx, byte [esp + 0xec]
push ecx
mov esi, edi
call fcn.0041fc10
add esp, 4
test eax, eax
jne 0x43b52e
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x18]
mov eax, dword [edi + 0x18]
add eax, ecx
cdq
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x43b368
jl 0x43b726
cmp esi, eax
ja 0x43b368
mov esi, dword [esp + 0xf0]
xor ecx, ecx
mov cx, word [ebx + 0x1c]
xor eax, eax
push ebx
and ecx, 0xbf02
or ecx, 2
cmp ebx, esi
sete al
mov word [ebx + 0x1c], cx
mov ecx, dword [esp + 0x2c]
add ecx, 2
call fcn.00414b80
add esp, 4
test eax, eax
jne 0x43b52e
cmp ebx, esi
mov edx, esi
je 0x43b77c
mov ecx, dword [edx + 0x18]
mov esi, dword [edx + 0x14]
mov edi, dword [ebx + 0x14]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx + 0x18]
mov edx, dword [ebx + 0x14]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x18]
mov esi, dword [eax + 0x14]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esp + 0x28]
mov edx, dword [ebx + 0x14]
mov byte [edx + eax + 1], 0
or byte [ebx + 0x1d], 2
mov ecx, dword [esp + 0x28]
mov dl, byte [esp + 0xec]
mov dword [ebx + 0x18], ecx
mov byte [ebx + 0x1f], dl
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov edi, ebx
call fcn.0042ff90
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
call fcn.0042ff90
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
movzx eax, word [edi + 0x1c]
lea edx, [edx + ecx*8]
movzx ecx, word [ebx + 0x1c]
or eax, ecx
test al, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
jne 0x43b9f7
mov al, byte [edi + 0x1c]
and al, byte [ebx + 0x1c]
test al, 4
je 0x43b907
mov ecx, dword [ebx]
mov dword [esp + 0x30], ecx
mov ebx, dword [ebx + 4]
mov dword [esp + 0x34], ebx
mov eax, dword [edi]
mov dword [esp + 0x38], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x3c], edi
movzx esi, byte [esi]
add esi, 0xffffffaa
cmp esi, 3
ja case.default.0x43b84d
jmp dword [esi*4 + 0x43fee4]
add eax, ecx
adc edi, ebx
mov dword [esp + 0x3c], edi
jmp 0x43b8e2
sub eax, ecx
sbb edi, ebx
mov dword [esp + 0x3c], edi
jmp 0x43b8e2
push ebx
push ecx
push edi
push eax
call fcn.0049a5c0
jmp 0x43b8da
mov esi, ecx
or esi, ebx
je 0x43b9f7
mov edx, ecx
and edx, ebx
cmp edx, 0xffffffff
jne 0x43b8a4
test eax, eax
jne 0x43b8a4
cmp edi, 0x80000000
jne 0x43b8a4
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
push ebx
push ecx
push edi
push eax
call fcn.0049a450
jmp 0x43b8da
mov esi, ecx
or esi, ebx
je 0x43b9f7
mov edx, ecx
and edx, ebx
cmp edx, 0xffffffff
jne 0x43b8d1
mov ecx, 1
xor ebx, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ebx
push ebx
push ecx
push edi
push eax
call fcn.0049a500
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], eax
xor ecx, ecx
mov cx, word [edx + 0x1c]
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 4], eax
and ecx, 0xbf04
or ecx, 4
mov word [edx + 0x1c], cx
jmp case.0x43b16e.17
mov eax, ebx
call fcn.0041fd20
fstp qword [esp + 0x40]
mov eax, edi
call fcn.0041fd20
fstp qword [esp + 0x48]
movzx eax, byte [esi]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x43b928
jmp dword [eax*4 + 0x43fef4]
fld qword [esp + 0x48]
fadd qword [esp + 0x40]
jmp 0x43b9d9
fld qword [esp + 0x48]
fsub qword [esp + 0x40]
jmp 0x43b9d9
fld qword [esp + 0x48]
fmul qword [esp + 0x40]
jmp 0x43b9d9
fld qword [0x4ac6f0]
fld qword [esp + 0x40]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x43b9f3
fld qword [esp + 0x48]
fdiv qword [esp + 0x40]
jmp 0x43b9d9
fld qword [esp + 0x40]
call fcn.00499c80
fld qword [esp + 0x48]
mov esi, eax
mov edi, edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
call fcn.00499c80
mov ecx, esi
or ecx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
je 0x43b9f3
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x43b9bb
mov esi, 1
xor edi, edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
push edi
push esi
push edx
push eax
call fcn.0049a500
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], edx
fild qword [esp + 0x118]
fstp qword [esp + 0x48]
sub esp, 8
fld qword [esp + 0x50]
fstp qword [esp]
call fcn.00408340
add esp, 8
test eax, eax
je 0x43ba05
mov edx, dword [esp + 0x20]
push edx
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
mov eax, dword [esp + 0x20]
fld qword [esp + 0x48]
xor edx, edx
fstp qword [eax + 8]
mov dx, word [eax + 0x1c]
and edx, 0xbf08
or edx, 8
mov word [eax + 0x1c], dx
test byte [esp + 0x28], 8
jne case.0x43b16e.17
mov esi, dword [esp + 0x20]
call fcn.0040d2d0
jmp case.0x43b16e.17
movzx ecx, byte [esi + 3]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x74], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x2c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x28], eax
jle 0x43baa0
lea esp, [esp]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x2c]
call fcn.0040e150
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x74]
inc eax
add edx, 0x28
cmp eax, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jl 0x43ba70
cmp byte [esi + 1], 0xfb
mov eax, dword [esi + 0x10]
jne 0x43bab5
xor ecx, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jmp 0x43bac1
mov dword [esp + 0x34], eax
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
mov edx, dword [esp + 0x14]
mov ebx, edi
lea eax, [esp + 0x38]
mov dword [esp + 0x20], edi
mov word [esp + 0x54], 1
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
call fcn.0040d400
mov eax, dword [esp + 0x54]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x54], ax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x64], 0
test byte [eax + 3], 8
je 0x43bb1e
mov ecx, dword [esi - 4]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
push edx
push ecx
lea edx, [esp + 0x38]
push edx
call dword [eax + 0xc]
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1e]
add esp, 0xc
test cl, cl
jne 0x43fb4d
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x43bb61
mov ecx, dword [esi + 4]
push ecx
call fcn.0040d880
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esi + 0x10], edx
mov byte [esi + 1], 0xf9
mov eax, dword [esp + 0x64]
test eax, eax
je 0x43bb97
lea eax, [esp + 0x38]
push eax
call fcn.0041ffb0
mov edi, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x1c]
push 0x4ac3ac
add edi, 0x5c
call fcn.0041db50
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0xec]
lea eax, [esp + 0x38]
call fcn.0041fbf0
lea ebx, [esp + 0x38]
mov eax, edi
call fcn.0040d400
mov ecx, edi
call fcn.0040d390
test eax, eax
jne 0x43b368
jmp case.0x43b16e.17
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [edx + ecx*8]
mov dl, byte [eax + 0x1c]
or dl, byte [edi + 0x1c]
test dl, 1
mov dword [esp + 0x20], ebx
je 0x43bc03
push ebx
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
call fcn.0041fc90
mov dword [esp + 0x28], eax
mov eax, edi
mov dword [esp + 0x2c], edx
call fcn.0041fc90
mov ecx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
movzx eax, byte [esi]
sub eax, 0x52
je 0x43bc63
dec eax
je 0x43bc55
mov edx, dword [esp + 0x2c]
dec eax
mov eax, dword [esp + 0x28]
je 0x43bc46
call fcn.0049aa10
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x43bc77
call fcn.0049a600
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x43bc77
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
or esi, ecx
or eax, edx
jmp 0x43bc6f
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
and esi, ecx
and eax, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
xor edx, edx
mov dx, word [ebx + 0x1c]
mov dword [ebx], eax
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 4], ecx
and edx, 0xbf04
or edx, 4
mov word [ebx + 0x1c], dx
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
call fcn.0041fda0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [esi]
cdq
add ecx, eax
mov eax, dword [esi + 4]
adc eax, edx
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xec]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push edx
mov al, 0x63
mov ecx, ebx
call fcn.00430070
mov ax, word [ebx + 0x1c]
add esp, 4
test al, 4
jne 0x43bd07
mov esi, dword [esi + 8]
test esi, esi
je 0x43fb5f
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
and eax, 0xbf04
or eax, 4
mov word [ebx + 0x1c], ax
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
test byte [esi + 0x1c], 4
je case.0x43b16e.17
call fcn.0041fdd0
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
xor eax, eax
mov ax, word [esi + 0x1c]
test al, 1
jne case.0x43b16e.17
mov edx, dword [esp + 0xec]
xor ecx, ecx
mov cl, al
shr cl, 3
push edx
and ecx, 2
or ecx, eax
mov word [esi + 0x1c], cx
mov al, 0x61
mov ecx, esi
call fcn.00430070
add esp, 4
test byte [esi + 0x1d], 0x40
je 0x43bd92
call fcn.00414c50
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ax, word [esi + 0x1c]
test al, 1
jne case.0x43b16e.17
test al, 0x10
jne 0x43bded
mov edx, dword [esp + 0xec]
push edx
mov al, 0x61
mov ecx, esi
call fcn.00430070
xor eax, eax
mov ax, word [esi + 0x1c]
add esp, 4
and eax, 0xbf10
or eax, 0x10
mov word [esi + 0x1c], ax
jmp case.0x43b16e.17
and eax, 0xff10
mov word [esi + 0x1c], ax
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov edx, dword [esp + 0x18]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*8]
test byte [eax + 0x1c], 0xd
jne case.0x43b16e.17
call fcn.0041fdf0
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
test byte [esi + 0x1c], 1
jne case.0x43b16e.17
call fcn.0041fda0
jmp case.0x43b16e.17
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
test byte [esi + 0x1c], 1
jne case.0x43b16e.17
call fcn.0041fdd0
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea edi, [ebx + ecx*8]
lea edx, [eax + eax*4]
mov ax, word [edi + 0x1c]
lea ebx, [ebx + edx*8]
mov word [esp + 0x2e], ax
mov cx, word [ebx + 0x1c]
mov word [esp + 0x30], cx
mov ax, word [ebx + 0x1c]
mov cx, word [edi + 0x1c]
mov dl, al
or dl, cl
test dl, 1
je 0x43bef0
mov dl, byte [esi + 3]
test dl, dl
jns 0x43beac
and al, cl
and al, 1
neg al
sbb eax, eax
inc eax
jmp 0x43bf5d
test dl, 0x10
je 0x43beda
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*8]
xor edx, edx
mov dx, word [eax + 0x1c]
mov dword [esp + 0x20], eax
and edx, 0xbf01
or edx, 1
mov word [eax + 0x1c], dx
jmp case.0x43b16e.17
test dl, 8
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov al, byte [esi + 3]
and al, 0x67
mov byte [esp + 0x2c], al
je 0x43bf2f
mov ecx, dword [esp + 0xec]
push ecx
mov ecx, edi
call fcn.00430070
mov edx, dword [esp + 0xf0]
mov al, byte [esp + 0x30]
push edx
mov ecx, ebx
call fcn.00430070
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x1e]
add esp, 8
test cl, cl
jne 0x43b52e
test byte [edi + 0x1d], 0x40
je 0x43bf40
mov esi, edi
call fcn.00414c50
mov esi, dword [esp + 0x24]
test byte [ebx + 0x1d], 0x40
je 0x43bf51
mov esi, ebx
call fcn.00414c50
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov ecx, edi
mov edx, ebx
call fcn.00423c70
mov dword [esp + 0x28], eax
movzx ecx, byte [esi]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x43bf6c
jmp dword [ecx*4 + 0x43ff04]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x43bfaf
xor edx, edx
test eax, eax
setne dl
jmp 0x43bfad
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x43bfaf
xor edx, edx
test eax, eax
setle dl
jmp 0x43bfad
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x43bfaf
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x28], eax
test byte [esi + 3], 0x10
je 0x43bffa
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*8]
xor edx, edx
mov dx, word [ecx + 0x1c]
mov dword [esp + 0x20], ecx
and edx, 0xbf04
or edx, 4
mov word [ecx + 0x1c], dx
mov eax, dword [esp + 0x28]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov al, byte [esp + 0x2e]
mov byte [edi + 0x1c], al
mov cl, byte [esp + 0x30]
mov byte [ebx + 0x1c], cl
jmp case.0x43b16e.17
test eax, eax
je 0x43c006
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov al, byte [esp + 0x2e]
mov byte [edi + 0x1c], al
mov cl, byte [esp + 0x30]
mov byte [ebx + 0x1c], cl
jmp case.0x43b16e.17
mov edx, dword [esi + 0x10]
mov dword [esp + 0x104], edx
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x38], ebx
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 8]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], ecx
jle 0x43c0e6
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x104]
jmp 0x43c063
mov ebx, dword [esp + 0x38]
test edi, edi
je 0x43c06c
mov edx, dword [edi + ecx*4]
jmp 0x43c06e
mov edx, ecx
mov dword [esp + 0x3c], edx
mov eax, dword [ebx + ecx*4 + 0xc]
mov dword [esp + 0x40], eax
mov ebx, dword [ebx + 8]
movzx ecx, byte [ebx + ecx]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x34]
add ecx, edx
add edx, ebx
lea ecx, [ecx + ecx*4]
lea edx, [edx + edx*4]
lea ecx, [esi + ecx*8]
lea edx, [esi + edx*8]
call fcn.00423c70
test eax, eax
mov dword [esp + 0xfc], eax
jne 0x43c0ce
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
inc ecx
cmp ecx, eax
mov dword [esp + 0x2c], ecx
jl 0x43c05f
mov dword [esp + 0x104], 0
jmp case.0x43b16e.17
mov eax, dword [esp + 0x44]
test eax, eax
je 0x43c0e6
mov eax, dword [esp + 0xfc]
neg eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x104], 0
jmp case.0x43b16e.17
mov eax, dword [esp + 0xfc]
test eax, eax
jge 0x43c10e
mov esi, dword [esi + 4]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
jne 0x43c11d
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov esi, dword [esi + 0xc]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov cl, byte [eax + 0x1c]
mov ebx, 1
test bl, cl
je 0x43c14a
mov ecx, 2
jmp 0x43c159
call fcn.0041fc90
or eax, edx
je 0x43c157
mov ecx, ebx
jmp 0x43c159
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
test byte [eax + 0x1c], bl
je 0x43c172
mov eax, 2
jmp 0x43c185
call fcn.0041fc90
or eax, edx
mov ecx, dword [esp + 0x28]
je 0x43c183
mov eax, ebx
jmp 0x43c185
xor eax, eax
mov dword [esp + 0x2c], eax
cmp byte [esi], 0x45
jne 0x43c19b
lea eax, [eax + ecx*2]
movzx eax, byte [ecx + eax + 0x4ad050]
jmp 0x43c1a6
lea edx, [eax + ecx*2]
movzx eax, byte [ecx + edx + 0x4ad05c]
cmp eax, 2
mov dword [esp + 0x28], eax
mov esi, dword [esi + 0xc]
lea ecx, [esi + esi*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x20], ecx
jne 0x43c1d3
xor edx, edx
mov dx, word [ecx + 0x1c]
and edx, 0xbf01
or edx, ebx
mov word [ecx + 0x1c], dx
jmp case.0x43b16e.17
cdq
mov dword [ecx], eax
xor eax, eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [esi + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
lea edx, [esi + esi*4]
lea esi, [ecx + edx*8]
test byte [eax + 0x1c], 1
mov dword [esp + 0x20], esi
je 0x43c21e
push esi
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
call fcn.0041fc90
or eax, edx
jne 0x43c23c
mov eax, 1
cdq
push edx
push eax
call fcn.0040d360
add esp, 8
jmp case.0x43b16e.17
xor eax, eax
cdq
push edx
push eax
call fcn.0040d360
add esp, 8
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea edx, [esi + esi*4]
lea eax, [ecx + eax*8]
lea esi, [ecx + edx*8]
test byte [eax + 0x1c], 1
mov dword [esp + 0x20], esi
je 0x43c27c
push esi
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
call fcn.0041fc90
not edx
not eax
push edx
push eax
call fcn.0040d360
add esp, 8
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
test byte [eax + 0x1c], 1
je 0x43c2ac
mov eax, dword [esi + 0xc]
jmp 0x43c2db
call fcn.0041fd20
fld qword [0x4ac6f0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x43c2c7
mov eax, 1
jmp 0x43c2c9
xor eax, eax
mov dword [esp + 0x28], eax
cmp byte [esi], 0x1b
jne 0x43c2df
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov dword [esp + 0x28], eax
test eax, eax
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], 1
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
test byte [eax + edx*8 + 0x1c], 1
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov ecx, dword [esi + 4]
xor eax, eax
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov edi, dword [ebp + 8]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0x40], ebx
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
xor ecx, ecx
mov dword [esp + 0x64], eax
mov cx, word [eax + 0x1c]
and ecx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x34]
mov dword [esp + 0x44], ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
mov ecx, dword [eax]
cmp ecx, ebx
mov dword [esp + 0x48], ecx
je 0x43c440
mov edi, eax
call fcn.0042dfb0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x14]
test cl, cl
je 0x43c3ec
mov dword [esp + 0x28], ebx
jmp case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x44]
cmp edx, dword [ecx + 0x50]
jne 0x43c407
mov edx, dword [eax + 0x48]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x44], ecx
jmp 0x43c47a
mov cl, byte [eax + 0x17]
test cl, cl
je 0x43c429
mov eax, dword [esp + 0x48]
lea edi, [esp + 0x30]
call fcn.0040ce30
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
jmp 0x43c476
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x4c]
call fcn.0040ce60
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x43c476
mov ecx, dword [eax + 0x24]
cmp ecx, ebx
jle 0x43d7aa
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0xa8], ecx
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x28], edx
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x44], ecx
test byte [esi + 3], 0x20
je 0x43c470
xor ecx, ecx
jmp 0x43c473
mov ecx, dword [edi + 0x50]
mov dword [eax + 0x44], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x43b16e.17
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x48]
ja 0x43b368
mov edx, dword [eax + 0x2c]
mov edi, dword [ebp + 8]
mov dword [esp + 0x54], edx
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0x4c], ecx
mov ebx, dword [eax + 0x44]
cmp ebx, dword [edi + 0x50]
jne 0x43c4b8
mov eax, dword [eax + 0x50]
mov dword [esp + 0x50], eax
jmp 0x43c735
lea ecx, [ecx + edx*4]
mov dword [esp + 0x50], ecx
mov dword [esp + 0xa4], 0
mov dword [eax + 0x50], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
mov dword [ecx + 0x48], edx
mov ecx, dword [esp + 0x40]
mov eax, dword [edi + 0x50]
mov dword [ecx + 0x44], eax
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x43c4f0
mov dword [esp + 0x60], ecx
jmp 0x43c53f
mov edx, dword [esp + 0x40]
mov al, byte [edx + 0x17]
test al, al
mov eax, dword [esp + 0x48]
lea ebx, [esp + 0xa4]
je 0x43c50d
call fcn.0040cee0
jmp 0x43c512
call fcn.0040cf00
mov ecx, dword [esp + 0x28]
cmp ecx, dword [esp + 0xa4]
mov dword [esp + 0x60], eax
ja 0x43c530
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], eax
mov dword [edx + 0x54], eax
jmp 0x43c53b
mov eax, dword [esp + 0x40]
mov dword [eax + 0x54], 0
mov ecx, dword [esp + 0x60]
mov al, byte [ecx]
cmp al, 0x80
jae 0x43c556
movzx edx, al
mov dword [esp + 0x98], edx
mov eax, 1
jmp 0x43c574
lea esi, [esp + 0x98]
call fcn.00408ed0
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x24]
movzx eax, al
cmp edx, 0x18003
movzx eax, al
mov dword [esp + 0xa0], eax
jbe 0x43c59c
push 0xed48
call fcn.0041d790
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov eax, dword [esp + 0x54]
lea edi, [eax + eax*4 + 3]
cmp edi, edx
mov dword [esp + 0x58], edi
jle 0x43c5b2
mov edi, edx
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x44]
test ebx, ebx
jne 0x43c613
cmp dword [esp + 0xa4], edi
jge 0x43c613
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov word [esp + 0x84], bx
mov dword [esp + 0x78], ebx
movzx edx, byte [ecx + 0x17]
push edx
push ebx
push eax
lea esi, [esp + 0x74]
call fcn.0042db80
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x60], ecx
add edi, ecx
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0xa0]
add edi, ecx
xor ecx, ecx
test eax, eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x5c], ecx
jle 0x43c6e5
lea ebx, [ebx]
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x94]
mov eax, dword [esp + 0x50]
jae 0x43c773
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x90]
mov al, byte [ecx]
cmp al, 0x80
jae 0x43c67d
mov edx, dword [esp + 0x4c]
movzx ecx, al
mov eax, dword [esp + 0x5c]
mov dword [edx + eax*4], ecx
mov eax, 1
jmp 0x43c694
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
lea esi, [eax + edx*4]
call fcn.00408ed0
mov esi, dword [esp + 0x24]
movzx eax, al
mov edx, dword [esp + 0x4c]
movzx ecx, al
mov eax, dword [esp + 0x90]
add eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x90], eax
mov eax, dword [edx + ecx*4]
call fcn.0040d9a0
mov edx, dword [esp + 0x98]
add edx, eax
cmp edx, eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edx
jae 0x43c785
mov ecx, dword [esp + 0x94]
inc ecx
mov dword [esp + 0x90], ecx
lea edx, [esp + 0x68]
push edx
call fcn.0040d250
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
add esp, 4
cmp eax, ecx
mov word [esp + 0x84], 1
ja 0x43c877
mov edx, dword [esp + 0x98]
mov edi, dword [esp + 0x28]
cmp edx, edi
ja 0x43c877
cmp eax, ecx
jne 0x43c731
cmp edx, edi
jne 0x43c877
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
cmp dword [edx + eax*4], 0
je 0x43c816
mov edx, dword [esp + 0x44]
test edx, edx
je 0x43c79b
mov eax, dword [esp + 0x64]
call fcn.0040d1e0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + eax*4]
add ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + eax*4]
jmp 0x43c7fd
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
inc ecx
cmp ecx, eax
mov dword [esp + 0x5c], ecx
jl 0x43c640
jmp 0x43c6e5
mov eax, dword [ecx + eax*4]
call fcn.0040d9a0
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x68]
call fcn.0040d400
mov eax, dword [esp + 0x40]
movzx ecx, byte [eax + 0x17]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x4c]
push ecx
push edx
lea esi, [esp + 0x74]
call fcn.0042db80
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], ecx
mov eax, dword [eax + edx*4]
mov esi, dword [esp + 0x64]
call fcn.0040da70
mov eax, dword [esp + 0x64]
mov cl, byte [esp + 0xec]
mov byte [eax + 0x1f], cl
jmp 0x43c831
cmp byte [esi + 1], 0xf8
jne 0x43c831
mov edx, dword [esi + 0x10]
mov ebx, dword [esp + 0x64]
push 0x800
push edx
call fcn.0040d3c0
add esp, 8
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x43c865
mov eax, dword [esp + 0x64]
and byte [eax + 0x1d], 0xe7
mov eax, dword [esp + 0x64]
or byte [eax + 0x1d], 2
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x7c]
mov dword [eax + 0x14], ecx
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x64]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0x64]
call fcn.004196b0
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
push 0xed92
call fcn.0041d790
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
mov al, byte [ecx]
test al, al
mov byte [esp + 0x2c], al
je 0x43c8e7
jmp 0x43c8b0
inc ecx
mov dword [esp + 0x28], ecx
test byte [esi + 0x1d], 0x40
je 0x43c8c4
call fcn.00414c50
mov al, byte [esp + 0x2c]
mov ecx, dword [esp + 0xec]
push ecx
mov ecx, esi
call fcn.00430070
mov ecx, dword [esp + 0x2c]
mov al, byte [ecx]
add esp, 4
add esi, 0x28
test al, al
mov byte [esp + 0x2c], al
jne 0x43c8b0
inc ecx
mov dword [esp + 0x28], ecx
jmp case.0x43b16e.17
mov ecx, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x5c], eax
mov edx, dword [esi + 0x10]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], ebx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov dword [esp + 0x5c], eax
lea eax, [ebx + edx*8 - 0x28]
cmp ebx, eax
movzx edx, byte [ecx + 0x64]
mov edi, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], edx
mov dword [esp + 0x2c], edi
ja 0x43ca21
mov eax, dword [esp + 0x60]
test eax, eax
je 0x43c990
mov eax, dword [esp + 0xec]
push eax
mov ecx, edi
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x64]
mov al, byte [ecx + edx]
mov ecx, edi
call fcn.00430070
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
add esp, 4
test byte [edi + 0x1d], 0x40
je 0x43c9b0
mov eax, dword [edi + 0x18]
test eax, eax
jle 0x43c9b0
mov esi, edi
call fcn.00414c50
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov ecx, edi
call fcn.0040d8d0
mov dword [esp + 0x50], eax
call fcn.0040d9a0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x6c], eax
cdq
add ecx, eax
adc dword [esp + 0x34], edx
mov eax, dword [esp + 0x50]
push 0
push eax
mov dword [esp + 0x38], ecx
call fcn.00408f50
mov ecx, dword [esp + 0x40]
add ecx, eax
add esp, 8
mov dword [esp + 0x38], ecx
test byte [edi + 0x1d], 0x40
je 0x43c9fe
mov ecx, dword [edi]
add dword [esp + 0x48], ecx
jmp 0x43ca0e
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x43ca0e
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x58]
add edi, 0x28
cmp edi, eax
mov dword [esp + 0x2c], edi
jbe 0x43c952
mov edi, dword [esp + 0x38]
mov eax, edi
cdq
push edx
push eax
call fcn.00408f50
mov ebx, eax
add edi, ebx
mov eax, edi
cdq
push edx
push eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x48], edi
call fcn.00408f50
add esp, 0x10
cmp ebx, eax
jge 0x43ca51
inc edi
mov dword [esp + 0x38], edi
mov eax, edi
cdq
mov ecx, eax
mov eax, dword [esp + 0x48]
mov edi, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x34]
sbb edi, edx
add ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
adc edi, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edi
mov eax, dword [edx + 0x48]
cdq
cmp edi, edx
jg 0x43b368
jl 0x43ca8d
cmp ecx, eax
ja 0x43b368
mov esi, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea edi, [edx + eax*8]
push edi
xor eax, eax
mov dword [esp + 0x24], edi
call fcn.00414b80
add esp, 4
test eax, eax
jne 0x43b52e
mov eax, dword [esp + 0x38]
cmp eax, 0x80
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x28], ecx
jae 0x43cacc
mov byte [ecx], al
mov eax, 1
jmp 0x43cad1
call fcn.00408d20
mov edx, dword [esp + 0x58]
movzx esi, al
mov eax, dword [esp + 0x54]
cmp eax, edx
mov ecx, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x2c], ecx
ja 0x43cb43
lea ebx, [ebx]
mov edx, dword [esp + 0x64]
call fcn.0040d8d0
cmp eax, 0x80
mov dword [esp + 0x50], eax
jae 0x43cb14
mov edx, dword [esp + 0x28]
mov cl, al
mov byte [esi + edx], cl
mov eax, 1
jmp 0x43cb1f
mov ecx, dword [esp + 0x28]
add ecx, esi
call fcn.00408d20
mov esi, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
movzx edx, al
add esi, edx
mov edx, dword [esp + 0x58]
add ecx, 0x28
cmp ecx, edx
mov dword [esp + 0x68], esi
mov dword [esp + 0x2c], ecx
jbe 0x43caf0
mov eax, dword [esp + 0x54]
cmp eax, edx
mov dword [esp + 0x2c], eax
ja 0x43cb87
jmp 0x43cb50
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
sub ecx, esi
add esi, edx
mov edx, dword [esp + 0x64]
push ecx
push esi
call fcn.0040d9c0
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
add esi, eax
mov eax, dword [esp + 0x34]
add eax, 0x28
add esp, 8
cmp eax, ecx
mov dword [esp + 0x68], esi
mov dword [esp + 0x2c], eax
jbe 0x43cb50
mov eax, dword [esp + 0x40]
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], 0x410
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43cbab
mov dword [edi], eax
mov word [edi + 0x1c], 0x4410
mov byte [edi + 0x1f], 1
jmp case.0x43b16e.17
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x30], eax
je 0x43cbf3
lea edx, [esp + 0x28]
push edx
call fcn.0042c3d0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
mov edx, dword [esp + 0x30]
add esp, 4
mov dword [eax + 4], edx
jmp case.0x43b16e.17
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], ecx
mov dword [eax], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], edx
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov esi, dword [esi + 0x10]
mov dword [esp + 0x2c], esi
jne 0x43ccd2
mov eax, dword [edi + 0x90]
test eax, eax
jle 0x43cc3b
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x43cfad
mov ecx, esi
call fcn.00408380
lea ecx, [eax + 0x19]
mov esi, edi
mov dword [esp + 0x30], eax
call fcn.00412930
test eax, eax
mov dword [esp + 0x34], eax
je case.0x43b16e.17
lea ecx, [eax + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov edi, dword [edx]
inc ecx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x43cc96
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1dc], 1
jmp 0x43cc9c
inc dword [eax + 0x1d4]
mov ecx, dword [eax + 0x1d0]
mov edx, dword [esp + 0x34]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0x1e0]
mov dword [eax + 0x1d0], ecx
mov ecx, dword [esp + 0x34]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x1e4]
mov eax, dword [esp + 0x34]
mov dword [eax + 0xc], edx
jmp case.0x43b16e.17
mov dword [esp + 0x40], 0
mov ebx, dword [edi + 0x1d0]
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x43cd0c
jmp 0x43ccf0
mov ecx, dword [ebx]
mov edx, esi
call fcn.00408450
test eax, eax
je 0x43cd31
inc dword [esp + 0x40]
mov ebx, dword [ebx + 0x10]
test ebx, ebx
mov dword [esp + 0x38], ebx
jne 0x43ccf0
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x14]
push esi
push str.no_such_savepoint:__s
add edi, 0x5c
call fcn.0041db50
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x43b16e.17
mov eax, dword [edi + 0x90]
test eax, eax
jg 0x43cf09
mov eax, dword [esp + 0x28]
cmp eax, 2
jne 0x43cd55
cmp dword [edi + 0x8c], 1
jg 0x43cf10
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jne 0x43ce4a
mov cl, byte [edi + 0x1dc]
test cl, cl
je 0x43ce4a
cmp eax, 1
mov dword [esp + 0xf0], 1
jne 0x43ce55
mov ebx, dword [ebp + 8]
mov edx, eax
mov ecx, ebx
call fcn.0041ff10
mov esi, eax
test esi, esi
jne 0x43b3e3
push ebx
mov byte [edi + 0x1c], 1
call fcn.0042dd20
add esp, 4
cmp eax, 5
je 0x43fb6c
mov byte [edi + 0x1dc], 0
mov ecx, dword [ebx + 0x58]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x1d0], ebx
je 0x43ce0a
lea esp, [esp]
mov eax, dword [esi + 0x1d0]
mov dword [esp + 0x3c], eax
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x1d0], ecx
mov edx, dword [esp + 0x3c]
push edx
push esi
call fcn.00408130
mov ecx, dword [esi + 0x1d4]
add esp, 8
dec ecx
mov dword [esi + 0x1d4], ecx
mov ebx, dword [esp + 0x38]
cmp dword [esi + 0x1d0], ebx
jne 0x43cdd0
cmp dword [esp + 0x28], 1
jne 0x43cef2
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x1d0], eax
mov ecx, dword [esp + 0x38]
push ecx
push esi
call fcn.00408130
mov eax, dword [esp + 0xf8]
add esp, 8
test eax, eax
jne case.0x43b16e.17
mov eax, dword [esp + 0x14]
dec dword [eax + 0x1d4]
jmp case.0x43b16e.17
mov dword [esp + 0xf0], 0
mov ecx, dword [edi + 0x1d4]
sub ecx, dword [esp + 0x40]
dec ecx
xor eax, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov edx, dword [edi + 4]
test edx, edx
jle 0x43cebb
mov edx, dword [esp + 0x14]
jmp 0x43ce80
mov ecx, dword [esp + 0x40]
jmp 0x43ce80
mov edx, dword [edx + 8]
push ecx
mov ecx, dword [esp + 0x2c]
shl eax, 4
mov eax, dword [eax + edx + 4]
push ecx
push eax
call fcn.00426610
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [edx + 4]
jl 0x43ce77
mov ebx, dword [esp + 0x38]
cmp dword [esp + 0x28], 2
jne 0x43cdc0
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xc]
test ah, 2
je 0x43cdc4
mov eax, esi
call fcn.0040dcd0
push 0
mov eax, esi
call fcn.00420a50
mov ebx, dword [esp + 0x3c]
add esp, 4
jmp 0x43cdc4
mov edx, dword [ebx + 8]
mov dword [esi + 0x1e0], edx
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x1e4], eax
jmp case.0x43b16e.17
cmp dword [esp + 0x28], 2
jne 0x43cf17
mov eax, str.rollback
jmp 0x43cf1c
mov eax, str.release
mov edi, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x18]
push str.cannot__s_savepoint___SQL_statements_in_progress
add edi, 0x5c
call fcn.0041db50
add esp, 8
mov dword [esp + 0x10], 5
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov esi, dword [esi + 8]
mov dword [esp + 0x2c], esi
je 0x43cf7a
mov cl, byte [edi + 0x1c]
test cl, cl
jne 0x43cf7a
test esi, esi
mov ebx, 1
mov dword [esp + 0x30], ebx
je 0x43cf9e
cmp dword [edi + 0x8c], ebx
jle 0x43cf87
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x43cfad
mov dword [esp + 0x30], 0
mov ebx, 1
movzx ecx, byte [edi + 0x1c]
cmp eax, ecx
jne 0x43fb84
test eax, eax
jne 0x43cfcc
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x43cfda
mov ecx, dword [edi + 0x90]
test ecx, ecx
jle 0x43cf87
push str.cannot_commit_transaction___SQL_statements_in_progress
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x18]
add edi, 0x5c
call fcn.0041db50
add esp, 4
mov dword [esp + 0x10], 5
jmp case.0x43b16e.17
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x43cfda
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x18]
add edi, 0x5c
call fcn.0041db50
add esp, 4
mov dword [esp + 0x10], ebx
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je case.0x43b16e.17
mov edx, dword [esi + 8]
push edx
push eax
call fcn.00427d80
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x43fbf8
test eax, eax
jne 0x43fc2a
mov eax, dword [esi + 8]
test eax, eax
je case.0x43b16e.17
mov edi, dword [ebp + 8]
mov al, byte [edi + 0x66]
test al, al
je case.0x43b16e.17
mov esi, dword [esp + 0x14]
mov al, byte [esi + 0x1c]
test al, al
je 0x43d066
cmp dword [esi + 0x8c], 1
jle case.0x43b16e.17
mov eax, dword [edi + 0xd8]
test eax, eax
jne 0x43d08d
mov ebx, dword [esi + 0x1d8]
mov ecx, dword [esi + 0x1d4]
inc ebx
mov eax, ebx
add ecx, eax
mov dword [esi + 0x1d8], ebx
mov dword [edi + 0xd8], ecx
mov edx, dword [edi + 0xd8]
mov eax, dword [esp + 0x28]
push edx
call fcn.00414ac0
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x1e0]
mov dword [edi + 0xd0], eax
mov ecx, dword [esi + 0x1e4]
add esp, 4
mov dword [edi + 0xd4], ecx
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov esi, dword [esi + 0xc]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], esi
push edx
mov edx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
push esi
call fcn.0040cff0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
cdq
add esp, 8
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
shl eax, 4
add eax, edx
mov dword [esp + 0x28], eax
mov esi, dword [esi + 0xc]
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
call fcn.0041fda0
mov ecx, dword [esi]
mov edi, dword [esp + 0x24]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
push ecx
push edx
call fcn.00423a20
mov dword [esp + 0x18], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x43d161
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc]
mov eax, dword [esi]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0xc], 0x200
jmp 0x43d172
cmp eax, 2
jne 0x43d172
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc]
mov al, byte [esi]
mov byte [edx + 0x48], al
cmp dword [edi + 4], 1
jne case.0x43b16e.17
mov eax, dword [esp + 0x14]
call fcn.0040dcd0
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x62], 0
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x43d1bb
lea edx, [esp + 0x28]
push edx
push 1
call fcn.0040cff0
add esp, 8
jmp 0x43d1c3
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 8]
je case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
mov edi, dword [esp + 0x14]
push edx
push edi
call fcn.00408130
push edi
mov ebx, str.database_schema_has_changed
call fcn.00412a70
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
mov esi, dword [esi + 4]
mov eax, dword [edi + 8]
mov edx, esi
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov edx, dword [ecx]
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp edx, eax
je 0x43d219
push esi
mov eax, edi
call fcn.00420a50
add esp, 4
mov eax, edi
call fcn.0040dcd0
mov dword [esp + 0x10], 0x11
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x62]
test cl, cl
je 0x43d244
mov dword [esp + 0x10], 4
jmp case.0x43b16e.17
mov ebx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov edi, dword [esi + 8]
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x34], ecx
shl ecx, 4
add ecx, dword [ebx + 8]
mov dword [esp + 0x44], ecx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x3c], ebx
cmp byte [esi], 0x27
jne 0x43d290
mov bl, byte [eax + 0x64]
mov dword [esp + 0x38], 1
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x48]
cmp cl, bl
jae 0x43d298
mov byte [eax + 0x64], cl
jmp 0x43d298
mov dword [esp + 0x38], 0
mov cl, byte [esi + 3]
test cl, cl
je 0x43d2c8
mov eax, dword [esp + 0x18]
lea edx, [edi + edi*4]
lea esi, [eax + edx*8]
call fcn.0041fda0
mov esi, dword [esi]
cmp esi, 2
mov dword [esp + 0x30], esi
jl 0x43fc0f
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0x24]
mov cl, byte [esi + 1]
cmp cl, 0xfa
jne 0x43d2f0
mov ecx, dword [esi + 0x10]
mov edx, dword [eax]
mov dword [esp + 0x2c], ecx
mov edx, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dl, byte [edx + 0x49]
mov byte [ecx + 4], dl
mov ecx, dword [esp + 0x2c]
movzx edx, word [ecx + 6]
inc edx
jmp 0x43d2f8
cmp cl, 0xf2
jne 0x43d2fc
mov edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esi + 4]
push 1
push ecx
push edx
call fcn.0042e240
add esp, 0xc
test eax, eax
mov dword [esp + 0x40], eax
je 0x43b52e
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
call fcn.0040cd70
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
add esp, 0xc
cmp eax, 0x10
mov dword [esp + 0x10], eax
mov dword [ecx + 0x28], edx
jne 0x43d366
mov eax, dword [esp + 0x40]
mov dword [eax], 0
mov dword [esp + 0x10], 0
cmp byte [esi + 1], 0xfa
mov edx, dword [esp + 0x40]
setne cl
mov byte [edx + 0x16], cl
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x16]
test cl, cl
sete cl
mov byte [eax + 0x17], cl
jmp case.0x43b16e.17
mov edx, dword [esi + 8]
mov edi, dword [ebp + 8]
mov ebx, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
mov eax, edi
call fcn.0042e240
add esp, 0xc
test eax, eax
mov dword [esp + 0x28], eax
je 0x43b52e
mov ecx, dword [esp + 0x14]
mov ebx, 1
mov byte [eax + 0x14], bl
mov eax, dword [esp + 0x28]
add eax, 0x20
push eax
push 0x1f4
push 0
mov edx, 0x41e
mov eax, ebx
call fcn.0042a6a0
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43d4a5
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x20]
push ebx
push edx
call fcn.00427d80
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43d4a5
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43d484
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x108]
push 2
push eax
mov eax, dword [ecx + 0x20]
call fcn.00429a60
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43d468
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov ecx, dword [esi + 0x10]
mov eax, dword [eax + 0x20]
push edx
mov edx, dword [esp + 0x10c]
push ecx
push edx
call fcn.0040cd70
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x28], eax
mov edx, dword [edi]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x28]
mov cl, byte [ecx + 0x49]
add esp, 0xc
mov byte [eax + 4], cl
mov edx, dword [esp + 0x28]
mov byte [edx + 0x16], 0
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 0x16]
test cl, cl
sete cl
mov byte [eax + 0x17], cl
jmp case.0x43b16e.17
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 0x20]
push ecx
push 0
push ebx
call fcn.0040cd70
mov edx, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [edx + 0x16], 1
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 0x16]
test cl, cl
sete cl
mov byte [eax + 0x17], cl
jmp case.0x43b16e.17
mov edx, dword [esi + 0xc]
mov ebx, dword [esi + 4]
mov eax, dword [ebp + 8]
push 0
push 0xffffffffffffffff
push edx
call fcn.0042e240
add esp, 0xc
test eax, eax
mov dword [esp + 0x28], eax
je 0x43b52e
mov cl, 1
mov byte [eax + 0x14], cl
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x28]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x28]
mov byte [eax + 0x16], cl
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x17], 0
jmp case.0x43b16e.17
mov edi, dword [ebp + 8]
mov edx, dword [esi + 4]
mov eax, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
call fcn.0042dc50
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov dword [edx + ecx*4], 0
jmp case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 4]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x30], eax
cmp dword [eax], 0
je 0x43ef4c
movzx ecx, byte [esi]
mov dword [esp + 0x2c], ecx
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x30]
mov al, byte [ecx + 0x16]
test al, al
je 0x43d709
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
call fcn.0042ff90
mov eax, edi
call fcn.0041fc90
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov byte [ecx + 0x11], 0
mov ax, word [edi + 0x1c]
test al, 4
jne 0x43d6b1
test al, 8
jne 0x43d59a
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esp + 0x58]
xor ebx, ebx
cmp eax, ebx
jne 0x43d655
mov ecx, dword [esp + 0x5c]
mov eax, bind
cmp ecx, eax
jne 0x43d655
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], ebx
fild qword [esp + 0x110]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
je 0x43d5e8
fld qword [edi + 8]
fcomp qword [0x4ac6f0]
fnstsw ax
test ah, 0x41
jne 0x43d655
mov dword [esp + 0x28], 1
fld qword [edi + 8]
fcomp qword [0x4ac6f0]
fnstsw ax
test ah, 5
mov eax, dword [esp + 0x2c]
jp 0x43d61a
cmp eax, 0x2e
jl 0x43d648
mov edx, dword [esp + 0x30]
mov esi, dword [edx]
lea edi, [esp + 0x28]
call fcn.0042b040
jmp 0x43d62e
cmp eax, 0x2d
jg 0x43d648
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
lea edi, [esp + 0x28]
call fcn.0042b070
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x43fc2a
cmp dword [esp + 0x28], ebx
je case.0x43b16e.17
mov esi, dword [esp + 0x24]
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esp + 0x2c]
cmp eax, 0x2c
je 0x43d68c
cmp eax, 0x2e
je 0x43d68c
fild qword [esp + 0x58]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
jne 0x43d6b3
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov eax, 0xffffffff
add edx, eax
adc ecx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
jmp 0x43d6b3
fild qword [esp + 0x58]
fcomp qword [edi + 8]
fnstsw ax
test ah, 5
jp 0x43d6b3
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
jmp 0x43d6b3
xor ebx, ebx
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push ebx
push edx
mov edx, dword [ecx]
push eax
push ebx
push edx
call fcn.0042b0b0
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x43fc2a
cmp dword [esp + 0x28], ebx
jne 0x43d783
mov eax, dword [esp + 0x30]
mov byte [eax + 0x11], 1
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
mov dword [edx + 8], ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0xc], eax
jmp 0x43d783
mov edx, dword [esi + 0x10]
mov dword [esp + 0x50], edx
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x38], eax
xor eax, eax
mov al, byte [esp + 0x2c]
mov word [esp + 0x3c], dx
and eax, 1
shl eax, 3
mov word [esp + 0x3e], ax
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
mov dword [esp + 0x48], eax
test byte [eax + 0x1d], 0x40
je 0x43d753
mov esi, eax
call fcn.00414c50
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov ecx, dword [ecx]
lea edx, [esp + 0x28]
push edx
push 0
push 0
push 0
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.0042b0b0
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov edx, dword [esp + 0x30]
mov byte [edx + 0x11], al
xor ebx, ebx
mov eax, dword [esp + 0x30]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x44], ebx
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x2e
mov eax, dword [esp + 0x28]
jl 0x43d7dd
cmp eax, ebx
jl 0x43d7b3
jne 0x43d7aa
cmp ecx, 0x2f
je 0x43d7b3
mov dword [esp + 0x28], ebx
jmp case.0x43b16e.17
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push ecx
call fcn.0042d4b0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov edx, dword [esp + 0x30]
mov byte [edx + 0x11], 0
jmp 0x43d821
cmp eax, ebx
jg 0x43d7f9
jne 0x43d7e8
cmp ecx, 0x2c
je 0x43d7f9
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.0040cf20
mov dword [esp + 0x28], eax
jmp 0x43d821
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.0042d5d0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov ecx, dword [esp + 0x30]
mov byte [ecx + 0x11], 0
cmp dword [esp + 0x28], ebx
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x28], eax
cmp dword [eax], 0
je case.0x43b16e.17
mov byte [eax + 0x14], 0
mov esi, dword [esi + 8]
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*4]
lea eax, [eax + edx*8]
call fcn.0041fc90
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x1c], edx
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x28]
mov byte [edx + 0x15], 1
jmp case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x34]
mov edi, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x28], edx
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea ebx, [edi + ecx*8]
cmp dword [eax], 0
je 0x43d989
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x43d8e2
mov edx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
mov cx, word [esi + 0x10]
lea edx, [esp + 0x38]
mov word [esp + 0x3c], cx
mov dword [esp + 0x48], ebx
mov word [esp + 0x3e], 0x10
mov dword [esp + 0x34], edx
jmp 0x43d928
test byte [ebx + 0x1d], 0x40
je 0x43d8f7
mov esi, ebx
call fcn.00414c50
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
mov eax, dword [eax + 0x28]
push ecx
push edx
push eax
mov edx, 0x97
lea eax, [esp + 0x5c]
call fcn.004152f0
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], eax
je 0x43b52e
or byte [eax + 6], 0x10
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [eax]
lea ecx, [esp + 0x30]
push ecx
push 0
push 0
push 0
push edx
push eax
call fcn.0042b0b0
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x10]
add esp, 0x18
test eax, eax
jne 0x43d957
mov ebx, dword [esp + 0x34]
call fcn.0040dc60
mov eax, dword [esp + 0x10]
test eax, eax
jne case.0x43b16e.17
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x28], ecx
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x28]
cmp byte [esi], 0x32
jne 0x43d9a3
test edx, edx
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
test edx, edx
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea ebx, [ecx + edx*8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], ecx
mov edx, dword [esi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x2c], eax
xor edi, edi
mov dword [eax + 0x40], edi
mov edx, dword [esp + 0x2c]
mov dword [edx + 0x44], edi
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov edx, dword [ecx + 0x28]
mov dx, word [edx + 6]
xor ax, ax
cmp dx, di
mov edi, dword [esp + 0x38]
mov word [esp + 0x34], dx
mov word [esp + 0x28], ax
jbe 0x43da34
movzx edx, ax
lea edx, [edx + edx*4]
test byte [edi + edx*8 + 0x1c], 1
jne 0x43dabe
inc ax
cmp ax, word [esp + 0x34]
mov word [esp + 0x28], ax
jb 0x43da15
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x43b16e.17
mov eax, dword [ecx + 0x28]
mov ecx, dword [esp + 0x34]
inc ecx
mov esi, ebx
mov dword [esp + 0x40], eax
mov word [esp + 0x44], cx
mov word [esp + 0x46], 0x20
mov dword [esp + 0x50], edi
call fcn.0041fda0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx]
add ecx, 0x40
push ecx
push 0
mov dword [esp + 0x60], edx
mov eax, dword [ebx + 4]
push 0
push 0
lea edx, [esp + 0x50]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.0042b0b0
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x5e]
add esp, 0x18
test al, 0x20
jne 0x43dad3
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x58]
jne 0x43dab0
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x5c]
je 0x43dad3
mov dword [ebx], eax
mov edx, dword [esp + 0x4c]
mov dword [ebx + 4], edx
jmp case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], 0
jmp case.0x43b16e.17
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
dec eax
mov dword [esp + 0x1c], eax
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea ebx, [edx + ecx*8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov ecx, dword [edx + eax*4]
mov dword [esp + 0x28], ecx
mov eax, dword [ecx]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x2c], eax
je 0x43db94
mov dword [esp + 0x30], edx
mov ecx, dword [ebx]
lea edi, [esp + 0x30]
push edi
push 0
mov dword [esp + 0x40], ecx
mov edx, dword [ebx + 4]
push edx
push ecx
push 0
push eax
mov dword [esp + 0x54], edx
call fcn.0042b0b0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [ebx]
mov dword [ecx + 8], eax
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x40]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x48]
add esp, 0x18
test edx, edx
mov edx, dword [esp + 0x28]
sete cl
mov byte [edx + 0x11], cl
mov eax, dword [esp + 0x28]
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x44], 0
mov edx, dword [esp + 0x28]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43db88
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x40], eax
jmp case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov dword [ecx + 0x40], edx
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov edi, dword [edx + 0x30]
mov ecx, dword [esp + 0x20]
mov dword [ecx], edi
mov edx, dword [edx + 0x34]
mov dword [ecx + 4], edx
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x34]
mov eax, dword [edx + ecx*4]
mov edx, dword [eax + 0x30]
mov ecx, dword [eax + 0x34]
add edx, 1
adc ecx, 0
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], ecx
jmp case.0x43b16e.17
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x34]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov ecx, dword [esi + 4]
mov ebx, dword [edx + ecx*4]
mov dword [esp + 0x30], ebx
cmp dword [ebx], eax
je 0x43de5b
mov dword [esp + 0x38], eax
mov al, byte [ebx + 0x13]
test al, al
jne 0x43dd79
mov ecx, dword [ebx]
call fcn.0040cdf0
mov ecx, eax
or ecx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jne 0x43dc9d
mov esi, dword [ebx]
lea edi, [esp + 0x34]
call fcn.0042b070
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x43dc51
mov eax, 1
xor edx, edx
jmp 0x43dc91
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
lea edi, [esp + 0x28]
call fcn.0040ce30
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
cmp eax, 0xffffffff
jne 0x43dc8b
cmp edx, 0x7fffffff
jne 0x43dc8b
mov eax, dword [esp + 0x30]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
jmp 0x43dc99
add eax, 1
adc edx, 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov esi, dword [esp + 0x24]
mov edi, dword [esi + 0xc]
test edi, edi
je 0x43dd4e
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xdc]
test ecx, ecx
je 0x43dcdb
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x43dccd
mov ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x43dcc0
mov esi, dword [esi + 0xc]
mov eax, dword [ecx + 0x10]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
jmp 0x43dce5
mov edx, dword [esp + 0x18]
lea ecx, [edi + edi*4]
lea esi, [edx + ecx*8]
mov dword [esp + 0x3c], esi
call fcn.0041fda0
mov edx, dword [esp + 0x3c]
mov eax, dword [edx]
cmp eax, 0xffffffff
mov ecx, dword [edx + 4]
jne 0x43dd08
cmp ecx, 0x7fffffff
je 0x43fc22
mov esi, dword [esp + 0x30]
mov bl, byte [esi + 0x13]
test bl, bl
jne 0x43fc22
mov esi, dword [esp + 0x2c]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x43dd35
jl 0x43dd2d
cmp dword [esp + 0x28], eax
jae 0x43dd35
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x28]
mov dword [edx], eax
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
cmp edx, 0x7fffffff
jg 0x43dd65
jl 0x43dd5d
cmp eax, 0xffffffff
jae 0x43dd65
add eax, 1
adc edx, 0
jmp 0x43dd69
xor eax, eax
xor edx, edx
push edx
push eax
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
call fcn.0040cdc0
add esp, 8
mov ecx, dword [esp + 0x30]
mov al, byte [ecx + 0x13]
test al, al
je 0x43de40
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x30]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x34]
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ecx
xor esi, esi
cmp ecx, esi
jne 0x43ddce
mov edx, dword [esp + 0x28]
mov eax, edx
and eax, 0xffffff
xor ecx, ecx
cmp eax, edx
jne 0x43ddce
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jne 0x43ddce
add edx, 1
adc eax, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
jmp 0x43ddf2
lea ecx, [esp + 0x28]
push ecx
push 8
call fcn.00412de0
mov eax, dword [esp + 0x40]
add esp, 8
cmp eax, 5
jge 0x43ddf2
and dword [esp + 0x28], 0xffffff
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x34]
push esi
push eax
mov eax, dword [edx]
push ecx
push esi
push eax
call fcn.0042b0b0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add esp, 0x18
inc ecx
cmp ecx, 0x64
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], ecx
jge 0x43de34
cmp eax, esi
jne 0x43de40
cmp edx, esi
je 0x43dda2
cmp eax, esi
jne 0x43de40
cmp edx, esi
je 0x43fc22
mov ecx, dword [esp + 0x30]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x30]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x30]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 4], edx
jmp case.0x43b16e.17
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x28], edi
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x38], edx
cmp byte [esi], 0x37
mov eax, dword [esi + 0xc]
jne 0x43deb3
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x34], ecx
jmp 0x43debc
cdq
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov cl, byte [esi + 3]
mov dl, 1
test dl, cl
je 0x43dec8
inc dword [ebx + 0x6c]
test byte [esi + 3], 2
je 0x43dee0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x34]
mov dword [ecx + 0x34], eax
mov edi, dword [esp + 0x28]
mov al, byte [edi + 0x1c]
xor ebx, ebx
test dl, al
je 0x43def7
mov dword [edi + 0x14], ebx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 0x18], ebx
mov edi, dword [esp + 0x28]
test byte [esi + 3], 0x10
je 0x43df0a
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x40], eax
jmp 0x43df0e
mov dword [esp + 0x40], ebx
test byte [edi + 0x1d], 0x40
je 0x43df1c
mov ecx, dword [edi]
mov dword [esp + 0x3c], ecx
jmp 0x43df20
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x38]
mov esi, dword [edx]
push ebx
push ebx
call fcn.0040cdc0
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
xor eax, eax
mov al, byte [esi + 3]
and eax, 8
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0x5c]
push edx
push ebx
push ecx
call fcn.0042d700
mov edx, dword [esp + 0x60]
mov byte [edx + 0x11], 0
mov ecx, dword [esp + 0x60]
mov byte [ecx + 0x15], 0
mov edx, dword [esp + 0x60]
add esp, 0x28
cmp eax, ebx
mov dword [esp + 0x10], eax
mov dword [edx + 0x44], ebx
jne case.0x43b16e.17
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xb8], ebx
je case.0x43b16e.17
cmp dword [esi + 0x10], ebx
je case.0x43b16e.17
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov ecx, dword [edx + ecx]
mov dword [esp + 0x44], ecx
mov edi, dword [esi + 0x10]
mov dword [esp + 0x48], edi
mov dl, byte [esi + 3]
mov esi, dword [esp + 0x34]
and dl, 4
neg dl
push esi
mov esi, dword [esp + 0x34]
push esi
push edi
push ecx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
mov dword [esp + 0x60], edx
mov edx, dword [eax + 0xb4]
push edx
call dword [eax + 0xb8]
jmp 0x43fa89
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x34]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
mov edi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], edi
cmp dword [ecx + 0xb8], eax
je 0x43e030
cmp dword [esi + 0x10], eax
je 0x43e030
mov edx, dword [edi + 8]
mov dword [esp + 0x28], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], eax
call fcn.0042dfb0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov ecx, dword [esp + 0x30]
mov esi, dword [ecx]
push eax
push eax
call fcn.0040cdc0
mov edx, dword [esp + 0x38]
mov ebx, dword [edx]
add esp, 8
call fcn.0042d900
test eax, eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x44], 0
jne 0x43e0b2
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0xb8]
test ecx, ecx
je 0x43e0b2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43e0b2
mov esi, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x2c]
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xb4]
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 4]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push edx
call ecx
add esp, 0x18
mov eax, dword [esp + 0x24]
test byte [eax + 8], 1
je case.0x43b16e.17
mov eax, dword [ebp + 8]
inc dword [eax + 0x6c]
jmp case.0x43b16e.17
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x6c]
mov eax, dword [esp + 0x14]
call fcn.0040dcb0
mov dword [esi + 0x6c], 0
jmp case.0x43b16e.17
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea ebx, [edx + ecx*8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x28], edi
mov eax, dword [edi]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], eax
call fcn.0042dfb0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov ecx, dword [esp + 0x28]
mov al, byte [ecx + 0x17]
test al, al
mov eax, dword [esp + 0x2c]
je 0x43e15e
lea edi, [esp + 0x38]
call fcn.0040ce30
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x48]
mov ecx, dword [esp + 0x3c]
cdq
cmp ecx, edx
jg 0x43b368
mov ecx, dword [esp + 0x38]
jl 0x43e158
cmp ecx, eax
ja 0x43b368
mov dword [esp + 0x30], ecx
jmp 0x43e17e
lea edx, [esp + 0x30]
push edx
call fcn.0040ce60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov edx, dword [eax + 0x48]
add esp, 4
cmp ecx, edx
ja 0x43b368
push ebx
xor eax, eax
call fcn.00414b80
add esp, 4
test eax, eax
jne 0x43b52e
mov ecx, dword [esp + 0x30]
xor edx, edx
mov dx, word [ebx + 0x1c]
mov dword [ebx + 0x18], ecx
and edx, 0xbf10
or edx, 0x10
mov word [ebx + 0x1c], dx
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 0x17]
test cl, cl
mov ecx, dword [esp + 0x2c]
je 0x43e1d9
mov eax, dword [ebx + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0x38]
call fcn.004286c0
add esp, 8
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1f], 1
jmp case.0x43b16e.17
mov edx, dword [ebx + 0x14]
mov eax, dword [esp + 0x30]
push edx
push eax
push 0
push ecx
call fcn.0042d470
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1f], 1
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], eax
mov cl, byte [eax + 0x14]
test cl, cl
je 0x43e220
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x1c], 1
jmp case.0x43b16e.17
mov cl, byte [eax + 0x15]
test cl, cl
je 0x43e23a
mov edx, dword [eax + 0x18]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x34], eax
jmp 0x43e2be
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x43e281
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
lea edx, [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x38]
push edx
push eax
call dword [ecx + 0x30]
mov ecx, dword [esi + 0x5c]
mov edx, dword [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x20], eax
call fcn.00408130
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
mov dword [esi + 0x5c], ecx
add esp, 0x10
mov dword [eax + 8], 0
jmp 0x43e2be
mov edi, eax
call fcn.0042dfb0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 0x11]
test cl, cl
je 0x43e2af
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
jmp 0x43e2be
mov eax, dword [eax]
lea edi, [esp + 0x30]
call fcn.0040ce30
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov dword [eax], ecx
mov edx, dword [esp + 0x34]
mov dword [eax + 4], edx
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x28], eax
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x28]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx]
test esi, esi
je case.0x43b16e.17
call fcn.0040c720
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x28], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x2c], ecx
jne 0x43e32c
mov dword [esp + 0x30], 1
jmp 0x43e343
lea edi, [esp + 0x30]
mov esi, ecx
call fcn.0042b070
mov esi, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dl, byte [esp + 0x30]
mov byte [eax + 0x14], dl
mov eax, dword [esp + 0x28]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x28]
mov dword [edx + 0x44], 0
mov esi, dword [esi + 8]
test esi, esi
jle case.0x43b16e.17
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x43b16e.17
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
inc dword [eax + 0xb4]
jmp 0x43e394
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x34]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 1
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x2c], eax
je 0x43e3f5
lea edi, [esp + 0x30]
mov esi, eax
call fcn.0042b040
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
test eax, eax
sete al
mov byte [ecx + 0x12], al
mov edx, dword [esp + 0x28]
mov byte [edx + 0x15], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x44], 0
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x11], 0
mov ecx, dword [esp + 0x28]
mov dl, byte [esp + 0x30]
mov byte [ecx + 0x14], dl
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xe0]
test ecx, ecx
jne 0x43fc71
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 4]
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*4]
test eax, eax
mov dword [esp + 0x28], eax
je case.0x43b16e.17
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x2c], ecx
jne 0x43e452
mov byte [eax + 0x14], 1
jmp case.0x43b16e.17
mov dword [esp + 0x30], 1
cmp byte [esi], 0x43
jne 0x43e46c
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.0042d4b0
jmp 0x43e477
lea edx, [esp + 0x30]
push edx
push ecx
call fcn.0042d5d0
mov cl, byte [esp + 0x38]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov byte [eax + 0x14], cl
mov edx, dword [esp + 0x30]
mov dword [edx + 0x44], 0
mov eax, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x43e4bf
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 0x1c], eax
mov al, byte [esi + 3]
test al, al
je 0x43e4bf
movzx eax, al
mov ecx, dword [edi + eax*4 + 0xac]
lea eax, [edi + eax*4 + 0xac]
inc ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x11], 0
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [esi + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov ecx, dword [edx]
test ecx, ecx
mov dword [esp + 0x2c], ecx
je case.0x43b16e.17
test byte [ebx + 0x1d], 0x40
je 0x43e51c
mov esi, ebx
call fcn.00414c50
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x30], eax
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x34], ebx
test byte [esi + 3], 0x10
je 0x43e535
mov edi, dword [edx + 0x40]
jmp 0x43e537
xor edi, edi
mov edx, dword [esi + 0xc]
push edx
push 0
push 0
cdq
push 0x4b0404
push edx
push eax
push ebx
push ecx
mov eax, edi
call fcn.0042d700
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
add esp, 0x20
mov dword [eax + 0x44], 0
jmp case.0x43b16e.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x2c], ecx
je case.0x43b16e.17
mov edx, dword [eax + 0x28]
mov dword [esp + 0x38], edx
mov ax, word [esi + 0xc]
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x18]
mov word [esp + 0x3e], 0
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea edx, [eax + edx*8]
lea eax, [esp + 0x30]
push eax
push 0
push 0
mov dword [esp + 0x54], edx
push 0
lea edx, [esp + 0x48]
push edx
push ecx
call fcn.0042b0b0
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43e5e3
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x43e5e3
mov ebx, dword [esp + 0x2c]
call fcn.0042d900
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 0x44], 0
jmp case.0x43b16e.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
mov word [edx + 0x1c], 1
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x43b16e.17
mov edi, dword [esp + 0x2c]
call fcn.0042dfb0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x14]
test cl, cl
jne case.0x43b16e.17
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x30]
push ecx
call fcn.0042e040
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43fc2a
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
mov dword [eax], edx
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov word [eax + 0x1c], 4
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 0x34]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x28], eax
cmp dword [eax], 0
je case.0x43b16e.17
mov edx, dword [eax + 0x28]
mov dword [esp + 0x30], edx
mov cx, word [esi + 0x10]
mov word [esp + 0x34], cx
mov bl, byte [esi + 3]
xor edx, edx
test bl, bl
setne dl
lea edx, [edx*8 + 4]
mov word [esp + 0x36], dx
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x2c]
mov dword [esp + 0x40], ecx
push edx
lea ecx, [esp + 0x34]
push ecx
call fcn.0042e160
mov dword [esp + 0x18], eax
mov al, byte [esi]
add esp, 8
cmp al, 0x51
mov eax, dword [esp + 0x2c]
jne 0x43e6f0
neg eax
jmp 0x43e6f1
inc eax
test eax, eax
mov dword [esp + 0x2c], eax
jle case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], 0
mov eax, dword [ecx + 0x88]
test eax, eax
mov dword [esp + 0x30], eax
je 0x43e749
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x43e73e
cmp byte [eax + 0x65], 2
jae 0x43e73e
mov edx, dword [eax + 0x54]
test edx, edx
jl 0x43e73e
inc dword [esp + 0x2c]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0x30], eax
jne 0x43e724
mov edi, dword [esp + 0x20]
mov eax, 1
mov word [edi + 0x1c], ax
cmp dword [esp + 0x2c], eax
jle 0x43e770
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], 6
mov byte [edx + 0x38], 2
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esi + 4]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push edx
call fcn.0042c3a0
mov ecx, eax
mov word [edi + 0x1c], 4
mov eax, dword [esp + 0x30]
cdq
add esp, 8
test ecx, ecx
mov dword [esp + 0x10], ecx
mov dword [edi], eax
mov dword [edi + 4], edx
jne case.0x43b16e.17
mov edx, dword [esp + 0x28]
test edx, edx
je case.0x43b16e.17
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 8]
shl eax, 4
add eax, edi
mov edi, dword [esi + 4]
call fcn.0040f090
mov byte [esp + 0xf7], 1
jmp case.0x43b16e.17
mov dword [esp + 0x28], 0
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x28]
and edx, eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [eax + 8]
shl edx, 4
mov ebx, dword [edx + ecx + 4]
call fcn.0042c150
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
add esp, 8
test eax, eax
je case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x6c]
mov eax, dword [esp + 0x28]
add edx, eax
mov dword [ecx + 0x6c], edx
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x43b16e.17
mov ecx, dword [esp + 0x18]
lea edx, [esi + esi*4]
mov esi, dword [ecx + edx*8]
lea ecx, [ecx + edx*8]
cdq
add esi, eax
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp case.0x43b16e.17
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], 0
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
shl eax, 4
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x30], eax
cmp byte [esi], 0x62
setne cl
dec ecx
and ecx, 3
add ecx, 2
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 4]
push ecx
lea ecx, [esp + 0x2c]
push ecx
call fcn.00429a60
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
cdq
add esp, 8
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x14]
push ebx
mov dword [esp + 0x2c], edx
call fcn.0040c380
mov eax, dword [esi + 8]
add esp, 4
test eax, eax
mov eax, dword [esp + 0x28]
jne 0x43e8e7
mov edx, dword [ebx + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
test byte [ecx + 0x4a], 1
je 0x43e98f
cmp eax, 1
mov ecx, str.sqlite_temp_master
je 0x43e8f6
mov ecx, str.sqlite_master
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], ebx
mov edx, dword [esi + 4]
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 8]
add edx, 0x5c
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
mov esi, ebx
call fcn.00418920
add esp, 0x10
test eax, eax
mov dword [esp + 0x30], eax
jne 0x43e93f
mov dword [esp + 0x10], 7
jmp 0x43e98b
mov esi, dword [esp + 0x14]
push 0
lea eax, [esp + 0x38]
push eax
mov byte [esi + 0x7c], 1
mov ecx, dword [esp + 0x38]
push fcn.00438640
push ecx
push esi
mov dword [esp + 0x54], 0
call fcn.00441a30
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43e979
mov edx, dword [esp + 0x40]
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x30]
push eax
push esi
call fcn.00408130
add esp, 8
mov byte [esi + 0x7c], 0
mov ebx, dword [esp + 0x14]
call fcn.0040c430
cmp dword [esp + 0x10], 7
je 0x43b52e
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x14]
call fcn.0041a850
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x14]
call fcn.0041ad20
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x14]
call fcn.00416330
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x14]
call fcn.00416c80
jmp case.0x43b16e.17
mov esi, dword [esi + 8]
mov dword [esp + 0x28], esi
lea ecx, [esi*4 + 4]
mov esi, dword [esp + 0x14]
call fcn.00412930
test eax, eax
mov dword [esp + 0x2c], eax
je 0x43b52e
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0xc]
mov ebx, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea edx, [ebx + ecx*8]
mov dword [esp + 0x3c], edx
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
lea ebx, [ebx + ecx*8]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x30], ecx
jle 0x43ea6f
lea edx, [ecx + ecx*4]
lea eax, [ebx + edx*8]
call fcn.0041fc90
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
inc ecx
cmp ecx, eax
mov dword [esp + 0x30], ecx
jl 0x43ea44
mov eax, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
movzx ecx, byte [esi + 3]
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push edx
mov edx, dword [esi + 8]
push eax
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
mov eax, dword [esp + 0x3c]
call fcn.0042a350
mov ecx, dword [esp + 0x3c]
push ecx
push esi
mov dword [esp + 0x50], eax
call fcn.00408130
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov edi, dword [ecx]
cdq
sub edi, eax
mov dword [ecx], edi
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 4]
sbb esi, edx
push ebx
mov dword [eax + 4], esi
call fcn.0042e3e0
mov eax, dword [esp + 0x50]
add esp, 0x1c
test eax, eax
je 0x43eafb
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x43b52e
push 1
push 0xffffffffffffffff
mov eax, fcn.004080d0
call fcn.0042e460
add esp, 8
movzx ecx, byte [esp + 0xec]
mov eax, ebx
call fcn.0041fbf0
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
lea ecx, [esi + esi*4]
lea esi, [eax + ecx*8]
mov al, byte [edi + 0x1c]
mov bl, 0x20
test bl, al
jne 0x43eb3c
call fcn.00414d00
test byte [edi + 0x1c], bl
je 0x43b52e
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov edi, dword [edi]
push edx
push eax
call fcn.00413860
add esp, 8
jmp case.0x43b16e.17
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xe0]
test eax, eax
jne 0x43fc71
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov al, byte [ebx + edx*8 + 0x1c]
test al, 0x20
lea edi, [ebx + edx*8]
je 0x43eba8
mov ecx, dword [edi]
lea eax, [esp + 0x28]
call fcn.0040af50
test eax, eax
je 0x43eba8
mov esi, dword [esi + 0xc]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
lea edx, [esi + esi*4]
push ecx
lea esi, [ebx + edx*8]
call fcn.0040d360
add esp, 8
jmp case.0x43b16e.17
push edi
call fcn.0042e3e0
mov esi, dword [esi + 8]
add esp, 4
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0xf0], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x28], eax
mov cl, byte [edi + 0x1c]
mov bl, 0x20
test bl, cl
jne 0x43ebfd
call fcn.00414d00
test byte [edi + 0x1c], bl
je 0x43b52e
mov eax, dword [esp + 0x28]
test eax, eax
je 0x43ec48
jl 0x43ec08
and eax, 0xf
jmp 0x43ec0d
mov eax, 0xff
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
mov bl, al
mov eax, dword [edi]
push ecx
call fcn.0040af90
add esp, 8
test eax, eax
mov dword [esp + 0x2c], eax
je 0x43ec3c
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esp + 0x28]
test eax, eax
jl case.0x43b16e.17
mov eax, dword [esp + 0xf0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov edi, dword [edi]
push edx
push eax
call fcn.00413860
add esp, 8
jmp case.0x43b16e.17
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x40], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
mov dword [esp + 0x30], edi
mov al, byte [esi + 3]
test al, al
je 0x43ecb4
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xdc]
test eax, eax
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], eax
je 0x43ecb7
lea esp, [esp]
cmp dword [eax + 0x20], edx
je case.0x43b16e.17
mov eax, dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x43eca0
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 0xe0]
cmp edx, dword [ebx + 0x70]
jl 0x43ece8
mov edi, dword [ebp + 8]
push str.too_many_levels_of_trigger_recursion
add edi, 0x5c
mov eax, ebx
mov dword [esp + 0x14], 1
call fcn.0041db50
add esp, 4
jmp case.0x43b16e.17
test byte [edi + 0x1c], 0x40
jne 0x43ee06
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
add eax, edx
mov dword [esp + 0x28], eax
mov ecx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
lea eax, [eax*4 + 0x40]
mov edx, ebx
mov dword [esp + 0x2c], eax
call fcn.00417b70
test eax, eax
mov dword [esp + 0x3c], eax
je 0x43b52e
mov edx, dword [esp + 0x30]
push edx
call fcn.0040d250
mov eax, dword [esp + 0x34]
mov word [eax + 0x1c], 0x40
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
mov dword [eax], esi
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x24], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x40]
mov dword [edx + 0x28], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x4c]
mov eax, dword [esp + 0x40]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x40]
mov ecx, dword [esi + 0x48]
mov dword [edx + 0x14], ecx
mov eax, dword [esi + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x18], eax
mov dx, word [esi + 0x32]
mov eax, dword [esp + 0x40]
mov word [eax + 0x1c], dx
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x40]
mov dword [edx + 8], ecx
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x24]
lea edx, [eax + eax*4]
lea edx, [ecx + edx*8 + 0x40]
lea eax, [ecx + 0x40]
add esp, 4
cmp eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
je 0x43ee0c
lea esp, [esp]
mov word [eax + 0x1c], 1
mov eax, dword [esp + 0x34]
mov dword [eax + 0x10], ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
add eax, 0x28
cmp eax, ecx
mov dword [esp + 0x34], eax
jne 0x43ede0
mov ecx, dword [esp + 0x3c]
jmp 0x43ee0c
mov ecx, dword [edi]
mov dword [esp + 0x3c], ecx
mov edi, dword [esi + 0xe0]
mov edx, dword [esi + 0xdc]
inc edi
mov dword [esi + 0xe0], edi
mov dword [ecx + 0x3c], edx
mov eax, dword [ebx + 0x30]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x30], eax
mov edx, dword [ebx + 0x34]
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x34], edx
mov ecx, dword [esi + 0x6c]
mov edx, dword [esp + 0x3c]
mov dword [edx + 0x38], ecx
mov eax, dword [esp + 0x3c]
lea ecx, [eax + 0x18]
mov dword [esi + 0xdc], eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x6c], 0
mov edx, dword [eax + 0x24]
mov dword [esi + 0x48], edx
mov ax, word [eax + 0x28]
mov word [esi + 0x32], ax
mov eax, edx
inc eax
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
mov dword [esi + 0x34], eax
mov eax, dword [ecx]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x100], eax
mov dword [esi + 0xc], ecx
mov dword [esp + 0x1c], 0xffffffff
jmp case.0x43b16e.17
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xdc]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x28], ecx
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov edi, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 4]
add eax, edi
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push 0x1000
push eax
mov dword [esp + 0x34], eax
call fcn.0040d3c0
add esp, 8
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
mov eax, dword [esi + 8]
cdq
je 0x43ef0b
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x1e0]
add esi, eax
mov eax, dword [ecx + 0x1e4]
adc eax, edx
mov dword [ecx + 0x1e0], esi
mov dword [ecx + 0x1e4], eax
jmp case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + 0xc8]
add esi, eax
mov eax, dword [ecx + 0xcc]
adc eax, edx
mov dword [ecx + 0xc8], esi
mov dword [ecx + 0xcc], eax
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
je 0x43ef59
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1e0]
or edx, dword [eax + 0x1e4]
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc8]
or ecx, dword [eax + 0xcc]
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xdc]
test ecx, ecx
je 0x43efae
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x43efa0
mov ecx, eax
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x43ef93
mov esi, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
jmp 0x43efbb
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x18]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
mov dword [esp + 0x28], esi
call fcn.0041fda0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [eax + edx*8]
call fcn.0041fda0
mov ecx, dword [esp + 0x28]
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ecx + 4]
cmp edx, esi
jg case.0x43b16e.17
jl 0x43effa
mov edx, dword [ecx]
cmp edx, eax
jae case.0x43b16e.17
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
mov dword [eax + 4], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
jl case.0x43b16e.17
jg 0x43f02c
mov edx, ecx
cmp dword [edx + eax*8], 0
jbe case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 4]
test edx, edx
jg case.0x43b16e.17
jl 0x43f05d
mov edx, ecx
cmp dword [edx + eax*8], 0
jae case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea ecx, [ecx + eax*8]
mov eax, dword [esi + 0xc]
cdq
add ebx, eax
adc edi, edx
mov edx, ebx
mov eax, edi
or edx, eax
mov dword [ecx], ebx
mov dword [ecx + 4], edi
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
movzx ecx, byte [esi + 3]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [ebp + 8]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x24]
mov dword [esp + 0x78], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x2c], eax
jle 0x43f101
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x78]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x34]
call fcn.0040e150
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
inc eax
add edx, 0x28
cmp eax, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], edx
jl 0x43f0d1
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x68], eax
mov edx, dword [eax + 0x18]
xor edi, edi
inc edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x38]
mov word [esp + 0x5c], 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
test byte [eax + 3], 8
je 0x43f15a
mov ecx, dword [esi - 4]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x28]
push edx
push ecx
lea edx, [esp + 0x40]
push edx
call dword [eax + 0x10]
mov eax, dword [esp + 0x78]
add esp, 0xc
cmp eax, edi
je 0x43f19f
lea eax, [esp + 0x40]
push eax
call fcn.0041ffb0
mov edi, dword [ebp + 8]
push eax
push 0x4ac3ac
add edi, 0x5c
mov eax, ebx
call fcn.0041db50
mov ecx, dword [esp + 0x78]
add esp, 0xc
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x40]
push edx
call fcn.0040d250
add esp, 4
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov dword [esp + 0x28], ebx
mov edx, dword [esi + 0x10]
call fcn.0040d170
test eax, eax
mov dword [esp + 0x10], eax
je 0x43f1f4
mov edx, dword [esp + 0x28]
push edx
call fcn.0041ffb0
mov edi, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x1c]
push 0x4ac3ac
add edi, 0x5c
call fcn.0041db50
add esp, 0xc
movzx ecx, byte [esp + 0xec]
mov eax, dword [esp + 0x28]
call fcn.0041fbf0
mov ecx, dword [esp + 0x28]
call fcn.0040d390
test eax, eax
jne 0x43b368
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x14]
push eax
call fcn.004251b0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x80]
test ecx, ecx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x30], edx
jne 0x43f261
mov ecx, dword [esi + 4]
mov esi, eax
call fcn.0040d720
mov eax, esi
call fcn.0040d860
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x28], eax
call fcn.0040d020
mov ebx, eax
mov dword [esp + 0x2c], ebx
call fcn.0040b9e0
cmp edx, 0xffffffff
mov edi, eax
mov dword [esp + 0x34], edi
jne 0x43f297
mov edx, edi
mov dword [esp + 0x30], edx
mov eax, ebx
call fcn.0040b9f0
test eax, eax
jne 0x43f2a8
mov edx, edi
mov dword [esp + 0x30], edx
mov eax, ebx
call fcn.0040b980
cmp edx, 5
mov dword [esp + 0x38], eax
jne 0x43f2df
cmp byte [eax], 0
je 0x43f2c8
mov eax, ebx
call fcn.0040ba60
test eax, eax
jne 0x43f2df
mov edx, edi
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43f3b5
jmp 0x43f3af
cmp edx, edi
je 0x43f2ce
cmp edi, 5
je 0x43f2ed
cmp edx, 5
jne 0x43f2ce
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x43f381
cmp dword [eax + 0x8c], 1
jg 0x43f381
cmp edi, 5
jne 0x43f335
mov esi, ebx
call fcn.00426540
test eax, eax
mov dword [esp + 0x10], eax
jne 0x43f3a3
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push ecx
call fcn.00426480
mov esi, dword [esp + 0x28]
jmp 0x43f343
cmp edi, 4
jne 0x43f352
push 2
mov edi, ebx
call fcn.00426480
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x43f3af
mov edi, dword [esp + 0x28]
xor ebx, ebx
cmp edx, 5
sete bl
inc ebx
call fcn.0042a5f0
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
jmp 0x43f2ce
cmp edx, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x43f398
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x43f4d0
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov edx, edi
mov dword [esp + 0x30], edx
push edx
mov edi, ebx
call fcn.00426480
mov dword [esp + 0x34], eax
mov esi, dword [esi + 8]
mov eax, dword [esp + 0x1c]
lea edx, [esi + esi*4]
lea esi, [eax + edx*8]
mov word [esi + 0x1c], 0xa02
mov eax, dword [esp + 0x34]
add esp, 4
mov dword [esp + 0x20], esi
call fcn.0040fc20
mov ecx, eax
mov dword [esi + 0x14], eax
call fcn.00408380
movzx ecx, byte [esp + 0xec]
mov dword [esi + 0x18], eax
mov eax, esi
mov byte [esi + 0x1f], 1
call fcn.0041fbf0
jmp case.0x43b16e.17
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
push ecx
add eax, 0x5c
call fcn.00436ae0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov dword [esp + 0x28], eax
call fcn.0042aa60
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], 0
jmp case.0x43b16e.17
mov eax, dword [esi + 4]
test eax, eax
jne 0x43f476
mov eax, dword [esp + 0x14]
call fcn.0040dcd0
jmp case.0x43b16e.17
mov edx, dword [ebp + 8]
mov byte [edx + 0x62], 1
jmp case.0x43b16e.17
mov cl, byte [esi + 0xc]
test cl, cl
jne 0x43f49a
mov eax, dword [esp + 0x14]
test dword [eax + 0xc], 0x80000
jne case.0x43b16e.17
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 8]
shl eax, 4
mov esi, dword [eax + edx + 4]
call fcn.00414b30
add esp, 4
cmp al, 6
mov dword [esp + 0x10], eax
jne case.0x43b16e.17
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
push ecx
push str.database_table_is_locked:__s
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
add edi, 0x5c
call fcn.0041db50
add esp, 8
jmp case.0x43b16e.17
mov esi, dword [esi + 0x10]
mov edi, dword [esp + 0x14]
mov eax, esi
mov ecx, edi
mov dword [esp + 0x28], esi
call fcn.00416e60
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x43b16e.17
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x5c]
push edx
push edi
call fcn.00408130
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 8]
mov dword [esi + 0x5c], edx
mov eax, dword [eax + 8]
add esp, 8
mov dword [eax + 8], 0
jmp case.0x43b16e.17
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x14]
add ecx, 0x5c
push ecx
push edx
call fcn.0041d270
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x43b16e.17
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x65], 2
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [esi + 4]
call fcn.00410510
add esp, 4
mov dword [esp + 0x10], eax
mov byte [edi + 0x65], 0
jmp case.0x43b16e.17
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
lea edx, [esp + 0x2c]
mov dword [esp + 0x30], eax
mov ecx, dword [eax]
push edx
push eax
mov dword [esp + 0x3c], ecx
call dword [ecx + 0x18]
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [edi + 0x5c]
push eax
push ecx
mov dword [esp + 0x20], ebx
call fcn.00408130
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 8]
add esp, 0x10
test ebx, ebx
mov dword [edi + 0x5c], edx
mov dword [eax + 8], 0
jne case.0x43b16e.17
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push ebx
mov dword [ecx], eax
push 0xffffffffffffffff
push ebx
mov ebx, dword [esi + 4]
mov eax, edi
call fcn.0042e240
add esp, 0xc
test eax, eax
mov dword [esp + 0x28], eax
je 0x43f615
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x38], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [esp + 0x28]
mov dword [eax + 0x3c], edx
jmp case.0x43b16e.17
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x1e], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
push edx
call dword [eax + 0x1c]
add esp, 4
jmp case.0x43b16e.17
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x18]
mov edi, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov edx, dword [edi + 0x34]
mov edi, dword [edi + 0x24]
mov dword [esp + 0x34], eax
lea ebx, [eax + 0x28]
mov dword [esp + 0x38], ebx
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x44], ecx
mov edx, dword [ecx + 0x38]
mov dword [esp + 0x3c], edx
mov ecx, dword [edx]
mov dword [esp + 0x40], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x28], ecx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], eax
jle 0x43f6c6
jmp 0x43f693
mov ebx, dword [esp + 0x38]
lea ecx, [eax + eax*4 + 5]
lea edx, [ebx + ecx*8]
mov ecx, dword [esp + 0x50]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + edx*4]
call fcn.0040e150
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x4c], eax
jl 0x43f68f
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
mov edi, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov byte [edi + 0x65], 1
mov ecx, dword [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
push edx
call dword [ecx + 0x20]
mov edx, dword [edi + 0x5c]
mov ebx, eax
mov eax, dword [esp + 0x28]
push edx
push eax
mov dword [esp + 0x2c], ebx
mov byte [edi + 0x65], 0
call fcn.00408130
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 8]
add esp, 0x1c
test ebx, ebx
mov dword [edi + 0x5c], ecx
mov dword [eax + 8], 0
jne 0x43f727
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
push edx
call dword [eax + 0x28]
add esp, 4
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43f737
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x44]
mov byte [ecx + 0x14], 0
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [esi + 4]
mov ecx, dword [ecx + edx*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
mov dword [esp + 0x30], eax
mov dl, byte [ecx + 0x14]
test dl, dl
mov dword [esp + 0xf0], ecx
je 0x43f77d
push eax
call fcn.0042e3e0
add esp, 4
jmp case.0x43b16e.17
mov ecx, dword [esp + 0xf0]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
xor eax, eax
mov ecx, 0x10
lea edi, [esp + 0x38]
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x40]
call fcn.0040d400
mov ecx, dword [esp + 0x5c]
and ecx, 0xbf01
or ecx, 1
mov word [esp + 0x5c], cx
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0xf0]
push edx
mov edx, dword [ecx + 0x38]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x34]
push edx
call dword [eax + 0x2c]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x5c]
mov edx, dword [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x24], eax
call fcn.00408130
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 8]
mov dword [esi + 0x5c], ecx
mov dword [eax + 8], 0
mov eax, dword [esp + 0x80]
add esp, 0x14
test eax, eax
je 0x43f812
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0xec]
lea eax, [esp + 0x40]
call fcn.0041fbf0
mov eax, dword [esp + 0x30]
lea ebx, [esp + 0x40]
call fcn.0040d400
mov ecx, dword [esp + 0x30]
call fcn.0040d390
test eax, eax
jne 0x43b368
jmp case.0x43b16e.17
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x30], 0
mov edx, dword [esi + 4]
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x34], eax
mov cl, byte [eax + 0x14]
test cl, cl
jne case.0x43b16e.17
mov edx, dword [eax + 0x38]
mov ecx, dword [edx]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
mov byte [ebx + 0x65], 1
mov eax, dword [eax + 0x38]
push eax
call dword [ecx + 0x24]
mov ecx, dword [ebx + 0x5c]
mov edx, dword [esp + 0x18]
push ecx
mov edi, eax
push edx
mov dword [esp + 0x1c], edi
mov byte [ebx + 0x65], 0
call fcn.00408130
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 8]
add esp, 0xc
test edi, edi
mov dword [ebx + 0x5c], ecx
mov dword [eax + 8], 0
jne 0x43f8cc
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x38]
mov ecx, dword [esp + 0x2c]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne case.0x43b16e.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x1c], esi
jmp case.0x43b16e.17
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov esi, dword [esi + 4]
lea ecx, [esi + esi*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x4c]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00408130
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 8]
mov dword [esi + 0x5c], ecx
add esp, 0x10
mov dword [eax + 8], 0
jmp case.0x43b16e.17
mov edx, dword [esi + 0x10]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov ecx, dword [edx + 0x34]
test ecx, ecx
je case.0x43b16e.17
test eax, eax
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], 0
jle 0x43f9b5
call fcn.0040e150
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
add ecx, 0x28
inc edx
cmp edx, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], edx
jl 0x43f981
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x44]
push ecx
push eax
mov eax, dword [esp + 0x34]
push eax
call dword [edx + 0x34]
mov ecx, dword [ebx + 0x5c]
mov edx, dword [esp + 0x24]
push ecx
mov edi, eax
push edx
mov dword [esp + 0x28], edi
call fcn.00408130
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
add esp, 0x18
test edi, edi
mov dword [ebx + 0x5c], ecx
mov dword [eax + 8], 0
jne 0x43fa0d
mov eax, dword [esi + 4]
test eax, eax
je 0x43fa0d
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x30], edx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x34], ecx
inc dword [ebx + 0x6c]
jmp case.0x43b16e.17
mov eax, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
call fcn.0040caa0
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov dword [ecx + 4], 0
jmp case.0x43b16e.17
mov esi, dword [esi + 0x10]
test esi, esi
je 0x43fa45
mov eax, esi
jmp 0x43fa4e
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xbc]
test eax, eax
mov dword [esp + 0x28], eax
je case.0x43b16e.17
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x94]
test edx, edx
je case.0x43b16e.17
mov edx, dword [ebp + 8]
push eax
push edx
call fcn.0042eaa0
mov edi, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [edi + 0x98]
push esi
push eax
call dword [edi + 0x94]
push esi
push edi
call fcn.00408130
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
inc ecx
test eax, eax
mov dword [esp + 0x1c], ecx
je 0x43b0d7
jmp 0x43b387
mov dword [esp + 0x10], 9
jmp 0x43b387
mov ecx, dword [esi + 4]
mov dword [ebx + 0x58], ecx
mov dl, byte [esi + 8]
mov ecx, dword [esp + 0x1c]
mov byte [ebx + 0x38], dl
mov dword [ebx + 0x54], ecx
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43fb05
mov ebx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x18]
push 0x4ac3ac
lea edi, [ebx + 0x5c]
call fcn.0041db50
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0xbc]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esi + 4]
push ecx
push edx
push str.abort_at__d_in___s_:__s
push eax
call fcn.00418ab0
add esp, 0x1c
jmp 0x43fb25
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x43fb25
mov edx, dword [ebx + 0xbc]
mov eax, dword [esi + 4]
push edx
push ecx
push str.constraint_failed_at__d_in___s_
push eax
call fcn.00418ab0
add esp, 0x10
push ebx
call fcn.0042dd20
mov esi, 5
add esp, 4
cmp eax, esi
je 0x43fbf0
mov esi, dword [ebx + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x43b3e3
lea eax, [esp + 0x38]
push eax
call fcn.0040d250
add esp, 4
jmp 0x43b52e
mov dword [esp + 0x10], 0x14
jmp 0x43fc2a
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 0x54], ecx
mov esi, 5
mov byte [edi + 0x1c], 0
mov dword [ebx + 0x58], esi
jmp 0x43b3e3
test esi, esi
je 0x43fbaf
mov eax, edi
call fcn.0042d1f0
mov byte [edi + 0x1c], 1
mov esi, edi
call fcn.004114f0
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x58]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x43b3e3
mov edx, ebx
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.0041ff10
mov esi, eax
test esi, esi
jne 0x43b3e3
mov dl, byte [esp + 0x28]
push ebx
mov byte [edi + 0x1c], dl
call fcn.0042dd20
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x43fb93
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x54], eax
mov al, byte [esp + 0x28]
mov cl, 1
sub cl, al
mov byte [edi + 0x1c], cl
mov dword [ebx + 0x58], esi
jmp 0x43b3e3
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
mov esi, 5
mov dword [eax + 0x54], ecx
mov dword [eax + 0x58], esi
jmp 0x43b3e3
push 0xf088
call fcn.0041d790
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x43fc2a
mov dword [esp + 0x10], 0xd
mov ecx, dword [esp + 0x14]
mov al, byte [ecx + 0x1e]
test al, al
je 0x43fc3f
mov dword [esp + 0x10], 7
jmp 0x43fc4d
cmp dword [esp + 0x10], 0xc0a
je 0x43b387
mov eax, dword [esp + 0x10]
call fcn.00411540
mov edi, dword [ebp + 8]
push eax
push 0x4ac3ac
add edi, 0x5c
mov eax, ecx
call fcn.0041db50
add esp, 8
jmp 0x43b387
mov ecx, dword [ebp + 8]
mov eax, 9
mov dword [esp + 0x10], eax
mov dword [ecx + 0x58], eax
call fcn.00411540
push eax
mov eax, dword [esp + 0x18]
push 0x4ac3ac
lea edi, [ecx + 0x5c]
call fcn.0041db50
add esp, 8
jmp 0x43b387