Function at 0x473350
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x330
mov eax, dword [0x56a260]
xor eax, esp
mov dword [esp + 0x32c], eax
push ebx
mov ebx, dword [esp + 0x338]
mov eax, dword [ebx + 4]
push ebp
push esi
mov esi, dword [ebx]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + 0xc]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x98], eax
mov al, byte [edx + 0x4d]
mov edx, dword [esi + 0x20]
push edi
xor edi, edi
mov byte [esp + 0x3f], al
mov eax, dword [esi + 0x24]
push ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x47], 0
mov dword [esp + 0xac], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
call fcn.004589c0
add esp, 4
cmp dword [ebx + 0x50], 7
je 0x474747
mov dword [ebx + 0x50], edi
mov dword [ebx + 0x88], edi
mov dword [ebx + 0x8c], edi
mov dword [ebx + 0x14], edi
mov ecx, dword [esi + 0xe8]
test ecx, ecx
mov dword [esi + 0x1bc], edi
jne 0x477ba3
cmp dword [esi + 0x11c], edi
je 0x47342d
mov eax, dword [ebx + 0x7c]
cmp eax, edi
jne 0x47341e
mov edx, dword [esi + 0x124]
jmp 0x473426
xor edx, edx
div dword [esi + 0x124]
mov dword [esp + 0x84], edx
mov eax, dword [ebx + 0x4c]
mov dword [esp + 0x18], eax
cmp byte [esi + 0x40], 0
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
jne 0x474747
add dword [esp + 0x78], 1
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x9c]
test byte [eax + edx*4 + 2], 2
lea ebp, [eax + edx*4]
je 0x47348a
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
test word [edi + ecx*8 + 0x1c], 0x2460
lea ecx, [edi + ecx*8]
mov dword [esp + 0x14], ecx
je 0x473484
mov edx, ecx
push edx
call fcn.0046bc10
mov ecx, dword [esp + 0x18]
add esp, 4
mov word [ecx + 0x1c], 4
mov dl, byte [ebp]
movzx eax, dl
mov dword [esp + 0x20], eax
add eax, 0xffffffff
cmp eax, 0x95
ja case.default.0x4734a2
jmp dword [eax*4 + 0x477bd8]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [esp + 0x18]
cdq
mov word [edi + 0x1c], 4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov ecx, dword [ebp + 8]
sub ecx, 1
mov dword [esp + 0x18], ecx
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [esp + 0x18], eax
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
mov eax, dword [esp + 0x18]
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
mov ecx, dword [edi + 0x10]
cdq
mov word [edi + 0x1c], 4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov dword [esp + 0x18], ecx
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
je case.default.0x4734a2
cmp dword [ebp + 4], 0
jne 0x4779db
mov edi, dword [ebx + 0xb0]
test edi, edi
je 0x4779db
mov ecx, dword [ebx + 0x5c]
mov eax, dword [edi + 4]
add dword [ebx + 0xb8], 0xffffffff
push ecx
push esi
mov dword [ebx + 0xb0], eax
call fcn.0045a550
push edi
call fcn.00459220
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
add esp, 0xc
cmp dword [ebp + 8], 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ecx
jne 0x473582
lea edx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edx*4 + 8]
sub ecx, 1
mov dword [esp + 0x18], ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x50], eax
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x4734a2
mov ebp, dword [ebp + 0x10]
mov edx, dword [ebp]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp + 4]
mov dword [ecx + 0x14], eax
jmp case.default.0x4734a2
mov word [ecx + 0x1c], 8
mov edx, dword [ebp + 0x10]
fld qword [edx]
fstp qword [ecx + 8]
jmp case.default.0x4734a2
mov eax, dword [ebp + 0x10]
push eax
mov byte [ebp], 0x19
call fcn.0045ae30
add esp, 4
cmp byte [esp + 0x3f], 1
mov dword [ebp + 4], eax
je 0x473673
mov ecx, dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
push 0
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.0046c1b0
add esp, 0x14
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x473e86
movzx eax, byte [esp + 0x3f]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.0046b840
add esp, 8
test eax, eax
jne 0x474747
mov esi, dword [esp + 0x14]
mov dx, word [esi + 0x1c]
and dx, 0xfbff
or dx, 0x800
mov dword [esi + 0x24], eax
mov word [esi + 0x1c], dx
cmp byte [ebp + 1], 0xff
jne 0x47365b
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0043f760
add esp, 8
mov ebx, dword [esp + 0x4c]
mov byte [ebp + 1], 0xff
mov edx, dword [esi + 4]
mov dword [ebp + 0x10], edx
mov eax, dword [esi + 0x18]
mov esi, dword [esp + 0x28]
mov dword [ebp + 4], eax
mov ecx, dword [ebp + 4]
cmp ecx, dword [esi + 0x58]
jg 0x473e86
mov ecx, dword [esp + 0x14]
mov word [ecx + 0x1c], 0xa02
mov edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
mov eax, dword [ebp + 4]
mov dl, byte [esp + 0x3f]
mov dword [ecx + 0x18], eax
mov byte [ecx + 0x1f], dl
jmp case.default.0x4734a2
mov esi, dword [ebp + 0xc]
sub esi, dword [ebp + 8]
mov eax, dword [ebp + 4]
neg eax
sbb eax, eax
and eax, 0x100
add eax, 1
test esi, esi
movzx edi, ax
mov word [ecx + 0x1c], di
jle case.default.0x4734a2
jmp 0x4736d0
add ecx, 0x28
test word [ecx + 0x1c], 0x2460
mov dword [esp + 0x14], ecx
je 0x4736ec
push ecx
call fcn.0046bc10
mov ecx, dword [esp + 0x18]
add esp, 4
sub esi, 1
test esi, esi
mov word [ecx + 0x1c], di
jg 0x4736d0
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
push 0
push 0
push edx
push eax
push esi
call fcn.0046c1b0
mov cl, byte [esp + 0x53]
add esp, 0x14
mov byte [esi + 0x1f], cl
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
mov eax, dword [ebx + 0x3c]
lea edx, [ebp + ebp*4]
lea esi, [eax + edx*8 - 0x28]
push esi
call fcn.0046bb90
add esp, 4
test eax, eax
jne 0x473e7e
mov ecx, dword [esp + 0x14]
push 0x800
push esi
push ecx
call fcn.0046be70
add esp, 0xc
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea esi, [edi + edx*8]
lea edi, [edi + eax*8]
mov edi, edi
mov ebp, dword [edi + 0x24]
push esi
push edi
mov dword [edi + 0x24], 0
call fcn.0046bec0
mov ecx, ebx
mov dword [esi + 0x24], ebp
add esp, 8
add esi, 0x28
add edi, 0x28
sub ebx, 1
test ecx, ecx
jne 0x473770
mov dword [esp + 0x14], edi
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 0xc]
mov ebp, dword [ebp + 8]
lea edx, [eax + eax*4]
lea eax, [ebp + ebp*4]
lea esi, [edi + edx*8]
lea edi, [edi + eax*8]
push 0x1000
push esi
push edi
mov dword [esp + 0x20], edi
call fcn.0046be70
add esp, 0xc
test word [edi + 0x1c], 0x1000
je 0x4737e1
push edi
call fcn.0046c4e0
add esp, 4
test eax, eax
jne 0x474747
mov ecx, ebx
sub ebx, 1
test ecx, ecx
je case.default.0x4734a2
add edi, 0x28
add esi, 0x28
jmp 0x4737b5
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
lea ecx, [ebp + ebp*4]
push 0x1000
lea edx, [edi + ecx*8]
push edx
push eax
mov dword [esp + 0x20], eax
call fcn.0046be70
add esp, 0xc
jmp case.default.0x4734a2
mov eax, dword [esi + 0x11c]
test eax, eax
je 0x47384c
mov ecx, dword [esp + 0x78]
cmp ecx, dword [esp + 0x84]
jb 0x47384c
mov edx, dword [esi + 0x120]
push edx
call eax
add esp, 4
test eax, eax
jne 0x47770e
push 0
push ebx
call fcn.004598d0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
push 1
push ebx
call fcn.004597b0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov edx, dword [ebx + 0x48]
add edx, 2
or edx, 1
mov dword [ebx + 0x48], edx
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [ebx + 0x14], edi
xor ebx, ebx
cmp dword [ebp + 8], ebx
jle 0x4738d3
mov esi, edi
jmp 0x4738a0
test word [esi + 0x1c], 0x1000
je 0x4738b9
push esi
call fcn.0046c4e0
add esp, 4
test eax, eax
jne 0x474747
push esi
call fcn.0046c0d0
push esi
call fcn.00473100
add ebx, 1
add esp, 8
add esi, 0x28
cmp ebx, dword [ebp + 8]
jl 0x4738a0
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x40], 0
jne 0x474747
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
add edx, 1
mov dword [ebx + 0x4c], edx
mov esi, 0x64
jmp 0x47776e
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
movzx eax, word [ebx + 0x1c]
lea esi, [edi + ecx*8]
mov cl, byte [esi + 0x1c]
lea edx, [ebp + ebp*4]
or cl, al
test cl, 1
lea edi, [edi + edx*8]
mov dword [esp + 0x14], edi
je 0x473935
push edi
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
test eax, 0x4000
je 0x47394d
push ebx
call fcn.0046c070
add esp, 4
test eax, eax
jne 0x474747
test word [esi + 0x1c], 0x4000
je 0x473966
push esi
call fcn.0046c070
add esp, 4
test eax, eax
jne 0x474747
test byte [ebx + 0x1c], 0x12
jne 0x473983
movzx edx, byte [esp + 0x3f]
push edx
push ebx
call fcn.0046c120
add esp, 8
test eax, eax
jne 0x474747
test byte [esi + 0x1c], 0x12
jne 0x4739a0
movzx eax, byte [esp + 0x3f]
push eax
push esi
call fcn.0046c120
add esp, 8
test eax, eax
jne 0x474747
mov eax, dword [esi + 0x18]
add eax, dword [ebx + 0x18]
cdq
mov ecx, edx
mov edx, dword [esp + 0x28]
mov ebp, eax
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x473e7e
jl 0x4739c5
cmp ebp, eax
ja 0x473e7e
mov eax, dword [esp + 0x14]
mov cx, word [eax + 0x1c]
and cx, 0xbe02
or cx, 2
xor edx, edx
cmp eax, esi
sete dl
mov word [eax + 0x1c], cx
lea ecx, [ebp + 2]
push edx
push ecx
push eax
call fcn.0046bf60
add esp, 0xc
test eax, eax
jne 0x474747
mov edi, dword [esp + 0x14]
cmp edi, esi
je 0x473a13
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov ecx, dword [edi + 4]
push edx
push eax
push ecx
call fcn.004f5c90
add esp, 0xc
mov edx, dword [ebx + 0x18]
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 4]
add ecx, dword [esi + 0x18]
push edx
push eax
push ecx
call fcn.004f5c90
mov edx, dword [edi + 4]
mov cl, byte [esp + 0x4b]
mov byte [edx + ebp], 0
mov eax, dword [edi + 4]
mov byte [eax + ebp + 1], 0
add esp, 0xc
or word [edi + 0x1c], 0x200
mov dword [edi + 0x18], ebp
mov byte [edi + 0x1f], cl
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebx, dword [esp + 0x50]
lea edx, [eax + eax*4]
lea edi, [ebx + edx*8]
mov esi, edi
call fcn.004731e0
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
call fcn.004731e0
mov eax, dword [ebp + 0xc]
lea ecx, [eax + eax*4]
movzx eax, word [edi + 0x1c]
lea edx, [ebx + ecx*8]
movzx ecx, word [esi + 0x1c]
mov dword [esp + 0x14], edx
movzx ebx, ax
movzx edx, cx
or ebx, edx
test bl, 1
jne 0x473ca2
and al, cl
test al, 4
je 0x473ba2
mov edx, dword [esi + 0x10]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x58], edx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x5c], edx
movzx edx, byte [ebp]
add edx, 0xffffffa7
cmp edx, 3
mov byte [esp + 0x3e], 1
ja case.default.0x473ac9
jmp dword [edx*4 + 0x477e30]
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0045be10
add esp, 0xc
test eax, eax
jne 0x473ba7
jmp 0x473b8b
push ecx
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0045bea0
add esp, 0xc
test eax, eax
jne 0x473ba7
jmp 0x473b8b
push ecx
push eax
lea edx, [esp + 0x60]
push edx
call fcn.0045bf00
add esp, 0xc
test eax, eax
jne 0x473ba7
jmp 0x473b8b
mov edx, eax
or edx, ecx
je 0x473ca2
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x473b45
cmp dword [esp + 0x58], 0
jne 0x473b45
cmp dword [esp + 0x5c], 0x80000000
je 0x473ba7
push ecx
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x64]
push eax
push ecx
call fcn.004f72c0
jmp 0x473b83
mov edx, eax
or edx, ecx
je 0x473ca2
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x473b72
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x64]
push eax
push ecx
call fcn.004f7120
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x14], ecx
jmp 0x473fc8
mov byte [esp + 0x3e], 0
push edi
call fcn.0046b9b0
fstp qword [esp + 0x24]
push esi
call fcn.0046b9b0
movzx eax, byte [ebp]
add eax, 0xffffffa7
add esp, 8
cmp eax, 3
ja case.default.0x473bc6
jmp dword [eax*4 + 0x477e40]
fadd qword [esp + 0x20]
jmp 0x473c4a
fsub qword [esp + 0x20]
jmp 0x473c4a
fmul qword [esp + 0x20]
jmp 0x473c4a
fldz
fld qword [esp + 0x20]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x473c9e
fdivp st(1)
jmp 0x473c4a
fld qword [esp + 0x20]
call fcn.004f6e86
mov esi, eax
mov edi, edx
call fcn.004f6e86
mov ecx, esi
or ecx, edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
je 0x473ca2
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x473c2c
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004f7120
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], edx
fild qword [esp + 0x19c]
sub esp, 8
fst qword [esp + 0x28]
fstp qword [esp]
call fcn.0045adf0
add esp, 8
test eax, eax
jne 0x473ca2
mov eax, dword [esp + 0x14]
fld qword [esp + 0x20]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
and cx, 0xbe08
or cx, 8
test bl, 8
mov word [eax + 0x1c], cx
jne case.default.0x4734a2
cmp byte [esp + 0x3e], 0
jne case.default.0x4734a2
push eax
call fcn.0046ba00
add esp, 4
jmp case.default.0x4734a2
fstp st(0)
fstp st(0)
mov edx, dword [esp + 0x14]
push edx
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
test ebp, ebp
je case.default.0x4734a2
push 0
lea edx, [ebp + ebp*4]
lea eax, [edi + edx*8]
push 0
push eax
call fcn.0046bd20
add esp, 0xc
jmp case.default.0x4734a2
mov edx, dword [ebx + 0xc]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [ebp + 3]
lea eax, [eax + eax*4]
mov dword [esp + 0x20], edx
lea edx, [edi + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
xor edi, edi
test ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
jle 0x473d3c
mov ecx, dword [esp + 0x20]
mov dword [ecx + edi*4], esi
test word [esi + 0x1c], 0x1000
je 0x473d23
push esi
call fcn.0046c4e0
add esp, 4
test eax, eax
jne 0x474747
push esi
call fcn.00473100
add edi, 1
add esp, 4
add esi, 0x28
cmp edi, dword [esp + 0x1c]
jl 0x473d03
mov ebx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x22c], ebx
mov esi, eax
mov ecx, 0xa
lea edi, [esp + 0x1fc]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov word [eax + 0x1c], 1
mov ecx, dword [esp + 0x218]
mov eax, dword [esp + 0x1f4]
and ecx, 0xbe01
or ecx, 1
mov word [esp + 0x218], cx
mov byte [esp + 0x239], 0
test byte [eax + 2], 0x20
je 0x473db1
mov edx, dword [ebp - 4]
mov dword [esp + 0x228], edx
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
mov dword [esi + 0x20], ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x24], edx
mov edx, dword [esp + 0x1c]
push ecx
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x1fc]
push ecx
call edx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
add esp, 0xc
cmp byte [esi + 0x40], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
jne 0x477a82
cmp byte [esp + 0x239], 0
je 0x473e46
cmp dword [esp + 0x234], 0
je 0x473e34
lea edx, [esp + 0x1fc]
push edx
call fcn.00440110
push eax
push 0x5508f0
lea eax, [ebx + 0x2c]
push esi
push eax
call fcn.0043f7c0
mov ecx, dword [esp + 0x248]
add esp, 0x14
mov dword [esp + 0x10], ecx
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x18]
push edx
push eax
push ebx
call fcn.004599d0
add esp, 0xc
movzx ecx, byte [esp + 0x3f]
push ecx
lea edx, [esp + 0x200]
push edx
call fcn.0046b840
mov eax, dword [esp + 0x1c]
mov ecx, 0xa
lea esi, [esp + 0x204]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0046bb90
add esp, 0xc
test eax, eax
je case.default.0x4734a2
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
push str.string_or_blob_too_big
lea eax, [ebx + 0x2c]
push esi
push eax
call fcn.0043f7c0
add esp, 0xc
mov dword [esp + 0x10], 0x12
jmp 0x477716
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
mov cl, byte [eax + 0x1c]
or cl, byte [esi + 0x1c]
lea edi, [edi + edx*8]
test cl, 1
mov dword [esp + 0x14], edi
je 0x473edd
push edi
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
push eax
call fcn.0046b940
push esi
mov edi, eax
mov ebx, edx
call fcn.0046b940
mov esi, eax
mov al, byte [ebp]
add esp, 8
cmp al, 0x55
jne 0x473f02
and edi, esi
and ebx, edx
jmp 0x473fbe
cmp al, 0x56
jne 0x473f0f
or edi, esi
or ebx, edx
jmp 0x473fbe
mov ecx, esi
or ecx, edx
je 0x473fbe
test edx, edx
jg 0x473f47
jl 0x473f23
test esi, esi
jae 0x473f3c
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x473f47
jg 0x473f35
cmp esi, 0xffffffc0
jbe 0x473f47
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x473f68
jg 0x473f47
cmp esi, 0x40
jb 0x473f68
test ebx, ebx
jg 0x473f5f
jl 0x473f51
test edi, edi
jae 0x473f5f
cmp al, 0x57
je 0x473f5f
or eax, 0xffffffff
cdq
mov edi, eax
mov ebx, edx
jmp 0x473fbe
xor eax, eax
cdq
mov edi, eax
mov ebx, edx
jmp 0x473fbe
cmp al, 0x57
mov edx, ebx
mov ecx, esi
mov eax, edi
jne 0x473f82
call fcn.004f7390
mov ebp, eax
mov dword [esp + 0x100], edx
jmp 0x473fb5
call fcn.004f7370
test ebx, ebx
mov ebp, eax
mov dword [esp + 0x100], edx
jg 0x473fb5
jl 0x473f9a
test edi, edi
jae 0x473fb5
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004f7390
or ebp, eax
or dword [esp + 0x100], edx
mov ebx, dword [esp + 0x100]
mov edi, ebp
mov eax, dword [esp + 0x14]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
mov dx, word [eax + 0x1c]
and dx, 0xbe04
or dx, 4
mov word [eax + 0x1c], dx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
push esi
call fcn.0046ba70
mov eax, dword [ebp + 8]
cdq
add esp, 4
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
movzx eax, word [edi + ecx*8 + 0x1c]
test al, 4
lea esi, [edi + ecx*8]
jne 0x474044
call fcn.004731e0
test byte [esi + 0x1c], 8
je 0x474025
push esi
call fcn.0046ba00
add esp, 4
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x474044
mov ebp, dword [ebp + 8]
test ebp, ebp
je 0x477a97
add ebp, 0xffffffff
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
test byte [edi + edx*8 + 0x1c], 4
lea eax, [edi + edx*8]
je case.default.0x4734a2
push eax
call fcn.0046baa0
add esp, 4
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea eax, [ebp + ebp*4]
movzx ecx, word [edi + eax*8 + 0x1c]
test cl, 1
lea edi, [edi + eax*8]
jne case.default.0x4734a2
movzx eax, cl
shr al, 3
and eax, 2
or eax, ecx
test al, 2
mov word [edi + 0x1c], ax
jne 0x4740b6
test al, 0xc
je 0x4740b6
movzx ecx, byte [esp + 0x3f]
push ecx
push edi
call fcn.0046c120
add esp, 8
and word [edi + 0x1c], 0xfff3
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x4740df
push edi
call fcn.0046c070
add esp, 4
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
movzx eax, word [edi + edx*8 + 0x1c]
test al, 1
lea esi, [edi + edx*8]
jne case.default.0x4734a2
test al, 0x10
jne 0x47413a
test al, 2
jne 0x474124
test al, 0xc
je 0x474124
movzx eax, byte [esp + 0x3f]
push eax
push esi
call fcn.0046c120
add esp, 8
mov cx, word [esi + 0x1c]
and cx, 0xbe10
or cx, 0x10
mov word [esi + 0x1c], cx
jmp case.default.0x4734a2
and eax, 0xfe10
mov word [esi + 0x1c], ax
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
lea eax, [edi + edx*8]
push eax
call fcn.0046bad0
add esp, 4
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea ecx, [ebp + ebp*4]
test byte [edi + ecx*8 + 0x1c], 1
lea eax, [edi + ecx*8]
jne case.default.0x4734a2
push eax
call fcn.0046ba70
add esp, 4
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
lea edx, [ebp + ebp*4]
test byte [edi + edx*8 + 0x1c], 1
lea eax, [edi + edx*8]
jne case.default.0x4734a2
push eax
call fcn.0046baa0
add esp, 4
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
movzx ebx, word [edi + edx*8 + 0x1c]
movzx eax, word [ecx + 0x1c]
lea edx, [edi + edx*8]
mov dword [esp + 0x20], ebx
or bl, al
test bl, 1
mov bl, byte [ebp + 3]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1c], eax
je 0x474245
test bl, bl
jns 0x474203
test al, 1
je 0x4741f9
mov eax, dword [esp + 0x20]
test al, 1
je 0x4741f9
test eax, 0x100
jne 0x4741f9
xor eax, eax
jmp 0x4742c4
mov eax, 1
jmp 0x4742c4
test bl, 8
je 0x474217
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
test bl, 0x10
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
mov cx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and cx, 0xbe01
or cx, 1
mov dword [esp + 0x14], edi
mov word [edi + 0x1c], cx
jmp case.default.0x4734a2
and bl, 0x67
je 0x47427b
mov edi, dword [esp + 0x3f]
push edi
mov al, bl
call fcn.00473260
mov ecx, dword [esp + 0x30]
push edi
mov al, bl
call fcn.00473260
add esp, 8
cmp byte [esi + 0x40], 0
jne 0x474747
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov esi, 0x4000
test word [ecx + 0x1c], si
je 0x474297
push ecx
call fcn.0046c070
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
add esp, 4
test word [edx + 0x1c], si
je 0x4742ae
push edx
call fcn.0046c070
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x30]
add esp, 4
mov eax, dword [ebp + 0x10]
push eax
push ecx
push edx
call fcn.0046c9b0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
add esp, 0xc
movzx esi, byte [ebp]
add esi, 0xffffffb2
cmp esi, 4
ja case.default.0x4742d0
jmp dword [esi*4 + 0x477e50]
xor ebx, ebx
test eax, eax
sete bl
jmp 0x47430b
xor ebx, ebx
test eax, eax
setne bl
jmp 0x47430b
xor ebx, ebx
test eax, eax
setl bl
jmp 0x47430b
xor ebx, ebx
test eax, eax
setle bl
jmp 0x47430b
xor ebx, ebx
test eax, eax
setg bl
jmp 0x47430b
xor ebx, ebx
test eax, eax
setge bl
test byte [ebp + 3], 0x10
mov eax, ebx
je 0x47433f
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
mov dx, word [edi + 0x1c]
and dx, 0xbe04
or dx, 4
mov word [edi + 0x1c], dx
cdq
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
mov dword [edi + 0x10], eax
jmp 0x47434d
test eax, eax
je 0x47434d
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
mov ax, word [ecx + 0x1c]
xor ax, word [esp + 0x1c]
and ax, 0x1ff
xor word [ecx + 0x1c], ax
mov cx, word [edx + 0x1c]
xor cx, word [esp + 0x20]
and cx, 0x1ff
xor word [edx + 0x1c], cx
jmp case.default.0x4734a2
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x74], edx
jmp case.default.0x4734a2
test byte [ebp + 3], 1
jne 0x47438f
mov dword [esp + 0x74], 0
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 8]
xor esi, esi
test eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], ecx
jle 0x474426
mov ebp, dword [esp + 0x20]
add ebp, 0x14
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4743c5
mov ecx, dword [eax + esi*4]
jmp 0x4743c7
mov ecx, esi
mov eax, dword [ebp]
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0x10]
movzx ebx, byte [edx + esi]
push eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x38]
push eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.0046c9b0
add esp, 0xc
test eax, eax
mov dword [esp + 0xa8], eax
jne 0x474419
add esi, 1
add ebp, 4
cmp esi, dword [esp + 0x30]
jl 0x4743b8
mov dword [esp + 0x74], eax
jmp case.default.0x4734a2
test ebx, ebx
je 0x474426
neg eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x74], 0
jmp case.default.0x4734a2
mov eax, dword [esp + 0xa8]
test eax, eax
jge 0x47444d
mov ebp, dword [ebp + 4]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
jne 0x47445e
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov ebp, dword [ebp + 0xc]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
lea eax, [edi + edx*8]
je 0x474484
mov esi, 2
jmp 0x47449a
push eax
call fcn.0046b940
add esp, 4
or eax, edx
je 0x474498
mov esi, 1
jmp 0x47449a
xor esi, esi
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea eax, [edi + eax*8]
je 0x4744b1
mov eax, 2
jmp 0x4744c7
push eax
call fcn.0046b940
add esp, 4
or eax, edx
je 0x4744c5
mov eax, 1
jmp 0x4744c7
xor eax, eax
cmp byte [ebp], 0x48
jne 0x4744da
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x52c8f8]
jmp 0x4744e5
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x52c904]
cmp eax, 2
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x14], edi
jne 0x47450e
mov dx, word [edi + 0x1c]
and dx, 0xbe01
or dx, 1
mov word [edi + 0x1c], dx
jmp case.default.0x4734a2
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
and ax, 0xbe04
or ax, 4
mov dword [edi + 0x14], edx
mov word [edi + 0x1c], ax
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
lea eax, [edi + ecx*8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x14], edi
je 0x474556
push edi
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
push eax
call fcn.0046b940
add esp, 4
or eax, edx
jne 0x474579
mov eax, 1
cdq
push edx
push eax
push edi
call fcn.0046bd20
add esp, 0xc
jmp case.default.0x4734a2
xor eax, eax
cdq
push edx
push eax
push edi
call fcn.0046bd20
add esp, 0xc
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
lea ecx, [ebp + ebp*4]
lea eax, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x14], esi
je 0x4745b8
push esi
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
push eax
call fcn.0046b940
not edx
push edx
not eax
push eax
push esi
call fcn.0046bd20
add esp, 0x10
jmp case.default.0x4734a2
mov edx, dword [ebx + 0xc8]
mov eax, dword [ebp + 4]
add eax, edx
cmp byte [eax], 0
je 0x4745f1
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov byte [eax], 1
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
lea edi, [edi + ecx*8]
je 0x47460e
mov eax, dword [ebp + 0xc]
jmp 0x47463c
push edi
call fcn.0046b9b0
fcomp qword [0x5277f8]
add esp, 4
fnstsw ax
test ah, 0x44
jnp 0x47462b
mov eax, 1
jmp 0x47462d
xor eax, eax
cmp byte [ebp], 0x2a
jne 0x47463c
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test eax, eax
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
mov dword [esp + 0x38], ecx
movsx ecx, word [esi + 0x14]
lea edx, [esi + ecx*4 + 0x58]
push esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call fcn.00459bb0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
mov ecx, dword [esi + 0x44]
cmp ecx, dword [ebx + 0x48]
jne 0x4746e9
test byte [ebp + 3], 0x20
je 0x4748a5
cmp byte [esi + 0x19], 0
je 0x4747b8
cmp dword [esp + 0x30], 0
jne 0x47479e
test byte [esi + 0x1c], 8
mov eax, dword [esi + 0x10]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
je 0x47477a
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
lea ecx, [ecx + ecx*4]
push 0x1000
lea edx, [eax + ecx*8]
push edx
push esi
call fcn.0046be70
add esp, 0xc
test word [esi + 0x1c], 0x1000
je 0x474bf3
push esi
call fcn.0046c4e0
add esp, 4
test eax, eax
je 0x474bf3
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
push 0x5263e4
push eax
add edx, 0x2c
push edx
mov byte [eax + 0x40], 1
call fcn.0043f7c0
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x477716
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x80], ecx
mov dword [esi + 0x4c], ecx
mov ecx, dword [esp + 0x80]
lea edi, [esi + 0x48]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [esi + 0x54], edx
jmp 0x474837
mov eax, dword [esp + 0x38]
mov cx, word [eax + 0x1c]
and cx, 0xbe01
or cx, 1
mov word [eax + 0x1c], cx
jmp 0x474bf3
test byte [esi + 0x1c], 2
jne 0x4747ef
mov edi, dword [esp + 0x30]
lea edx, [esp + 0x17c]
push edx
push edi
call fcn.00451860
lea eax, [esp + 0x88]
push eax
push edi
call fcn.00451dc0
mov dword [esi + 0x54], eax
mov ecx, dword [esp + 0x18c]
lea edi, [esi + 0x48]
mov dword [edi], ecx
jmp 0x474812
mov edx, dword [esp + 0x30]
lea edi, [esi + 0x48]
push edi
push edx
call fcn.004518e0
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x88]
push eax
push ecx
call fcn.00451dc0
mov dword [esi + 0x54], eax
mov eax, dword [edi]
mov ecx, dword [esp + 0x90]
add esp, 0x10
cmp eax, ecx
ja 0x474827
mov dword [esi + 0x4c], eax
jmp 0x47482a
mov dword [esi + 0x4c], ecx
mov edx, dword [esp + 0x28]
cmp eax, dword [edx + 0x58]
ja 0x473e7e
mov eax, dword [ebx + 0x48]
mov ecx, dword [esi + 0x54]
mov dword [esi + 0x44], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x474854
movzx ecx, al
mov dword [esp + 0x68], ecx
mov eax, 1
jmp 0x474865
lea edx, [esp + 0x68]
push edx
push ecx
call fcn.0045bc10
add esp, 8
movzx eax, al
movzx eax, al
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov word [esi + 0x16], cx
mov edx, dword [esp + 0x68]
mov dword [eax], edx
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x80], eax
jae 0x474892
mov dword [esi + 0x54], ecx
mov dword [esi + 0x4c], ecx
mov eax, dword [esp + 0x68]
cmp eax, 0x18003
ja 0x474c19
cmp eax, dword [edi]
ja 0x474c19
movzx ecx, word [esi + 0x16]
cmp ecx, dword [esp + 0x34]
jg 0x474a7d
mov edx, dword [esi + 0x50]
mov eax, dword [esp + 0x2c]
cmp edx, dword [eax]
jae 0x474a38
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x47494f
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x2c]
shr edx, 1
not edx
lea ecx, [esp + 0xb4]
push ecx
mov ecx, dword [eax]
and edx, 1
push edx
mov edx, dword [esp + 0x38]
push ecx
push 0
push edx
call fcn.0046c3a0
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov eax, dword [esp + 0xb8]
movzx ebx, word [esi + 0x16]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + ebx*4]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x1c]
mov edi, dword [esi + 0x50]
mov eax, dword [eax]
add edi, ecx
add eax, ecx
mov dword [esp + 0x20], eax
mov al, byte [edi]
cmp al, 0x80
jae 0x474985
movzx edx, al
mov dword [esp + 0x6c], edx
add edi, 1
jmp 0x474998
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.0045bc10
movzx ecx, al
add esp, 8
add edi, ecx
mov edx, dword [esp + 0x6c]
mov dword [esi + ebx*4 + 0x58], edx
mov eax, dword [esp + 0x6c]
push eax
call fcn.00459d40
mov ecx, dword [esp + 0x6c]
add ecx, eax
add esp, 4
cmp ecx, eax
mov dword [esp + 0x68], ecx
jb 0x4749d3
mov edx, dword [esp + 0x2c]
add ebx, 1
cmp ebx, dword [esp + 0x34]
mov dword [edx + ebx*4], ecx
jg 0x4749da
cmp edi, dword [esp + 0x20]
jb 0x474973
jmp 0x4749da
mov edi, dword [esp + 0x20]
add edi, 1
mov eax, edi
sub eax, dword [esp + 0x1c]
cmp dword [esi + 0x54], 0
mov word [esi + 0x16], bx
mov dword [esi + 0x50], eax
jne 0x474a07
lea ecx, [esp + 0xb4]
push ecx
call fcn.0046bc80
add esp, 4
mov word [esp + 0xd0], 1
mov edx, dword [esp + 0x20]
cmp edi, edx
ja 0x474a22
mov eax, dword [esi + 0x48]
mov ecx, dword [esp + 0x68]
cmp ecx, eax
ja 0x474a22
cmp edi, edx
jne 0x474a38
cmp ecx, eax
je 0x474a38
push 0x97a
call fcn.00437300
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
movzx edx, word [esi + 0x16]
cmp edx, dword [esp + 0x34]
jg 0x474a7d
cmp byte [ebp + 1], 0xf8
jne 0x474a63
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x38]
push 0x800
push eax
push ecx
call fcn.0046be70
add esp, 0xc
jmp 0x474bf3
mov eax, dword [esp + 0x38]
mov dx, word [eax + 0x1c]
and dx, 0xbe01
or dx, 1
mov word [eax + 0x1c], dx
jmp 0x474bf3
mov edi, dword [esp + 0x34]
mov eax, dword [esi + 0x4c]
mov ebx, dword [esp + 0x2c]
add edi, edi
add edi, edi
cmp eax, dword [edi + ebx + 4]
jb 0x474ac1
mov ebp, dword [esp + 0x38]
test word [ebp + 0x1c], 0x2460
je 0x474aa7
push ebp
call fcn.0046bc10
add esp, 4
mov edx, dword [esi + 0x54]
mov ecx, dword [edi + esi + 0x58]
add edx, dword [edi + ebx]
push ebp
push ecx
push edx
call fcn.00459de0
add esp, 0xc
jmp 0x474bec
mov al, byte [ebp + 3]
test al, 0xc0
mov ecx, dword [edi + esi + 0x58]
mov dword [esp + 0x6c], ecx
je 0x474ade
cmp ecx, 0xc
jb 0x474ada
test cl, 1
je 0x474af1
test al, al
js 0x474af1
push ecx
call fcn.00459d40
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x474b19
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x38]
mov eax, 0xd
cmp eax, ecx
sbb eax, eax
not eax
lea edx, [esp + 0x17c]
and eax, edx
mov dword [esp + 0xd8], 0
jmp 0x474bb3
mov ebp, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xb4]
push ebp
push eax
call fcn.0046bec0
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x34]
shr edx, 1
not edx
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [edi + eax]
and edx, 1
push edx
mov edx, dword [esp + 0x40]
push ebx
push ecx
push edx
call fcn.0046c3a0
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x6c]
push ebp
push ecx
push eax
call fcn.00459de0
add esp, 0xc
cmp dword [esp + 0xd8], 0
je 0x474bec
mov ax, word [ebp + 0x1c]
and ax, 0xe7ff
or ax, 0x200
mov word [ebp + 0x1c], ax
mov ecx, dword [esp + 0xb8]
mov dword [ebp + 4], ecx
mov edx, dword [esp + 0xd8]
mov dword [ebp + 0x24], edx
mov al, byte [esp + 0x3f]
mov byte [ebp + 0x1f], al
mov eax, dword [esp + 0x38]
test word [eax + 0x1c], 0x1000
je case.default.0x4734a2
push eax
call fcn.0046c4e0
add esp, 4
test eax, eax
jne 0x474747
jmp case.default.0x4734a2
push 0x938
call fcn.00437300
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov edi, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov bl, byte [edi]
test bl, bl
mov edx, dword [esp + 0x50]
lea ecx, [ebp + ebp*4]
lea esi, [edx + ecx*8]
je case.default.0x4734a2
mov ebp, dword [esp + 0x3f]
mov edi, edi
add edi, 1
test word [esi + 0x1c], 0x4000
je 0x474c64
push esi
call fcn.0046c070
add esp, 4
push ebp
mov al, bl
mov ecx, esi
call fcn.00473260
mov bl, byte [edi]
add esp, 4
add esi, 0x28
test bl, bl
jne 0x474c50
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x20], ecx
lea ecx, [ecx + eax*8 - 0x28]
movzx eax, byte [ebx + 0x57]
xor edx, edx
cmp esi, edx
mov dword [esp + 0x30], ecx
lea ecx, [ebp + ebp*4]
mov dword [esp + 0x38], eax
lea eax, [edi + ecx*8]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], eax
je 0x474cf7
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x3f]
jmp 0x474ce0
mov al, byte [esi]
push edi
mov ecx, ebx
call fcn.00473260
add ebx, 0x28
add esp, 4
add esi, 1
cmp ebx, ebp
jbe 0x474ce0
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
nop
mov ecx, dword [esp + 0x38]
push ecx
push esi
call fcn.00459c40
mov ebx, eax
push ebx
call fcn.00459d40
add esp, 0xc
test word [esi + 0x1c], 0x4000
mov ebp, eax
je 0x474d44
mov edx, dword [esp + 0x8c]
or edx, dword [esp + 0x90]
je 0x474d3b
push esi
call fcn.0046c070
add esp, 4
jmp 0x474d44
mov eax, dword [esi + 0x10]
add dword [esp + 0x2c], eax
sub ebp, eax
mov eax, ebp
cdq
add dword [esp + 0x8c], eax
adc dword [esp + 0x90], edx
cmp ebx, 0x7f
ja 0x474d61
mov eax, 1
jmp 0x474d6c
push 0
push ebx
call fcn.0045bca0
add esp, 8
sub esi, 0x28
add edi, eax
cmp esi, dword [esp + 0x20]
jae 0x474d00
cmp edi, 0x7e
jle 0x474d9f
mov eax, edi
cdq
push edx
push eax
call fcn.0045bca0
mov esi, eax
add edi, esi
mov eax, edi
cdq
push edx
push eax
mov dword [esp + 0x44], edi
call fcn.0045bca0
add esp, 0x10
cmp esi, eax
jge 0x474da6
add edi, 1
mov dword [esp + 0x34], edi
mov eax, edi
cdq
mov esi, eax
add esi, dword [esp + 0x8c]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x58]
mov ecx, edx
adc ecx, dword [esp + 0x90]
cdq
cmp ecx, edx
mov dword [esp + 0x1a4], esi
jg 0x473e7e
jl 0x474ddc
cmp esi, eax
ja 0x473e7e
mov ecx, dword [esp + 0x14]
push 0
push esi
push ecx
call fcn.0046bf60
add esp, 0xc
test eax, eax
jne 0x474747
mov ebx, dword [esp + 0x34]
cmp ebx, 0x80
mov edx, dword [esp + 0x14]
mov edi, dword [edx + 4]
jae 0x474e10
mov byte [edi], bl
mov eax, 1
jmp 0x474e1a
push ebx
push edi
call fcn.0045ba10
add esp, 8
mov esi, dword [esp + 0x20]
movzx ebp, al
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x38]
push eax
push esi
call fcn.00459c40
mov ebx, eax
add esp, 8
cmp ebx, 0x80
jae 0x474e47
mov byte [edi + ebp], bl
mov eax, 1
jmp 0x474e54
lea ecx, [edi + ebp]
push ebx
push ecx
call fcn.0045ba10
add esp, 8
movzx edx, al
mov eax, dword [esp + 0x1c]
push ebx
add eax, edi
push esi
push eax
add ebp, edx
call fcn.00459d60
add dword [esp + 0x28], eax
add esi, 0x28
add esp, 0xc
cmp esi, dword [esp + 0x30]
jbe 0x474e25
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1a4]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
mov word [eax + 0x1c], 0x410
mov dword [eax + 0x20], 0
je 0x474ea3
mov dword [eax + 0x10], ecx
mov word [eax + 0x1c], 0x4410
mov byte [eax + 0x1f], 1
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
lea edx, [esp + 0xec]
xor ecx, ecx
push edx
push eax
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], ecx
call fcn.004570c0
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0xf8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
test eax, eax
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x34], eax
jne 0x474fd7
cmp dword [esi + 0x94], eax
jle 0x474f32
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x4734a2
push edi
call fcn.0045ae30
mov ebp, eax
mov eax, dword [esi + 0x1ec]
add eax, dword [esi + 0x1e8]
push eax
push 0
push esi
call fcn.0045d120
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
lea ecx, [ebp + 0x21]
push ecx
push esi
call fcn.0043fd50
mov ebx, eax
add esp, 8
test ebx, ebx
je case.default.0x4734a2
add ebp, 1
push ebp
lea eax, [ebx + 0x20]
push edi
push eax
mov dword [ebx], eax
call fcn.004f5c90
add esp, 0xc
cmp byte [esi + 0x3e], 0
je 0x474f98
mov byte [esi + 0x3e], 0
mov byte [esi + 0x45], 1
jmp 0x474f9f
add dword [esi + 0x1e8], 1
mov edx, dword [esi + 0x1e0]
mov dword [ebx + 0x18], edx
mov eax, dword [esi + 0x1f0]
mov dword [esi + 0x1e0], ebx
mov dword [ebx + 8], eax
mov ecx, dword [esi + 0x1f4]
mov dword [ebx + 0xc], ecx
mov edx, dword [esi + 0x1f8]
mov dword [ebx + 0x10], edx
mov eax, dword [esi + 0x1fc]
mov dword [ebx + 0x14], eax
jmp case.default.0x4734a2
mov ebp, dword [esi + 0x1e0]
test ebp, ebp
mov dword [esp + 0x30], 0
je 0x47500d
lea esp, [esp]
mov ecx, dword [ebp]
push edi
push ecx
call fcn.0045afd0
add esp, 8
test eax, eax
je 0x47502d
mov ebp, dword [ebp + 0x18]
add dword [esp + 0x30], 1
test ebp, ebp
jne 0x474ff0
push edi
push str.no_such_savepoint:__s
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.default.0x4734a2
cmp dword [esi + 0x94], 0
mov eax, dword [esp + 0x34]
jle 0x47505e
cmp eax, 1
jne 0x47505e
push str.cannot_release_savepoint___SQL_statements_in_progress
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x4734a2
cmp dword [ebp + 0x18], 0
jne 0x4750b9
cmp byte [esi + 0x45], 0
je 0x4750b9
cmp eax, 1
mov dword [esp + 0x1c], 1
jne 0x4750c1
push eax
push ebx
call fcn.004598d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x47776e
mov esi, dword [esp + 0x28]
push ebx
mov byte [esi + 0x3e], 1
call fcn.0045aa20
add esp, 4
cmp eax, 5
je 0x477aa4
mov edi, dword [esp + 0x34]
mov byte [esi + 0x45], 0
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x10], edx
jmp 0x47516f
mov dword [esp + 0x1c], 0
mov ecx, dword [esi + 0x1e8]
sub ecx, dword [esp + 0x30]
sub ecx, 1
cmp eax, 2
mov dword [esp + 0x30], ecx
jne 0x475105
xor edi, edi
cmp dword [esi + 0x14], edi
jle 0x475105
mov dword [esp + 0x20], edi
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + eax + 4]
push 4
push ecx
call fcn.00451540
add dword [esp + 0x28], 0x10
add edi, 1
add esp, 8
cmp edi, dword [esi + 0x14]
jl 0x4750e2
cmp dword [esi + 0x14], 0
mov dword [esp + 0x20], 0
jle 0x47514e
xor edi, edi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
push edx
mov edx, dword [ecx + edi + 4]
push eax
push edx
call fcn.00451600
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
mov eax, dword [esp + 0x20]
add eax, 1
add edi, 0x10
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x20], eax
jl 0x475115
mov edi, dword [esp + 0x34]
cmp edi, 2
jne 0x47516f
test byte [esi + 0x18], 2
je 0x47516f
push esi
call fcn.0045a570
push esi
call fcn.0045dc40
add esp, 8
or dword [esi + 0x18], edi
cmp dword [esi + 0x1e0], ebp
je 0x4751a8
jmp 0x475180
mov eax, dword [esi + 0x1e0]
mov ecx, dword [eax + 0x18]
push eax
push esi
mov dword [esi + 0x1e0], ecx
call fcn.0043f760
add dword [esi + 0x1e8], 0xffffffff
add esp, 8
cmp dword [esi + 0x1e0], ebp
jne 0x475180
cmp edi, 1
jne 0x4751d4
mov edx, dword [ebp + 0x18]
push ebp
push esi
mov dword [esi + 0x1e0], edx
call fcn.0043f760
add esp, 8
cmp dword [esp + 0x1c], 0
jne case.default.0x4734a2
add dword [esi + 0x1e8], 0xffffffff
jmp 0x475203
cmp dword [esp + 0x1c], 0
mov eax, dword [ebp + 8]
mov dword [esi + 0x1f0], eax
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0x1f4], ecx
mov edx, dword [ebp + 0x10]
mov dword [esi + 0x1f8], edx
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x1fc], eax
jne case.default.0x4734a2
mov ecx, dword [esp + 0x30]
push ecx
push edi
push esi
call fcn.0045d120
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
je case.default.0x4734a2
mov esi, dword [esp + 0x28]
cmp byte [esi + 0x40], 0
je 0x477b73
mov dword [esp + 0x10], 7
jmp 0x477b81
mov eax, dword [ebp + 4]
test eax, eax
mov ebp, dword [ebp + 8]
mov dword [esp + 0x20], eax
je 0x475278
cmp byte [esi + 0x3e], 0
jne 0x475278
test ebp, ebp
jne 0x475278
cmp dword [esi + 0x94], ebp
jle 0x475278
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.default.0x4734a2
movzx edx, byte [esi + 0x3e]
cmp eax, edx
jne 0x477abc
test eax, eax
jne 0x47528f
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x47529d
test ebp, ebp
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x47529d
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
test eax, eax
je 0x4752cc
test dword [esi + 0x18], 0x2000000
jne 0x477b3c
mov ecx, dword [ebp + 4]
mov edx, dword [esi + 0x10]
shl ecx, 4
mov edi, dword [ecx + edx + 4]
test edi, edi
je case.default.0x4734a2
push eax
push edi
call fcn.00450d40
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x477b49
test eax, eax
jne 0x47521e
cmp dword [ebp + 8], eax
je case.default.0x4734a2
test byte [ebx + 0x58], 0x80
je case.default.0x4734a2
cmp byte [esi + 0x3e], al
je 0x475325
cmp dword [esi + 0x90], 1
jle case.default.0x4734a2
cmp dword [ebx + 0x68], 0
jne 0x475343
add dword [esi + 0x1ec], 1
mov eax, dword [esi + 0x1ec]
mov ecx, dword [esi + 0x1e8]
add ecx, eax
mov dword [ebx + 0x68], ecx
mov edx, dword [ebx + 0x68]
sub edx, 1
push edx
push 0
push esi
call fcn.0045d120
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47536e
mov eax, dword [ebx + 0x68]
push eax
push edi
call fcn.004515d0
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x1f0]
mov dword [ebx + 0x98], ecx
mov edx, dword [esi + 0x1f4]
mov dword [ebx + 0x9c], edx
mov eax, dword [esi + 0x1f8]
mov dword [ebx + 0xa0], eax
mov ecx, dword [esi + 0x1fc]
mov dword [ebx + 0xa4], ecx
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
lea edx, [esp + 0x134]
push edx
mov edx, dword [esi + 0x10]
push eax
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.004532d0
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x20]
cdq
add esp, 0xc
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 4]
mov ecx, dword [esp + 0x28]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
shl esi, 4
add esi, dword [ecx + 0x10]
push edi
call fcn.0046ba70
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 4]
push eax
push ecx
push edx
call fcn.00453310
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 8]
add esp, 0x10
cmp eax, 1
jne 0x47542a
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + 0x10]
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
or dword [eax + 0x18], 2
jmp 0x475438
cmp eax, 2
jne 0x475438
mov edx, dword [esi + 0xc]
mov al, byte [edi + 0x10]
mov byte [edx + 0x4c], al
cmp dword [ebp + 4], 1
jne case.default.0x4734a2
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0045a570
add esp, 4
and dword [ebx + 0x58], 0xffffffdf
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
test eax, eax
je 0x47548e
lea ecx, [esp + 0xa4]
push ecx
push 1
push eax
call fcn.004532d0
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
add esp, 0xc
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x47549b
mov dword [esp + 0xa4], 0
xor eax, eax
mov edx, dword [esp + 0xa4]
cmp edx, dword [ebp + 8]
jne 0x4754b0
cmp eax, dword [ebp + 0xc]
je case.default.0x4734a2
mov eax, dword [ebx + 0x2c]
push eax
push esi
call fcn.0043f760
push str.database_schema_has_changed
push esi
call fcn.0043fed0
mov dword [ebx + 0x2c], eax
mov ebp, dword [ebp + 4]
mov edx, dword [esi + 0x10]
mov ecx, ebp
shl ecx, 4
mov eax, dword [ecx + edx + 0xc]
mov ecx, dword [eax]
add esp, 0x10
cmp ecx, dword [esp + 0xa4]
je 0x4754ef
push ebp
push esi
call fcn.0045dc00
add esp, 8
or dword [ebx + 0x58], 0x20
mov dword [esp + 0x10], 0x11
jmp case.default.0x4734a2
test byte [ebx + 0x58], 0x20
je 0x475513
mov dword [esp + 0x10], 4
jmp case.default.0x4734a2
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x2c], eax
shl eax, 4
add eax, dword [esi + 0x10]
cmp dl, 0x33
mov ecx, dword [eax + 4]
mov dword [esp + 0x38], ecx
jne 0x475555
mov edx, dword [eax + 0xc]
mov al, byte [edx + 0x4c]
cmp al, byte [ebx + 0x57]
mov dword [esp + 0x30], 1
jae 0x47555d
mov byte [ebx + 0x57], al
jmp 0x47555d
mov dword [esp + 0x30], 0
test byte [ebp + 3], 2
je 0x475586
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.0046ba70
mov edi, dword [edi + 0x10]
add esp, 4
cmp edi, 2
mov dword [esp + 0x1c], edi
jl 0x477b5d
mov al, byte [ebp + 1]
cmp al, 0xfa
jne 0x4755a4
mov ecx, dword [ebp + 0x10]
movzx eax, word [ecx + 8]
mov dword [esp + 0x34], ecx
movzx ecx, word [ecx + 6]
add eax, ecx
mov dword [esp + 0x20], eax
jmp 0x4755af
cmp al, 0xf2
jne 0x4755af
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 4]
mov edi, dword [esp + 0x4c]
push 1
push eax
push ecx
call fcn.00473130
mov edi, eax
add esp, 0xc
test edi, edi
je 0x474747
mov edx, dword [edi]
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
or dword [edi + 0x1c], 4
push edx
mov edx, dword [esp + 0x3c]
push esi
push eax
push ecx
push edx
mov byte [edi + 0x19], 1
call fcn.004516f0
mov ecx, dword [edi]
mov dword [esp + 0x24], eax
mov dword [edi + 8], esi
movzx eax, byte [ebp + 3]
and eax, 1
push eax
push ecx
call fcn.00454660
xor edx, edx
add esp, 0x1c
cmp byte [ebp + 1], 0xfa
setne dl
add edx, edx
xor edx, dword [edi + 0x1c]
and edx, 2
xor dword [edi + 0x1c], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 4]
mov edi, dword [esp + 0x4c]
push 1
push 0xffffffffffffffff
push eax
call fcn.00473130
mov esi, eax
add esp, 0xc
test esi, esi
je 0x474747
mov eax, dword [esp + 0x28]
mov byte [esi + 0x19], 1
movzx ecx, byte [ebp + 3]
mov edx, dword [eax]
push 0x41e
or ecx, 5
push ecx
lea edi, [esi + 4]
push edi
push eax
push 0
push edx
call fcn.004547e0
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x475700
mov eax, dword [edi]
push 1
push eax
call fcn.00450d40
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x475700
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x4756e4
movzx ecx, byte [ebp + 3]
mov eax, dword [edi]
or ecx, 2
push ecx
lea edx, [esp + 0x134]
push edx
push eax
call fcn.00456c60
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4756de
mov ecx, dword [esi]
mov edx, dword [esp + 0x130]
mov eax, dword [edi]
push ecx
push ebx
push 1
push edx
push eax
mov dword [esi + 8], ebx
call fcn.004516f0
add esp, 0x14
mov dword [esp + 0x10], eax
and dword [esi + 0x1c], 0xfffffffd
jmp 0x475700
mov ecx, dword [esi]
mov edx, dword [edi]
push ecx
push 0
push 1
push 1
push edx
call fcn.004516f0
add esp, 0x14
or dword [esi + 0x1c], 2
mov dword [esp + 0x10], eax
xor eax, eax
cmp byte [ebp + 3], 8
setne al
add eax, eax
add eax, eax
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
jmp case.default.0x4734a2
mov ecx, dword [ebp + 8]
mov ebx, dword [ebp + 4]
mov edi, dword [esp + 0x4c]
push 1
push 0xffffffffffffffff
push ecx
call fcn.00473130
add esp, 0xc
test eax, eax
je 0x474747
mov edx, dword [ebp + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [esp + 0x2c]
push eax
call fcn.00484430
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 4]
mov edi, dword [esp + 0x4c]
push 0
push 0xffffffffffffffff
push ecx
call fcn.00473130
add esp, 0xc
test eax, eax
je 0x474747
mov byte [eax + 0x19], 1
mov edx, dword [ebp + 8]
or dword [eax + 0x1c], 2
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x10], edx
movzx edx, byte [ebp + 3]
add edx, edx
add edx, edx
add edx, edx
xor edx, ecx
and edx, 8
xor edx, ecx
mov dword [eax + 0x1c], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov edx, dword [ecx + eax*4]
push edx
push ebx
call fcn.004591c0
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
add esp, 8
mov dword [ecx + eax*4], 0
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov edi, dword [eax + edx*4]
test byte [edi + 0x1c], 2
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
mov byte [edi + 0x19], 0
je 0x4758ab
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x50]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.004731e0
push esi
call fcn.0046b940
mov ecx, eax
mov byte [edi + 0x1a], 0
movzx eax, word [esi + 0x1c]
add esp, 4
test al, 4
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], edx
jne 0x475865
test al, 8
jne 0x47582e
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
fild qword [esp + 0x104]
fcom qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x47584f
test byte [esp + 0x2c], 1
fstp st(0)
jne 0x475865
sub dword [esp + 0x2c], 1
jmp 0x475865
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x475865
test byte [esp + 0x2c], 1
je 0x475865
add dword [esp + 0x2c], 1
lea eax, [esp + 0x54]
push eax
push 0
push edx
push ecx
mov ecx, dword [edi]
push 0
push ecx
call fcn.00455830
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
cmp dword [esp + 0x54], eax
jne 0x47591f
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x108]
mov byte [edi + 0x1a], 1
mov dword [edi + 0x38], edx
mov dword [edi + 0x3c], eax
jmp 0x47591f
mov eax, dword [ebp + 0x10]
mov edx, dword [edi + 8]
sub cl, 1
and cl, 1
mov word [esp + 0x144], ax
mov byte [esp + 0x146], cl
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x140], edx
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x148], eax
test word [eax + 0x1c], 0x4000
je 0x4758f2
push eax
call fcn.0046c070
add esp, 4
mov ecx, dword [edi]
lea edx, [esp + 0x54]
push edx
push 0
push 0
push 0
lea eax, [esp + 0x150]
push eax
push ecx
call fcn.00455830
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
mov byte [edi + 0x1a], al
mov ecx, dword [esp + 0x2c]
xor esi, esi
cmp ecx, 0x3b
mov byte [edi + 0x1b], 0
mov dword [edi + 0x44], esi
mov eax, dword [esp + 0x54]
jl 0x475958
cmp eax, esi
jl 0x475949
jne 0x475940
cmp ecx, 0x3c
je 0x475949
mov dword [esp + 0x54], esi
jmp case.default.0x4734a2
mov eax, dword [edi]
lea edx, [esp + 0x54]
push edx
push eax
call fcn.004574d0
jmp 0x475981
cmp eax, esi
jg 0x475974
jne 0x475963
cmp ecx, 0x39
je 0x475974
mov ecx, dword [edi]
push ecx
call fcn.00451e20
add esp, 4
mov dword [esp + 0x54], eax
jmp 0x475994
mov eax, dword [edi]
lea edx, [esp + 0x54]
push edx
push eax
call fcn.00457620
add esp, 8
cmp eax, esi
mov dword [esp + 0x10], eax
jne 0x47521e
mov byte [edi + 0x1a], 0
cmp dword [esp + 0x54], 0
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov esi, dword [edx + ecx*4]
mov byte [esi + 0x19], 0
mov ebp, dword [ebp + 8]
lea eax, [ebp + ebp*4]
lea eax, [edi + eax*8]
push eax
call fcn.0046b940
add esp, 4
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 1
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov ebx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0xe8], 0
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x2c], edi
jle 0x475a36
mov ecx, dword [ebx + 8]
mov dword [esp + 0x118], ecx
mov dx, word [ebp + 0x10]
mov dword [esp + 0x120], edi
mov word [esp + 0x11c], dx
mov byte [esp + 0x11e], 2
lea edi, [esp + 0x118]
jmp 0x475a82
mov edx, dword [ebx + 8]
lea eax, [esp + 0xe8]
push eax
push 0xb7
lea ecx, [esp + 0x28c]
push ecx
push edx
call fcn.0045a010
mov edi, eax
add esp, 0x10
test edi, edi
je 0x474747
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [ebx + 8]
push edi
push ecx
push edx
push eax
call fcn.0045a080
mov esi, dword [esp + 0x38]
add esp, 0x10
or byte [edi + 6], 2
cmp byte [ebp], 0x3e
jne 0x475abb
movzx edx, word [esp + 0x11c]
xor eax, eax
test edx, edx
jle 0x475abb
mov ecx, dword [esp + 0x120]
add ecx, 0x1c
test byte [ecx], 1
jne 0x475ab1
add eax, 1
add ecx, 0x28
cmp eax, edx
jl 0x475aa0
jmp 0x475abb
mov eax, dword [ebp + 8]
sub eax, 1
mov dword [esp + 0x18], eax
mov edx, dword [ebx]
lea ecx, [esp + 0xe0]
push ecx
push 0
push 0
push 0
push edi
push edx
call fcn.00455830
add esp, 0x18
cmp dword [ebp + 0x10], 0
mov edi, eax
mov dword [esp + 0x10], edi
jne 0x475af2
mov eax, dword [esp + 0xe8]
push eax
push esi
call fcn.0043f760
add esp, 8
test edi, edi
jne case.default.0x4734a2
mov ecx, dword [esp + 0xe0]
xor eax, eax
mov dword [ebx + 0xc], ecx
cmp dword [esp + 0xe0], eax
mov dl, 1
sete al
sub dl, al
mov byte [ebx + 0x19], dl
mov byte [ebx + 0x1b], 0
mov dword [ebx + 0x44], edi
cmp byte [ebp], 0x40
je 0x47463c
test eax, eax
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
lea ebx, [esp + 0x98]
push ebx
mov dword [esp + 0x9c], 0
mov edx, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
push 0
push edx
push ecx
push 0
push eax
call fcn.00455830
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x38], ecx
mov edx, dword [edi + 0x14]
add esp, 0x18
mov dword [esi + 0x3c], edx
cmp dword [esp + 0x98], 0
mov dword [esp + 0x10], eax
sete al
mov byte [esi + 0x1a], al
mov byte [esi + 0x19], 0
mov dword [esi + 0x44], 0
mov byte [esi + 0x1b], 0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x475bc1
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
mov dword [esi + 0xc], eax
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x28]
mov dword [ecx + 0x10], edx
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0x14], eax
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov eax, dword [edx + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x4734a2
mov edx, dword [ebx + 0x38]
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 4]
mov eax, dword [edx + eax*4]
mov edx, dword [eax]
test edx, edx
mov dword [esp + 0x2c], eax
je 0x475e69
test byte [eax + 0x1c], 1
jne 0x475d90
push edx
call fcn.00436320
mov ecx, eax
add esp, 4
or ecx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
jne 0x475cbc
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x34]
push edx
push ecx
call fcn.004557e0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
cmp dword [esp + 0x34], eax
je 0x475c6d
mov eax, 1
xor edx, edx
jmp 0x475cb4
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
lea edx, [esp + 0x44]
push edx
push ecx
call fcn.00451860
mov edx, dword [esp + 0x50]
add esp, 8
cmp edx, 0x7fffffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
jl 0x475cae
jg 0x475c9c
cmp eax, 0xffffffff
jb 0x475cae
mov eax, dword [esp + 0x2c]
or dword [eax + 0x1c], 1
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
jmp 0x475cbc
add eax, 1
adc edx, 0
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
je 0x475d56
mov ecx, dword [ebx + 0xb0]
test ecx, ecx
je 0x475ced
mov eax, dword [ecx + 4]
test eax, eax
je 0x475ce1
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x475cd8
mov eax, dword [ecx + 0xc]
lea edx, [ebp + ebp*4]
lea edi, [eax + edx*8]
jmp 0x475cf4
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
push edi
call fcn.0046ba70
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
add esp, 4
cmp eax, 0xffffffff
jne 0x475d14
cmp ecx, 0x7fffffff
je 0x475e45
mov edx, dword [esp + 0x2c]
test byte [edx + 0x1c], 1
jne 0x475e45
mov edx, dword [esp + 0x48]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x475d40
jl 0x475d38
cmp dword [esp + 0x44], eax
jae 0x475d40
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x44]
mov dword [edi + 0x10], eax
mov ecx, dword [esp + 0x48]
mov dword [edi + 0x14], ecx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
cmp edx, 0x7fffffff
jg 0x475d6d
jl 0x475d65
cmp eax, 0xffffffff
jae 0x475d6d
add eax, 1
adc edx, 0
jmp 0x475d71
xor eax, eax
xor edx, edx
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx]
push eax
call fcn.00451760
mov eax, dword [esp + 0x38]
add esp, 0xc
test byte [eax + 0x1c], 1
je 0x475e52
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0x2c]
and eax, 0x3fffffff
add ecx, 1
adc eax, 0
lea edx, [esp + 0x34]
push edx
xor ebp, ebp
push ebp
push eax
push ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
mov eax, dword [edi]
push ebp
push eax
call fcn.00455830
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x475e56
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x475e3a
add ebp, 1
cmp ebp, 0x64
jge 0x475e3a
lea ecx, [esp + 0x44]
push ecx
push 8
call fcn.00468d60
mov eax, dword [esp + 0x4c]
add esp, 8
cmp ebp, 5
jge 0x475e02
and eax, 0xffffff
xor ecx, ecx
jmp 0x475e0c
mov ecx, dword [esp + 0x48]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x34]
push edx
push 0
adc ecx, 0
push ecx
push eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [edi]
push 0
push eax
call fcn.00455830
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
je 0x475dd1
jmp 0x475e56
cmp dword [esp + 0x10], 0
jne 0x475e56
test eax, eax
jne 0x475e56
mov dword [esp + 0x10], 0xd
jmp 0x475222
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov byte [edi + 0x1a], 0
mov byte [edi + 0x1b], 0
mov dword [edi + 0x44], 0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], eax
jmp case.default.0x4734a2
cmp dl, 0x44
mov eax, dword [ebp + 8]
mov esi, dword [ebx + 0x38]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
mov esi, dword [esi + eax*4]
mov eax, dword [ebp + 0xc]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x1c], ecx
jne 0x475ea7
lea edx, [eax + eax*4]
mov eax, dword [edi + edx*8 + 0x10]
mov edi, dword [edi + edx*8 + 0x14]
jmp 0x475eaa
cdq
mov edi, edx
test byte [ebp + 3], 1
mov dword [esp + 0x164], eax
je 0x475ebb
add dword [ebx + 0x5c], 1
test byte [ebp + 3], 2
je 0x475ed3
mov edx, dword [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edi
mov dword [edx + 0x20], eax
mov dword [edx + 0x24], edi
movzx eax, word [ecx + 0x1c]
xor ebx, ebx
test al, 1
je 0x475ee3
mov dword [ecx + 4], ebx
mov dword [ecx + 0x18], ebx
test byte [ebp + 3], 0x10
je 0x475ef2
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], edx
jmp 0x475ef6
mov dword [esp + 0x20], ebx
test eax, 0x4000
je 0x475f00
mov ebx, dword [ecx + 0x10]
mov eax, dword [esi]
push 0
push 0
push eax
call fcn.00451760
movzx edx, byte [ebp + 3]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [eax + 0x18]
shr edx, 3
and edx, 1
push edx
mov edx, dword [eax + 4]
mov eax, dword [esi]
push ebx
mov ebx, dword [esp + 0x17c]
push ecx
push edx
push edi
push ebx
push 0
push eax
call fcn.00457770
add esp, 0x30
test eax, eax
mov dword [esp + 0x10], eax
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
jne case.default.0x4734a2
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc8]
test edx, edx
je case.default.0x4734a2
mov eax, dword [ebp + 0x10]
test eax, eax
je case.default.0x4734a2
push edi
push ebx
push eax
movsx eax, byte [esi + 0x18]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc4]
shl eax, 4
mov eax, dword [eax + esi]
push eax
mov al, byte [ebp + 3]
and al, 4
neg al
sbb eax, eax
and eax, 5
add eax, 0x12
push eax
push ecx
call edx
jmp 0x4779b5
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov edi, dword [eax + edx*4]
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
push edi
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], edx
call fcn.00459bb0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
push eax
push eax
mov eax, dword [edi]
push eax
call fcn.00451760
mov ecx, dword [edi]
push ecx
call fcn.00457990
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
mov dword [edi + 0x44], 0
jne 0x476040
mov ecx, dword [esi + 0xc8]
test ecx, ecx
je 0x476040
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x476040
test byte [edi + 0x1c], 2
je 0x476040
mov edx, dword [esp + 0x128]
push edx
mov edx, dword [esp + 0x128]
push edx
mov edx, dword [esi + 0x10]
push eax
movsx eax, byte [edi + 0x18]
shl eax, 4
mov eax, dword [eax + edx]
mov edx, dword [esi + 0xc4]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [ebp + 8], 1
je case.default.0x4734a2
add dword [ebx + 0x5c], 1
jmp case.default.0x4734a2
mov eax, dword [ebx + 0x5c]
push eax
push esi
call fcn.0045a550
add esp, 8
mov dword [ebx + 0x5c], 0
jmp case.default.0x4734a2
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx + ecx*4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x12c]
push edx
push eax
push edi
push ecx
call fcn.00484ce0
add esp, 0x10
cmp dword [esp + 0x12c], 0
mov dword [esp + 0x10], eax
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
push ecx
push eax
mov dword [esp + 0x1c], ecx
call fcn.00484c60
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea edx, [edi + ecx*8]
mov ecx, dword [ebx + 0x38]
mov ebp, dword [ecx + eax*4]
mov edi, dword [ebp]
push ebp
mov dword [esp + 0x18], edx
call fcn.00459bb0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
test byte [ebp + 0x1c], 2
jne 0x47614f
lea edx, [esp + 0x194]
push edx
push edi
call fcn.00451860
mov eax, dword [esi + 0x58]
mov ecx, dword [esp + 0x1a0]
cdq
add esp, 8
cmp ecx, edx
jg 0x473e7e
mov ecx, dword [esp + 0x194]
jl 0x476147
cmp ecx, eax
ja 0x473e7e
mov eax, ecx
mov dword [esp + 0x70], eax
jmp 0x47616a
lea edx, [esp + 0x70]
push edx
push edi
call fcn.004518e0
mov eax, dword [esp + 0x78]
add esp, 8
cmp eax, dword [esi + 0x58]
ja 0x473e7e
push 0
push eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.0046bf60
add esp, 0xc
test eax, eax
jne 0x474747
mov esi, dword [esp + 0x14]
mov dx, word [esi + 0x1c]
mov ecx, dword [esp + 0x70]
and dx, 0xbe10
or dx, 0x10
mov dword [esi + 0x18], ecx
mov word [esi + 0x1c], dx
test byte [ebp + 0x1c], 2
jne 0x4761c5
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x70]
push eax
push ecx
push 0
push edi
call fcn.00451da0
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [esi + 0x1f], 1
jmp case.default.0x4734a2
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x70]
push edx
push eax
push 0
push edi
call fcn.00457490
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [esi + 0x1f], 1
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
cmp byte [esi + 0x19], 0
je 0x476200
mov word [ecx + 0x1c], 1
jmp case.default.0x4734a2
cmp byte [esi + 0x1b], 0
je 0x47621c
mov ecx, dword [esi + 0x30]
mov dword [esp + 0xac], ecx
mov edx, dword [esi + 0x34]
mov dword [esp + 0xb0], edx
jmp 0x47628e
cmp dword [esi + 0x20], 0
je 0x476247
mov esi, dword [esi + 0x20]
mov edi, dword [esi]
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
lea ecx, [esp + 0xac]
push ecx
push esi
call edx
push edi
push ebx
mov dword [esp + 0x20], eax
call fcn.0045a620
add esp, 0x10
jmp 0x47628e
push esi
call fcn.00459bb0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
cmp byte [esi + 0x1a], al
je 0x476277
mov eax, dword [esi + 0x38]
mov dword [esp + 0xac], eax
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0xb0], ecx
jmp 0x47628e
mov eax, dword [esi]
lea edx, [esp + 0xac]
push edx
push eax
call fcn.00451860
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x19], 1
mov byte [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov eax, dword [eax]
test eax, eax
je case.default.0x4734a2
push eax
call fcn.0044f640
add esp, 4
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
lea ecx, [esp + 0xa0]
push ecx
xor edi, edi
push eax
mov dword [esp + 0xa8], edi
call fcn.004557e0
mov dl, byte [esp + 0xa8]
mov byte [esi + 0x19], dl
mov byte [esi + 0x1b], 0
mov byte [esi + 0x1a], 0
mov dword [esi + 0x44], edi
mov ebp, dword [ebp + 8]
add esp, 8
cmp ebp, edi
mov dword [esp + 0x10], eax
jle case.default.0x4734a2
cmp dword [esp + 0xa0], edi
je case.default.0x4734a2
add ebp, 0xffffffff
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
add dword [ebx + 0x74], 1
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov edi, dword [ecx + eax*4]
mov dword [esp + 0x88], 1
cmp dword [edi + 0x40], 0
je 0x47636f
lea edx, [esp + 0x88]
push edx
push edi
push esi
call fcn.00484d30
add esp, 0xc
jmp 0x476391
mov eax, dword [edi]
lea ecx, [esp + 0x88]
push ecx
push eax
call fcn.004557a0
add esp, 8
mov byte [edi + 0x1b], 0
mov dword [edi + 0x44], 0
mov byte [edi + 0x1a], 0
mov dl, byte [esp + 0x88]
mov byte [edi + 0x19], dl
cmp dword [esp + 0x88], 0
mov dword [esp + 0x10], eax
je case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov edi, dword [ecx + eax*4]
lea edx, [esp + 0xdc]
push edx
push edi
push esi
call fcn.00484ba0
add esp, 0xc
jmp 0x476405
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
cmp dword [ecx + eax*4], 0
je case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov edi, dword [eax + edx*4]
mov edx, dword [edi]
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0xdc]
push ecx
push edx
call eax
add esp, 8
mov dword [edi + 0x44], 0
cmp dword [esp + 0xdc], 0
mov dword [esp + 0x10], eax
jne 0x47643e
mov byte [edi + 0x19], 0
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 3]
sub eax, 1
add dword [ebx + ecx*4 + 0x6c], 1
mov dword [esp + 0x18], eax
lea eax, [ebx + ecx*4 + 0x6c]
mov byte [edi + 0x1a], 0
jmp 0x4776b4
mov byte [edi + 0x19], 1
mov byte [edi + 0x1a], 0
jmp 0x4776b4
test byte [ebp + 3], 1
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [ecx]
mov dword [esp + 0x20], ecx
lea edi, [edi + edx*8]
mov dword [esp + 0x1c], eax
je 0x476471
add dword [ebx + 0x5c], 1
test word [edi + 0x1c], 0x4000
je 0x476492
push edi
call fcn.0046c070
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x40], 0
je 0x4764b0
mov ecx, dword [esp + 0x20]
push edi
push ecx
push esi
call fcn.00484a40
add esp, 0xc
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
test byte [ebp + 3], 0x10
mov eax, dword [edi + 0x18]
mov edi, dword [edi + 4]
je 0x4764c1
mov ecx, dword [ecx + 0xc]
jmp 0x4764c3
xor ecx, ecx
mov edx, dword [ebp + 0xc]
push ecx
push edx
push 0
push 0
cdq
push 0x5476a1
push edx
push eax
mov eax, dword [esp + 0x38]
push edi
push eax
call fcn.00457770
mov ecx, dword [esp + 0x44]
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [ecx + 0x44], 0
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
mov ebx, dword [esi]
mov ecx, dword [esi + 8]
mov dx, word [ebp + 0xc]
mov ebp, dword [ebp + 8]
mov word [esp + 0x150], dx
lea edx, [esp + 0x13c]
push edx
push 0
lea eax, [ebp + ebp*4]
push 0
mov dword [esp + 0x158], ecx
lea ecx, [edi + eax*8]
push 0
lea eax, [esp + 0x15c]
push eax
push ebx
mov byte [esp + 0x16a], 2
mov dword [esp + 0x16c], ecx
call fcn.00455830
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47656d
cmp dword [esp + 0x13c], eax
jne 0x47656d
push ebx
call fcn.00457990
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esi + 0x44], 0
jmp case.default.0x4734a2
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov edi, dword [edx + ecx*4]
mov eax, dword [esp + 0x14]
mov ebp, dword [edi]
push edi
mov word [eax + 0x1c], 1
call fcn.00459bb0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x47521e
cmp byte [edi + 0x19], al
jne case.default.0x4734a2
lea ecx, [esp + 0xf4]
push ecx
xor edi, edi
push ebp
push esi
mov dword [esp + 0x100], edi
mov dword [esp + 0x104], edi
call fcn.0045a320
add esp, 0xc
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x47521e
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf8]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
mov word [eax + 0x1c], 4
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x158], ecx
mov dx, word [ebp + 0x10]
mov word [esp + 0x15c], dx
cmp byte [ebp + 3], 0
setne cl
add cl, 2
mov byte [esp + 0x15e], cl
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + ecx*4]
lea ecx, [edi + edx*8]
lea edx, [esp + 0x7c]
mov dword [esp + 0x160], ecx
push edx
lea ecx, [esp + 0x15c]
push ecx
push eax
mov dword [esp + 0x88], 0
call fcn.0045a470
add esp, 0xc
cmp byte [ebp], 0x6c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
jne 0x476670
neg eax
jmp 0x476673
add eax, 1
test eax, eax
mov dword [esp + 0x7c], eax
jle case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov edi, dword [esi + 4]
test edi, edi
mov dword [esp + 0x20], 0
je 0x4766cb
lea ecx, [ecx]
cmp dword [edi + 0x28], 0xbdf20da3
jne 0x4766c4
mov eax, dword [edi + 0x58]
test eax, 0x200
je 0x4766c4
and al, 0xc
cmp al, 8
jae 0x4766c4
cmp dword [edi + 0x4c], 0
jl 0x4766c4
add dword [esp + 0x20], 1
mov edi, dword [edi + 0x34]
test edi, edi
jne 0x4766a0
mov eax, 1
cmp dword [esp + 0x20], eax
mov word [ecx + 0x1c], ax
jle 0x4766eb
mov dword [esp + 0x10], 6
mov byte [ebx + 0x56], 2
jmp case.default.0x4734a2
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x94]
push edx
mov edx, dword [esi + 0x10]
mov ecx, ebx
push eax
shl ecx, 4
mov dword [esp + 0x9c], 0
mov eax, dword [ecx + edx + 4]
push eax
call fcn.00457090
mov ecx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0xa0]
cdq
add esp, 0xc
test edi, edi
mov dword [esp + 0x10], edi
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne case.default.0x4734a2
mov eax, dword [esp + 0x94]
test eax, eax
je case.default.0x4734a2
mov ecx, dword [ebp + 4]
push ecx
push eax
push ebx
push esi
call fcn.0045ea30
add esp, 0x10
add bl, 1
mov byte [esp + 0x43], bl
jmp case.default.0x4734a2
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x20]
and edx, eax
mov eax, dword [esi + 0x10]
push edx
mov edx, dword [ebp + 8]
push ecx
shl edx, 4
mov dword [esp + 0x28], 0
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.00456df0
add esp, 0xc
cmp dword [ebp + 0xc], 0
mov dword [esp + 0x10], eax
je case.default.0x4734a2
mov eax, dword [esp + 0x20]
add dword [ebx + 0x5c], eax
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jle case.default.0x4734a2
lea edx, [ebp + ebp*4]
lea ecx, [edi + edx*8 + 0x10]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.default.0x4734a2
mov ebp, dword [ebp + 4]
shl ebp, 4
add ebp, dword [esi + 0x10]
xor eax, eax
cmp dl, 0x71
setne al
mov dword [esp + 0x1c], 0
mov ecx, dword [ebp + 4]
add eax, 1
push eax
lea eax, [esp + 0x20]
push eax
push ecx
call fcn.00456c60
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
cdq
add esp, 0xc
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
cmp eax, 1
mov ecx, str.sqlite_temp_master
je 0x476825
mov ecx, str.sqlite_master
mov edx, dword [ebp + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x17c], eax
add ebx, 0x2c
shl eax, 4
mov dword [esp + 0x174], esi
mov dword [esp + 0x178], ebx
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push esi
call fcn.0043f200
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x47686a
mov dword [esp + 0x10], 7
jmp 0x4768c1
push 0
lea eax, [esp + 0x170]
push eax
push fcn.00442f70
push edi
push esi
mov byte [esi + 0x89], 1
mov dword [esp + 0x18c], 0
call fcn.00442530
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x4768ac
mov ecx, dword [esp + 0x178]
mov dword [esp + 0x10], ecx
mov ebx, ecx
push edi
push esi
call fcn.0043f760
add esp, 8
test ebx, ebx
mov byte [esi + 0x89], 0
je 0x4768ca
push esi
call fcn.0045dc40
add esp, 4
cmp dword [esp + 0x10], 7
je 0x474747
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
push edx
push esi
call fcn.0047de80
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
push eax
push ecx
push esi
call fcn.0045de40
add esp, 0xc
jmp case.default.0x4734a2
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 4]
push edx
push eax
push esi
call fcn.0045da90
add esp, 0xc
jmp case.default.0x4734a2
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 4]
push ecx
push edx
push esi
call fcn.004892a0
add esp, 0xc
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
lea eax, [eax*4 + 4]
push eax
push esi
call fcn.0043fd50
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x474747
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x50]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
xor esi, esi
cmp dword [esp + 0x1c], esi
lea eax, [ecx + eax*8]
lea edi, [ecx + edx*8]
mov dword [esp + 0x38], eax
jle 0x47699e
mov dword [esp + 0x20], eax
lea ebx, [ebx]
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0046b940
add dword [esp + 0x24], 0x28
mov dword [ebx + esi*4], eax
add esi, 1
add esp, 4
cmp esi, dword [esp + 0x1c]
jl 0x476980
mov ecx, dword [esp + 0x1c]
mov dword [ebx + esi*4], 0
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x28]
lea edx, [esp + 0xe4]
push edx
movzx edx, byte [ebp + 3]
push eax
mov eax, dword [esi + 0x10]
push ecx
shl edx, 4
mov ecx, dword [edx + eax + 4]
push ebx
push ecx
call fcn.00453d70
push ebx
push esi
mov ebp, eax
call fcn.0043f760
mov eax, dword [esp + 0x100]
cdq
sub dword [edi + 0x10], eax
sbb dword [edi + 0x14], edx
mov edx, dword [esp + 0x54]
push edx
call fcn.0046bb40
add esp, 0x20
cmp dword [esp + 0xe4], 0
je 0x476a1c
test ebp, ebp
je 0x474747
mov eax, dword [esp + 0x38]
push fcn.0043f700
push 1
push 0xffffffffffffffff
push ebp
push eax
call fcn.0046c1b0
add esp, 0x14
movzx ecx, byte [esp + 0x3f]
mov edx, dword [esp + 0x38]
push ecx
push edx
call fcn.0046b840
add esp, 8
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ebp, dword [ebp + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov bl, 0x20
test byte [esi + 0x1c], bl
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
jne 0x476a60
push esi
call fcn.0046bdf0
add esp, 4
test byte [esi + 0x1c], bl
je 0x474747
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push edx
push eax
push ecx
call fcn.00495660
add esp, 0xc
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 0x20
lea eax, [edi + edx*8]
mov dword [esp + 0x38], eax
je 0x476ad1
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + 0x10]
lea eax, [esp + 0x184]
push eax
push edx
call fcn.00495960
add esp, 8
test eax, eax
je 0x476ad1
mov eax, dword [esp + 0x188]
mov ebp, dword [ebp + 0xc]
mov ecx, dword [esp + 0x184]
push eax
lea edx, [ebp + ebp*4]
push ecx
lea eax, [edi + edx*8]
push eax
call fcn.0046bd20
add esp, 0xc
jmp 0x4776b4
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0046bb40
add esp, 4
jmp case.0x4734a2.15
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 0x20
mov eax, dword [ebp + 0xc]
lea esi, [edi + edx*8]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov edi, dword [ebp + 0x10]
jne 0x476b12
push esi
call fcn.0046bdf0
add esp, 4
test byte [esi + 0x1c], 0x20
je 0x474747
test edi, edi
je 0x476b54
jl 0x476b1f
mov eax, edi
and eax, 0xf
jmp 0x476b24
mov eax, 0xff
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push ecx
push edx
push eax
mov eax, dword [esi + 0x10]
push eax
call fcn.004959c0
add esp, 0x10
test eax, eax
je 0x476b4c
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
test edi, edi
jl case.default.0x4734a2
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
mov eax, dword [esi + 0x10]
push ecx
push edx
push eax
call fcn.00495660
add esp, 0xc
jmp case.default.0x4734a2
cmp byte [ebp + 3], 0
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x50]
mov edi, dword [ebp + 0x10]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x20], eax
je 0x476ba4
mov eax, dword [ebx + 0xb0]
test eax, eax
mov ecx, dword [edi + 0x14]
je 0x476ba4
cmp dword [eax + 0x18], ecx
je case.default.0x4734a2
mov eax, dword [eax + 4]
test eax, eax
jne 0x476b94
mov ecx, dword [ebx + 0xb8]
mov eax, dword [esp + 0x28]
cmp ecx, dword [eax + 0x80]
jl 0x476bd5
push str.too_many_levels_of_trigger_recursion
push eax
add ebx, 0x2c
push ebx
mov dword [esp + 0x1c], 1
call fcn.0043f7c0
add esp, 0xc
jmp case.default.0x4734a2
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 0x40
jne 0x476ca1
mov eax, dword [edi + 0xc]
mov ebp, dword [edi + 8]
add ebp, eax
lea ecx, [ebp + ebp*4]
lea edx, [eax + ecx*2]
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x28]
lea eax, [eax + edx*4 + 0x48]
push eax
push ecx
call fcn.0043ff50
mov esi, eax
add esp, 8
test esi, esi
je 0x474747
mov ebx, dword [esp + 0x20]
push ebx
call fcn.0046bc80
mov eax, dword [esp + 0x1c]
mov word [ebx + 0x1c], 0x40
mov dword [ebx + 0x10], esi
mov ebx, dword [esp + 0x50]
mov dword [esi], ebx
mov dword [esi + 0x3c], ebp
mov edx, dword [edi + 0xc]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x40], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 0xc], ecx
mov edx, dword [ebx + 0x1c]
mov dword [esi + 0x34], edx
mov eax, dword [ebx + 0x38]
mov dword [esi + 0x14], eax
mov ecx, dword [ebx + 0x24]
mov dword [esi + 0x28], ecx
mov edx, dword [ebx + 4]
mov dword [esi + 8], edx
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x30], eax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x18], ecx
mov edx, dword [ebx + 0xc8]
mov dword [esi + 0x10], edx
mov eax, dword [ebx + 0xc4]
lea ecx, [ebp + ebp*4]
mov dword [esi + 0x38], eax
lea ecx, [esi + ecx*8 + 0x48]
lea eax, [esi + 0x48]
add esp, 4
cmp eax, ecx
je 0x476ca8
mov edx, dword [esp + 0x28]
lea esp, [esp]
mov word [eax + 0x1c], 0x80
mov dword [eax], edx
add eax, 0x28
cmp eax, ecx
jne 0x476c90
jmp 0x476ca8
mov edx, dword [esp + 0x20]
mov esi, dword [edx + 0x10]
add dword [ebx + 0xb8], 1
mov eax, dword [ebx + 0xb0]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esi + 4], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [esi + 0x44], ecx
lea eax, [esi + 0x20]
mov ecx, eax
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0xb0], esi
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x3c]
mov dword [ebx + 0x1c], edx
movzx eax, word [esi + 0x40]
mov dword [ebx + 0x24], eax
mov eax, edx
add eax, 1
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x38], eax
mov dword [esp + 0x50], ecx
mov ecx, dword [edi]
mov dword [ebx + 4], ecx
mov dword [esp + 0x9c], ecx
mov ecx, dword [edi + 4]
lea eax, [eax + edx*4]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0xc8], eax
mov edi, dword [edi + 0x10]
push edi
push 0
push eax
mov dword [ebx + 0xc4], edi
mov dword [esp + 0x24], 0xffffffff
call fcn.004f5b00
add esp, 0xc
jmp case.default.0x4734a2
mov ebx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
add eax, dword [ebp + 4]
push 0x1000
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea ecx, [eax + edx*8]
mov edx, dword [esp + 0x18]
push ecx
push edx
call fcn.0046be70
add esp, 0xc
jmp case.default.0x4734a2
test dword [esi + 0x18], 0x1000000
mov eax, dword [ebp + 8]
cdq
je 0x476d95
add dword [esi + 0x1f8], eax
adc dword [esi + 0x1fc], edx
jmp case.default.0x4734a2
cmp dword [ebp + 4], 0
je 0x476dac
add dword [esi + 0x1f0], eax
adc dword [esi + 0x1f4], edx
jmp case.default.0x4734a2
add dword [ebx + 0x90], eax
adc dword [ebx + 0x94], edx
jmp case.default.0x4734a2
cmp dword [ebp + 4], 0
je 0x476df6
mov eax, dword [esi + 0x1f0]
or eax, dword [esi + 0x1f4]
jne case.default.0x4734a2
mov ecx, dword [esi + 0x1f8]
or ecx, dword [esi + 0x1fc]
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov edx, dword [ebx + 0x90]
or edx, dword [ebx + 0x94]
jne case.default.0x4734a2
mov eax, dword [esi + 0x1f8]
or eax, dword [esi + 0x1fc]
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov ebx, dword [ebx + 0xb0]
test ebx, ebx
je 0x476e57
mov ecx, ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x476e49
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x476e40
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea esi, [eax + edx*8]
jmp 0x476e60
mov eax, dword [ebp + 4]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
push esi
call fcn.0046ba70
mov ebp, dword [ebp + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
push edi
call fcn.0046ba70
mov eax, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
mov ecx, dword [esi + 0x14]
add esp, 8
cmp ecx, edi
jg case.default.0x4734a2
jl 0x476e97
mov edx, dword [esi + 0x10]
cmp edx, eax
jae case.default.0x4734a2
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edi
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [edi + eax*8 + 0x14], 0
jl case.default.0x4734a2
jg 0x476ec0
cmp dword [edi + eax*8 + 0x10], 0
jbe case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
cmp dword [edi + eax*8 + 0x14], 0
jg case.default.0x4734a2
jl 0x476eed
cmp dword [edi + eax*8 + 0x10], 0
jae case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ebp + 0xc]
cdq
add dword [edi + 0x10], eax
mov ecx, dword [edi + 0x10]
adc dword [edi + 0x14], edx
or ecx, dword [edi + 0x14]
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
jmp case.default.0x4734a2
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 3]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea esi, [edi + edx*8]
xor edx, edx
test ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
jle 0x476f64
mov ecx, dword [esp + 0x20]
push esi
mov dword [ecx + edx*4], esi
call fcn.00473100
add edx, 1
add esp, 4
add esi, 0x28
cmp edx, dword [esp + 0x1c]
jl 0x476f48
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, 1
mov dword [esp + 0x1ac], edx
mov dword [esp + 0x1dc], eax
add dword [eax + 0x18], ecx
mov eax, dword [esp + 0x1ac]
xor esi, esi
mov word [esp + 0x1d0], cx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1b8], esi
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1ec], esi
mov dword [esp + 0x1e0], esi
mov byte [esp + 0x1f0], 0
test byte [eax + 2], 0x20
je 0x476fdd
mov edx, dword [ebp - 4]
mov dword [esp + 0x1e0], edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push ecx
push edx
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0x1b4]
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0x1ec], esi
je 0x47702f
lea eax, [esp + 0x1b4]
push eax
call fcn.00440110
mov ecx, dword [esp + 0x2c]
push eax
push 0x5508f0
push ecx
add ebx, 0x2c
push ebx
call fcn.0043f7c0
mov edx, dword [esp + 0x200]
add esp, 0x14
mov dword [esp + 0x10], edx
cmp byte [esp + 0x1f0], 0
je 0x477053
mov ebp, dword [ebp - 0x10]
cmp ebp, esi
je 0x477053
push esi
lea eax, [ebp + ebp*4]
lea ecx, [edi + eax*8]
push 1
push ecx
call fcn.0046bd20
add esp, 0xc
lea edx, [esp + 0x1b4]
push edx
call fcn.0046bc80
add esp, 4
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push ecx
push edi
call fcn.0046b870
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
je 0x47709f
push edi
call fcn.00440110
push eax
push 0x5508f0
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0x14
movzx edx, byte [esp + 0x3f]
push edx
push edi
call fcn.0046b840
push edi
jmp 0x473e6e
mov edx, dword [ebp + 8]
or eax, 0xffffffff
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], eax
lea eax, [esp + 0x114]
push eax
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x114]
push ecx
push edx
push eax
xor ebx, ebx
push esi
mov dword [esp + 0x120], ebx
call fcn.004368d0
add esp, 0x14
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x477104
mov dword [esp + 0x10], ebx
mov dword [esp + 0x10c], 1
mov ebp, dword [ebp + 0xc]
lea ecx, [ebp + ebp*4]
xor esi, esi
lea edi, [edi + ecx*8]
mov eax, dword [esp + esi*4 + 0x10c]
cdq
push edx
push eax
push edi
call fcn.0046bd20
add esi, 1
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x477110
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp + 0xc]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x24], eax
call fcn.00453370
push eax
mov dword [esp + 0x38], eax
call fcn.0044ca70
add esp, 8
cmp dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x34], eax
jne 0x47716f
mov edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x30]
push eax
call fcn.0044ca80
add esp, 4
test eax, eax
jne 0x477188
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x30]
push 1
push edx
call fcn.0044c8f0
add esp, 8
cmp dword [esp + 0x38], 5
jne 0x4771d8
push eax
call fcn.0045ae30
add esp, 4
test eax, eax
je 0x4771bc
mov eax, dword [esp + 0x30]
push eax
call fcn.0044cbc0
add esp, 4
test eax, eax
jne 0x4771d8
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x10], 0
je 0x47728d
mov eax, dword [esp + 0x34]
jmp 0x477291
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
cmp ecx, eax
je 0x4771c4
cmp eax, 5
je 0x4771ee
cmp ecx, 5
jne 0x4771c4
cmp byte [esi + 0x3e], 0
je 0x47725e
cmp dword [esi + 0x90], 1
jg 0x47725e
cmp eax, 5
jne 0x47721f
mov esi, dword [esp + 0x30]
push esi
call fcn.0044cd00
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4771cf
mov edx, dword [esp + 0x38]
push edx
push esi
jmp 0x47722b
cmp eax, 4
jne 0x477233
mov eax, dword [esp + 0x30]
push 2
push eax
call fcn.0044f3a0
add esp, 8
cmp dword [esp + 0x10], 0
jne 0x4771cf
mov edx, dword [esp + 0x20]
xor ecx, ecx
cmp dword [esp + 0x38], 5
sete cl
add ecx, 1
push ecx
push edx
call fcn.004542c0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x4771c4
cmp ecx, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x477275
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0x10
jmp case.default.0x4734a2
mov eax, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x34]
push eax
call fcn.0044f3a0
mov ebp, dword [ebp + 8]
lea ecx, [ebp + ebp*4]
lea edi, [edi + ecx*8]
push eax
mov dword [esp + 0x20], edi
mov word [edi + 0x1c], 0xa02
call fcn.00469220
push eax
mov dword [edi + 4], eax
call fcn.0045ae30
movzx edx, byte [esp + 0x4f]
push edx
push edi
mov dword [edi + 0x18], eax
mov byte [edi + 0x1f], 1
call fcn.0046b840
jmp 0x4779b5
push esi
add ebx, 0x2c
push ebx
call fcn.00495f60
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push eax
call fcn.00454fb0
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], 0
jmp case.default.0x4734a2
cmp dword [ebp + 4], 0
jne 0x47733b
push esi
call fcn.0045a570
add esp, 4
jmp case.default.0x4734a2
or dword [ebx + 0x58], 0x20
jmp case.default.0x4734a2
mov al, byte [ebp + 0xc]
test al, al
mov byte [esp + 0x138], al
jne 0x47735f
test dword [esi + 0x18], 0x4000
jne case.default.0x4734a2
mov edx, dword [esp + 0x138]
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push ecx
push eax
call fcn.00454250
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov ecx, dword [ebp + 0x10]
push ecx
push str.database_table_is_locked:__s
push esi
add ebx, 0x2c
push ebx
call fcn.0043f7c0
add esp, 0x10
jmp case.default.0x4734a2
mov ebp, dword [ebp + 0x10]
push ebp
push esi
call fcn.0045d080
add esp, 8
test ebp, ebp
mov dword [esp + 0x10], eax
je case.default.0x4734a2
mov edx, dword [ebp + 8]
push edx
push ebx
call fcn.0045a620
add esp, 8
jmp case.default.0x4734a2
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
add ebx, 0x2c
push ebx
push eax
push ecx
push esi
call fcn.0045cc80
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov edx, dword [ebx + 0x58]
and edx, 0xfffffffb
or edx, 8
mov dword [ebx + 0x58], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 4]
push eax
push ecx
push esi
call fcn.0045ced0
add esp, 0xc
and dword [ebx + 0x58], 0xfffffff3
mov dword [esp + 0x10], eax
jmp case.default.0x4734a2
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x30], 0
mov edi, dword [edx + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0x30]
push ecx
push edi
mov dword [esp + 0x28], eax
call edx
mov esi, eax
push edi
push ebx
mov dword [esp + 0x20], esi
call fcn.0045a620
add esp, 0x10
test esi, esi
jne case.default.0x4734a2
mov eax, dword [esp + 0x30]
push esi
mov dword [eax], edi
mov ebx, dword [ebp + 4]
mov edi, dword [esp + 0x50]
push 0xffffffffffffffff
push esi
call fcn.00473130
add esp, 0xc
test eax, eax
je 0x47747b
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x20], ecx
jmp case.default.0x4734a2
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov byte [edx + 0x40], 1
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp case.default.0x4734a2
mov edx, dword [ebx + 0x38]
mov ecx, dword [ebp + 4]
mov ecx, dword [edx + ecx*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx + 0x20]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8 + 0x38]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0xc]
xor esi, esi
test edx, edx
mov dword [esp + 0x20], ecx
jle 0x4774fa
lea edi, [eax + 0x50]
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
push edi
mov dword [eax + esi*4], edi
call fcn.00473100
add esi, 1
add esp, 4
add edi, 0x28
cmp esi, edx
jl 0x4774e0
mov ecx, dword [ebx + 0x58]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
and ecx, 0xfffffff7
push eax
mov eax, dword [esp + 0x20]
or ecx, 4
push edx
mov edx, dword [esp + 0x3c]
mov dword [ebx + 0x58], ecx
mov ecx, dword [ebp + 0x10]
push ecx
mov ecx, dword [eax + 0x20]
push edx
push edi
call ecx
mov edx, dword [esp + 0x40]
and dword [ebx + 0x58], 0xfffffff3
push edx
mov esi, eax
push ebx
mov dword [esp + 0x2c], esi
call fcn.0045a620
add esp, 0x1c
test esi, esi
jne 0x47755a
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
push edi
call ecx
add esp, 4
test eax, eax
je 0x47755a
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x38]
mov byte [edx + 0x19], 0
jmp case.default.0x4734a2
mov eax, dword [ebp + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 0x19], 0
mov eax, dword [ebp + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x20], eax
je 0x477593
mov ecx, eax
push ecx
call fcn.0046bb40
add esp, 4
jmp case.default.0x4734a2
mov edx, dword [esi + 0x20]
mov edi, dword [edx]
mov eax, dword [edi]
push 0x48
lea ecx, [esp + 0x240]
push 0
push ecx
mov dword [esp + 0x28], eax
call fcn.004f5b00
mov edx, dword [esp + 0x2c]
push edx
lea eax, [esp + 0x254]
push eax
call fcn.0046bec0
mov ecx, dword [esp + 0x274]
mov edx, dword [ebp + 8]
and ecx, 0xbe01
or ecx, 1
push edx
mov edx, dword [esp + 0x34]
mov word [esp + 0x278], cx
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x254]
push eax
mov eax, dword [edx + 0x2c]
push ecx
call eax
push edi
push ebx
mov dword [esp + 0x38], eax
call fcn.0045a620
mov eax, dword [esp + 0x2a4]
add esp, 0x28
test eax, eax
je 0x47760f
mov dword [esp + 0x10], eax
movzx ecx, byte [esp + 0x3f]
push ecx
lea edx, [esp + 0x248]
push edx
call fcn.0046b840
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x24c]
push eax
push esi
call fcn.0046bec0
push esi
call fcn.0046bb90
add esp, 0x14
jmp 0x473e76
mov ecx, dword [ebp + 4]
mov edx, dword [ebx + 0x38]
mov edi, dword [edx + ecx*4]
cmp byte [edi + 0x19], 0
jne case.default.0x4734a2
mov eax, dword [edi + 0x20]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x58]
and ecx, 0xfffffff7
mov dword [esp + 0x20], eax
mov eax, dword [eax]
or ecx, 4
mov dword [ebx + 0x58], ecx
mov edx, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 0x24]
push edx
call eax
mov ecx, dword [esp + 0x24]
and dword [ebx + 0x58], 0xfffffff3
push ecx
push ebx
mov dword [esp + 0x1c], eax
call fcn.0045a620
add esp, 0xc
cmp dword [esp + 0x10], 0
jne case.0x4734a2.15
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
jne 0x4776b4
mov ebp, dword [ebp + 8]
sub ebp, 1
mov dword [esp + 0x18], ebp
mov edx, dword [esi + 0xe8]
test edx, edx
jne 0x477ba3
mov esi, dword [esp + 0x28]
mov edi, dword [esi + 0x11c]
test edi, edi
je case.default.0x4734a2
mov ebp, dword [esp + 0x78]
cmp ebp, dword [esp + 0x84]
jb case.default.0x4734a2
mov ecx, dword [esi + 0x124]
mov eax, ebp
div ecx
mov eax, dword [esi + 0x120]
push eax
sub ecx, edx
add ecx, ebp
mov dword [esp + 0x88], ecx
call edi
add esp, 4
test eax, eax
je case.default.0x4734a2
mov dword [esp + 0x10], 9
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
push eax
push ecx
push edx
push str.statement_aborts_at__d:___s___s
push edi
mov dword [ebx + 0x50], edi
call fcn.0043f420
push ebx
call fcn.0045aa20
add esp, 0x18
cmp edi, 0xc0a
jne 0x47774d
mov byte [esi + 0x40], 1
cmp byte [esp + 0x43], 0
mov esi, 1
jbe 0x47776e
movzx eax, byte [esp + 0x43]
mov ecx, dword [esp + 0x28]
sub eax, esi
push eax
push ecx
call fcn.0045dc00
add esp, 8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 0x24], ecx
add dword [ebx + 0x7c], edx
push ebx
call fcn.00458a20
mov ecx, dword [esp + 0x340]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004f2ac1
add esp, 0x330
ret
mov ecx, dword [ebp + 0x10]
mov ebp, dword [ebp + 4]
mov esi, dword [ecx + 8]
lea edx, [ebp + ebp*4]
lea edi, [edi + edx*8]
push 1
push edi
call fcn.0046b840
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.default.0x4734a2
mov ecx, dword [edi + 4]
mov eax, dword [esi]
mov edx, dword [eax + 0x4c]
push ecx
push esi
call edx
push esi
push ebx
mov dword [esp + 0x20], eax
call fcn.0045a620
add esp, 0x10
and dword [ebx + 0x58], 0xffffffdf
jmp case.default.0x4734a2
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
cmp dword [eax + 0x34], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
je case.default.0x4734a2
mov edx, dword [esp + 0x28]
mov al, byte [edx + 0x44]
mov ecx, dword [ebx + 0xc]
mov byte [esp + 0x3e], al
mov eax, dword [ebp + 0xc]
xor esi, esi
cmp dword [esp + 0x20], esi
lea edx, [eax + eax*4]
mov dword [esp + 0x1c], ecx
lea edx, [edi + edx*8]
jle 0x477858
mov edi, ecx
jmp 0x477840
push edx
call fcn.00473100
mov dword [edi + esi*4], edx
add esi, 1
add esp, 4
add edx, 0x28
cmp esi, dword [esp + 0x20]
jl 0x477840
movzx eax, byte [ebp + 3]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x18c]
push ecx
mov ecx, dword [esp + 0x34]
mov byte [esi + 0x44], al
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [ecx + 0x34]
push eax
push edi
call edx
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x4e]
push edi
push ebx
mov byte [esi + 0x44], al
call fcn.0045a620
add esp, 0x18
cmp dword [esp + 0x10], 0
jne 0x4778c2
cmp dword [ebp + 4], 0
je 0x4778c2
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
cmp byte [esp + 0x10], 0x13
jne 0x47604a
mov ecx, dword [ebp + 0x10]
cmp byte [ecx + 0x10], 0
je 0x47604a
mov al, byte [ebp + 3]
cmp al, 4
jne 0x4778ee
mov dword [esp + 0x10], 0
jmp case.default.0x4734a2
cmp al, 5
jne 0x4778ff
mov eax, 2
mov byte [ebx + 0x56], al
jmp case.default.0x4734a2
movzx eax, al
mov byte [ebx + 0x56], al
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.00450450
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
jmp case.default.0x4734a2
mov edx, dword [ebp + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov esi, dword [edx + eax + 4]
xor eax, eax
cmp dword [ebp + 0xc], eax
je 0x477959
push esi
call fcn.00450450
mov ebp, dword [ebp + 0xc]
add esp, 4
cmp eax, ebp
jae 0x477959
mov eax, ebp
push eax
push esi
call fcn.00450720
mov ecx, dword [esp + 0x1c]
cdq
add esp, 8
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x4734a2
cmp dword [esi + 0xa4], 0
je case.default.0x4734a2
test dword [ebx + 0x58], 0x800
jne case.default.0x4734a2
mov ebp, dword [ebp + 0x10]
test ebp, ebp
mov eax, ebp
jne 0x477991
mov eax, dword [ebx + 0xa8]
test eax, eax
je case.default.0x4734a2
push eax
push ebx
call fcn.00495b10
mov ecx, dword [esi + 0xa8]
mov edx, dword [esi + 0xa4]
mov edi, eax
push edi
push ecx
call edx
push edi
push esi
call fcn.0043f760
add esp, 0x18
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
add eax, 1
cmp dword [esp + 0x10], 0
mov dword [esp + 0x18], eax
je 0x473434
jmp 0x477716
mov eax, dword [ebp + 4]
test eax, eax
mov edx, dword [esp + 0x18]
mov dword [ebx + 0x50], eax
mov cl, byte [ebp + 8]
mov byte [ebx + 0x56], cl
mov dword [ebx + 0x4c], edx
je 0x477a68
mov al, byte [ebp + 3]
test al, al
je 0x477a24
movzx eax, al
mov eax, dword [eax*4 + 0x52c8e4]
test eax, eax
je 0x477a26
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x477a26
push ecx
push eax
push str._s_constraint_failed:__s
lea edi, [ebx + 0x2c]
push esi
push edi
call fcn.0043f7c0
add esp, 0x14
jmp 0x477a48
xor eax, eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
lea edi, [ebx + 0x2c]
je 0x477a38
push ecx
push 0x5508f0
jmp 0x477a3e
push eax
push str._s_constraint_failed
push esi
push edi
call fcn.0043f7c0
add esp, 0x10
mov ecx, dword [edi]
mov edx, dword [ebx + 0xa8]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [ebp + 4]
push edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call fcn.0043f420
add esp, 0x14
push ebx
call fcn.0045aa20
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x477adf
mov dword [ebx + 0x50], esi
jmp 0x47776e
lea eax, [esp + 0x1fc]
push eax
call fcn.0046bc80
add esp, 4
jmp 0x474747
mov dword [esp + 0x10], 0x14
jmp 0x47521e
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x4c], ecx
mov byte [esi + 0x3e], 0
mov esi, 5
mov dword [ebx + 0x50], esi
jmp 0x47776e
test ebp, ebp
je 0x477af1
push 0x204
push esi
call fcn.00436480
mov byte [esi + 0x3e], 1
mov esi, dword [esp + 0x30]
add esp, 8
push esi
call fcn.00436350
add esp, 4
mov esi, dword [ebx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x47776e
push 1
push ebx
call fcn.004598d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x47776e
mov dl, byte [esp + 0x20]
mov esi, dword [esp + 0x28]
push ebx
mov byte [esi + 0x3e], dl
call fcn.0045aa20
add esp, 4
cmp eax, 5
jne 0x477ad6
mov eax, dword [esp + 0x18]
mov cl, 1
sub cl, byte [esp + 0x20]
mov dword [ebx + 0x4c], eax
mov byte [esi + 0x3e], cl
mov esi, 5
mov dword [ebx + 0x50], esi
jmp 0x47776e
mov dword [esp + 0x10], 8
jmp 0x475222
mov edx, dword [esp + 0x18]
mov esi, 5
mov dword [ebx + 0x4c], edx
mov dword [ebx + 0x50], esi
jmp 0x47776e
push 0xcbe
call fcn.00437300
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x475222
cmp dword [esp + 0x10], 0xc0a
je 0x477716
mov eax, dword [esp + 0x10]
push eax
call fcn.00436a10
push eax
push 0x5508f0
lea ecx, [ebx + 0x2c]
push esi
push ecx
call fcn.0043f7c0
add esp, 0x14
jmp 0x477716
mov eax, 9
push eax
mov dword [esp + 0x14], eax
mov dword [ebx + 0x50], eax
call fcn.00436a10
mov ecx, dword [esp + 0x2c]
push eax
push 0x5508f0
push ecx
lea edx, [ebx + 0x2c]
push edx
call fcn.0043f7c0
mov esi, dword [esp + 0x3c]
add esp, 0x14
jmp 0x477716