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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x39c
push ebx
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
xor eax, eax
mov dword [esp + 0x10], ecx
cmp dword [esi + 0x54], 0xbdf20da3
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x8c], eax
je 0x4a4ada
mov eax, 0x15
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x2c]
mov dword [esi + 0x94], eax
cmp dword [0x588720], eax
mov dword [esp + 0xc], edi
jne 0x4a4ec5
mov eax, dword [esi + 0x240]
test eax, eax
je 0x4a4b18
lea edx, [esp + 0xc]
push edx
call fcn.004a4900
mov edi, dword [esp + 0x10]
add esp, 4
mov dword [esi + 0x240], 0
mov eax, dword [esp + 0x14]
mov byte [esi + 0x248], 0
test byte [eax + 0xe0], 4
jne 0x4a8616
mov ecx, dword [esi + 0x90]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x18]
lea ebx, [eax + edx*4]
mov eax, dword [ecx + 0x168]
test eax, eax
je 0x4a4b93
mov edx, dword [esp + 0x8c]
cmp dword [ecx + 0x170], edx
jne 0x4a4b8c
mov edx, dword [ecx + 0x16c]
push edx
call eax
add esp, 4
test eax, eax
je 0x4a4b81
mov dword [esp + 0x10], 4
jmp case.0x4a4ba6.95
mov dword [esp + 0x8c], 0
inc dword [esp + 0x8c]
mov al, byte [ebx]
movzx ecx, al
mov dword [esp + 0x1c], ecx
dec ecx
cmp ecx, 0x7b
ja case.default.0x4a4ba6
jmp dword [ecx*4 + 0x4a8688]
mov eax, dword [esp + 0x14]
test byte [eax + 0xe0], 4
jne 0x4a8616
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x234]
inc ecx
mov dword [esi + edx*4 + 0xa4], ecx
inc dword [esi + 0x234]
mov eax, dword [ebx + 8]
dec eax
mov dword [esp + 0x28], eax
jmp case.0x4a4ba6.95
mov ecx, dword [esi + 0x234]
dec ecx
mov dword [esi + 0x234], ecx
mov eax, ecx
mov esi, dword [esi + eax*4 + 0xa4]
dec esi
mov dword [esp + 0x28], esi
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
add edi, 0x40
test eax, eax
mov dword [esp + 0xc], edi
jne 0x4a4c32
mov word [edi + 0xc], 4
mov eax, dword [ebx + 4]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x4a4ba6.95
mov word [edi + 0xc], 0xa2
mov ebx, dword [ebx + 0xc]
mov eax, ebx
mov dword [edi + 0x18], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a4c43
sub eax, edx
mov dword [edi + 8], eax
push edi
mov byte [edi + 0xf], 1
call fcn.00493090
mov dword [edi], eax
add esp, 4
mov dword [edi + 4], edx
or byte [edi + 0xc], 4
jmp case.0x4a4ba6.95
add edi, 0x40
mov word [edi + 0xc], 0xa2
mov ebx, dword [ebx + 0xc]
mov eax, ebx
mov dword [esp + 0xc], edi
mov dword [edi + 0x18], ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a4c82
sub eax, edx
mov dword [edi + 8], eax
push edi
mov byte [edi + 0xf], 1
call fcn.00493170
fstp qword [edi + 0x10]
mov ecx, dword [esp + 0x18]
or byte [edi + 0xc], 8
movzx edx, byte [ecx + 0x178]
push edx
push edi
call fcn.00492e00
add esp, 0xc
jmp case.0x4a4ba6.95
mov eax, dword [esp + 0x14]
mov byte [ebx], 0x5a
cmp byte [eax + 0x178], 1
je case.0x4a4ba6.90
mov eax, dword [ebx + 0xc]
test eax, eax
je case.0x4a4ba6.90
push 0
push 1
push 0xffffffffffffffff
add edi, 0x40
push eax
push edi
mov dword [esp + 0x20], edi
call fcn.00493410
mov ecx, dword [esp + 0x28]
movzx edx, byte [ecx + 0x178]
push edx
push edi
call fcn.00492e00
add esp, 0x1c
test eax, eax
jne 0x4a4ecc
push edi
call fcn.00492e30
add esp, 4
test eax, eax
jne 0x4a4ecc
xor eax, eax
mov ax, word [edi + 0xc]
or esi, 0xffffffff
and eax, 0xffbf
or eax, 0x80
mov word [edi + 0xc], ax
cmp dword [ebx + 0x10], esi
jne 0x4a4d3a
mov ecx, dword [ebx + 0xc]
push ecx
call fcn.00492060
add esp, 4
mov dword [ebx + 0x10], esi
mov edx, dword [edi + 0x18]
mov dword [ebx + 0xc], edx
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
add edi, 0x40
test eax, eax
mov dword [esp + 0xc], edi
je 0x4a7581
mov eax, dword [esp + 0x14]
mov word [edi + 0xc], 0xa2
mov ebx, dword [ebx + 0xc]
mov dword [edi + 0x18], ebx
cmp byte [eax + 0x178], 1
jne 0x4a4d96
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a4d78
mov ecx, dword [esp + 0x14]
sub eax, edx
mov dword [edi + 8], eax
mov dl, byte [ecx + 0x178]
mov byte [edi + 0xf], dl
jmp case.0x4a4ba6.95
push 0xffffffffffffffff
push ebx
call fcn.004a36d0
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], eax
mov dl, byte [ecx + 0x178]
add esp, 8
mov byte [edi + 0xf], dl
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 0xc]
mov eax, edx
mov byte [ebx], 0xc
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a4dc1
sub eax, esi
shr eax, 1
test eax, eax
mov dword [ebx + 4], eax
je 0x4a4e04
push edx
call fcn.00492d00
mov esi, eax
add esp, 4
test esi, esi
je 0x4a4ec5
cmp dword [ebx + 0x10], 0xffffffff
jne 0x4a4df8
mov eax, dword [ebx + 0xc]
push eax
call fcn.00492060
add esp, 4
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], 0xffffffff
jmp case.0x4a4ba6.12
cmp dword [ebx + 0x10], 0xffffffff
jne 0x4a4e13
push edx
call fcn.00492060
add esp, 4
mov dword [ebx + 0x10], 0xfffffffe
mov dword [ebx + 0xc], 0x55d526
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0xc]
push 0
push 0
push ecx
add edi, 0x40
push edx
push edi
mov dword [esp + 0x20], edi
call fcn.00493410
add esp, 0x14
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x48]
shl eax, 6
push 0x80
lea edx, [eax + ecx - 0x40]
add edi, 0x40
push edx
push edi
mov dword [esp + 0x18], edi
call fcn.00493310
add esp, 0xc
jmp case.0x4a4ba6.95
lea eax, [esp + 0xc]
push eax
mov eax, dword [ebx + 4]
call fcn.004a4900
add esp, 4
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
shl ecx, 6
mov eax, edi
sub eax, ecx
push pe_nt_image_headers32
add edi, 0x40
push eax
push edi
mov dword [esp + 0x18], edi
call fcn.00493310
mov eax, dword [ebx + 8]
add esp, 0xc
test eax, eax
je case.0x4a4ba6.95
test byte [edi + 0xd], 1
je case.0x4a4ba6.95
push edi
call fcn.00492ea0
add esp, 4
test eax, eax
je case.0x4a4ba6.95
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0xc]
push 0
lea ecx, [esi + 0x244]
push str.out_of_memory
push ecx
call fcn.004921b0
mov dword [esp + 0x1c], 7
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esi + 0x94], edx
mov ebx, 1
jmp 0x4a8672
mov eax, dword [esp + 0xc]
mov edx, dword [ebx + 4]
shl edx, 6
mov esi, eax
sub esi, edx
test byte [eax + 0xd], 1
mov ecx, 0x10
lea edi, [esp + 0x300]
mov dword [esp + 0x24], esi
rep movsd dword es:[edi], dword [esi]
je 0x4a4f31
push eax
call fcn.00492ea0
add esp, 4
test eax, eax
jne 0x4a4ec5
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x18], 0
jle 0x4a4faa
mov ecx, dword [esp + 0x24]
add ecx, 0x40
mov dword [esp + 0x1c], ecx
jmp 0x4a4f50
mov eax, dword [esp + 0x1c]
test byte [eax + 0xd], 1
je 0x4a4f6b
push eax
call fcn.00492ea0
add esp, 4
test eax, eax
jne 0x4a4ec5
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov ecx, 0x10
mov esi, eax
rep movsd dword es:[edi], dword [esi]
test byte [eax - 0x33], 2
je 0x4a4f88
lea edx, [eax - 0x20]
mov dword [eax - 0x28], edx
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
add eax, 0x40
inc ecx
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
add esi, 0x40
cmp ecx, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], esi
jl 0x4a4f50
mov eax, dword [esp + 0xc]
mov ecx, 0x10
lea esi, [esp + 0x300]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
test byte [eax + 0xd], 2
je case.0x4a4ba6.95
lea ecx, [eax + 0x20]
mov dword [eax + 0x18], ecx
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
shl edx, 6
mov eax, edi
sub eax, edx
push edi
push eax
call fcn.004933b0
add esp, 8
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov esi, dword [ebx + 4]
add esi, 2
mov ecx, esi
shl ecx, 6
mov edx, edi
sub edx, ecx
lea eax, [edx + 0x40]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
xor eax, eax
cmp esi, eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], eax
jle 0x4a50a7
mov eax, dword [esp + 0x24]
mov ax, word [eax + 0xc]
test al, 1
jne 0x4a507b
test al, 0x12
jne 0x4a5054
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx + 0x178]
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ec5
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 8]
add dword [esp + 0x44], edx
mov eax, dword [esp + 0x18]
inc eax
add ecx, 0x40
cmp eax, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ecx
jl 0x4a5023
mov eax, dword [esp + 0x44]
test eax, eax
jge 0x4a50a7
mov eax, dword [ebx + 8]
test eax, eax
jne 0x4a5095
lea eax, [esp + 0xc]
push eax
mov eax, esi
call fcn.004a4900
mov edi, dword [esp + 0x10]
add esp, 4
add edi, 0x40
mov dword [esp + 0xc], edi
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x44]
add ecx, 2
push ecx
call fcn.00492040
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4a4ec5
test esi, esi
mov dword [esp + 0x30], 0
jle 0x4a511b
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
add eax, 0x18
mov ecx, dword [eax - 0x10]
mov edi, dword [esp + 0x1c]
mov esi, dword [eax]
mov dword [esp + 0x20], ecx
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x30]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add edx, edi
add eax, 0x40
dec ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], ecx
jne 0x4a50e2
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
mov byte [ecx + edx], 0
mov byte [ecx + edx + 1], 0
mov eax, dword [ebx + 8]
test eax, eax
jne 0x4a514c
lea eax, [esp + 0xc]
push eax
mov eax, dword [esp + 0x58]
call fcn.004a4900
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
add esp, 4
mov eax, dword [esp + 0xc]
add eax, 0x40
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x14]
mov word [eax + 0xc], 0x62
mov dword [eax + 0x1c], 0
mov cl, byte [ecx + 0x178]
mov byte [eax + 0xf], cl
mov dword [esp + 0xc], eax
mov dword [eax + 0x18], edx
jmp case.0x4a4ba6.95
mov ax, word [edi - 0x34]
mov cx, word [edi + 0xc]
lea esi, [edi - 0x40]
mov dl, al
or dl, cl
test dl, 1
mov dword [esp + 0x2c], esi
je 0x4a51c0
test cl, 0x40
je 0x4a51a2
push edi
call fcn.00493040
add esp, 4
test byte [esi + 0xc], 0x40
mov dword [esp + 0xc], esi
je 0x4a51b5
push esi
call fcn.00493040
add esp, 4
mov word [esi + 0xc], 1
jmp case.0x4a4ba6.95
and al, cl
test al, 4
je 0x4a5260
mov edx, dword [esp + 0x1c]
mov ebx, dword [esi]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov esi, dword [esi + 4]
add edx, 0xffffffb4
cmp edx, 3
ja case.default.0x4a51e0
jmp dword [edx*4 + 0x4a8878]
add ebx, eax
adc esi, ecx
jmp 0x4a522a
sub ebx, eax
sbb esi, ecx
jmp 0x4a522a
push ecx
push eax
push esi
push ebx
call fcn.004bd660
jmp 0x4a5226
mov edx, eax
or edx, ecx
je 0x4a532a
push ecx
push eax
push esi
push ebx
call fcn.004bd5b0
jmp 0x4a5226
mov edx, eax
or edx, ecx
je 0x4a532a
push ecx
push eax
push esi
push ebx
call fcn.004bdbb0
mov ebx, eax
mov esi, edx
test byte [edi + 0xc], 0x40
je 0x4a5239
push edi
call fcn.00493040
add esp, 4
mov edi, dword [esp + 0x2c]
test byte [edi + 0xc], 0x40
mov dword [esp + 0xc], edi
je 0x4a5250
push edi
call fcn.00493040
add esp, 4
mov dword [edi], ebx
mov dword [edi + 4], esi
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
push edi
call fcn.00493170
fstp qword [esp + 0x4c]
mov eax, dword [esp + 0x30]
push eax
call fcn.00493170
movzx eax, byte [ebx]
add eax, 0xffffffb4
add esp, 8
cmp eax, 3
ja case.default.0x4a5282
jmp dword [eax*4 + 0x4a8888]
fadd qword [esp + 0x48]
jmp 0x4a52ea
fsub qword [esp + 0x48]
jmp 0x4a52ea
fmul qword [esp + 0x48]
jmp 0x4a52ea
fld qword [0x5650d8]
fld qword [esp + 0x48]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4a5328
fdiv qword [esp + 0x48]
jmp 0x4a52ea
fld qword [esp + 0x48]
call fcn.004bcad4
mov esi, eax
mov dword [esp + 0x20], esi
call fcn.004bcad4
fild dword [esp + 0x20]
fld qword [0x5650d8]
mov ecx, eax
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4a532a
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov al, byte [edi + 0xc]
fstp qword [esp + 0x48]
mov bl, 0x40
test bl, al
je 0x4a5300
push edi
call fcn.00493040
add esp, 4
mov esi, dword [esp + 0x2c]
test byte [esi + 0xc], bl
mov dword [esp + 0xc], esi
je 0x4a5316
push esi
call fcn.00493040
add esp, 4
fld qword [esp + 0x48]
fstp qword [esi + 0x10]
mov word [esi + 0xc], 8
jmp case.0x4a4ba6.95
fstp st(0)
mov al, byte [edi + 0xc]
mov bl, 0x40
test bl, al
je 0x4a533c
push edi
call fcn.00493040
add esp, 4
mov esi, dword [esp + 0x2c]
test byte [esi + 0xc], bl
jmp 0x4a51a6
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov edx, eax
shl edx, 6
sub edi, edx
add edi, 0x40
xor edx, edx
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
jle 0x4a5380
mov eax, dword [esp + 0x18]
mov ecx, edi
mov dword [eax + edx*4], edi
call fcn.004a4810
mov eax, dword [esp + 0x1c]
inc edx
add edi, 0x40
cmp edx, eax
jl 0x4a5366
mov eax, dword [ebx + 0x10]
xor ecx, ecx
cmp eax, 0xfffffffb
mov eax, dword [ebx + 0xc]
jne 0x4a5396
mov dword [esp + 0x19c], ecx
jmp 0x4a539f
mov dword [esp + 0x19c], eax
mov eax, dword [eax]
mov dword [esp + 0x198], eax
mov word [esp + 0x1ac], 1
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1bc], ecx
mov byte [esp + 0x1e4], 0
mov byte [esp + 0x1e5], 0
mov cl, byte [eax + 0x20]
test cl, cl
je 0x4a53df
mov ecx, dword [ebx - 8]
mov dword [esp + 0x1ec], ecx
mov edi, dword [esp + 0x14]
push edi
call fcn.004929f0
add esp, 4
test eax, eax
jne 0x4a8338
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x19c]
push eax
lea ecx, [esp + 0x1a0]
push ecx
call dword [edx + 0x14]
push edi
call fcn.004929a0
add esp, 0x10
test eax, eax
jne 0x4a8338
mov eax, dword [0x588720]
test eax, eax
jne 0x4a4ec5
lea eax, [esp + 0xc]
push eax
mov eax, dword [esp + 0x20]
call fcn.004a4900
mov eax, dword [esp + 0x1a0]
add esp, 4
test eax, eax
je 0x4a5468
mov ecx, dword [ebx + 8]
push ecx
push eax
call fcn.004a02f0
mov edx, dword [esp + 0x1a4]
add esp, 8
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], 0xfffffff9
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + 0x178]
push eax
lea ecx, [esp + 0x1a4]
push ecx
call fcn.00492e00
mov eax, dword [esp + 0x14]
add eax, 0x40
lea edx, [esp + 0x1a8]
push edx
push eax
mov dword [esp + 0x1c], eax
mov word [eax + 0xc], 0
call fcn.004933b0
mov al, byte [esp + 0x1f4]
add esp, 0x10
test al, al
je case.0x4a4ba6.95
mov edi, dword [esp + 0xc]
test byte [edi + 0xc], 2
push 0
jne 0x4a54df
push str.user_function_error
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x4a4ba6.95
push edi
call fcn.0048c2d0
add esp, 4
push eax
add esi, 0x244
push esi
call fcn.004921b0
movzx eax, byte [ebx + 0x178]
push eax
push edi
call fcn.00492e00
add esp, 0x14
mov dword [esp + 0x10], 1
jmp case.0x4a4ba6.95
mov cl, byte [edi - 0x34]
mov dl, byte [edi + 0xc]
lea eax, [edi - 0x40]
or cl, dl
test cl, 1
mov dword [esp + 0x2c], eax
je 0x4a5557
mov esi, 2
lea esp, [esp]
test byte [edi + 0xc], 0x40
je 0x4a553f
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
dec esi
jne 0x4a5530
lea eax, [edi + 0x40]
mov dword [esp + 0xc], eax
mov word [eax + 0xc], 1
jmp case.0x4a4ba6.95
push eax
call fcn.00493090
push edi
mov esi, eax
call fcn.00493090
movzx edx, byte [ebx]
add edx, 0xffffffb8
add esp, 8
cmp edx, 3
ja case.default.0x4a5573
jmp dword [edx*4 + 0x4a8898]
and esi, eax
jmp case.default.0x4a5573
or esi, eax
jmp case.default.0x4a5573
mov ecx, eax
shl esi, cl
jmp case.default.0x4a5573
mov ecx, eax
sar esi, cl
mov al, byte [edi + 0xc]
mov bl, 0x40
test bl, al
je 0x4a559e
push edi
call fcn.00493040
add esp, 4
mov edi, dword [esp + 0x2c]
test byte [edi + 0xc], bl
mov dword [esp + 0xc], edi
je 0x4a56a1
push edi
call fcn.00493040
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
add esp, 4
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
push edi
call fcn.00493120
mov eax, dword [ebx + 4]
mov ecx, dword [edi]
cdq
add esp, 4
add ecx, eax
mov dword [edi], ecx
adc dword [edi + 4], edx
jmp case.0x4a4ba6.95
mov edx, dword [esp + 0x14]
xor eax, eax
mov al, byte [edx + 0x178]
mov esi, edi
push eax
mov al, 0x69
call fcn.004a49e0
mov ax, word [edi + 0xc]
add esp, 4
test al, 0xc
jne 0x4a562c
test al, 0x40
je 0x4a56f6
push edi
call fcn.00493040
mov ebx, dword [ebx + 8]
sub edi, 0x40
add esp, 4
dec ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
test al, 4
je 0x4a5650
mov eax, dword [ebx + 4]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x4c], ecx
je 0x4a5648
mov esi, dword [edi]
mov eax, 1
add esi, eax
jmp 0x4a5692
mov esi, dword [edi]
xor eax, eax
add esi, eax
jmp 0x4a5692
push edi
call fcn.004931e0
fld qword [edi + 0x10]
add esp, 4
call fcn.004bcad4
mov esi, eax
mov dword [esp + 0x1c], esi
fild dword [esp + 0x1c]
fcomp qword [edi + 0x10]
fnstsw ax
test ah, 5
jp 0x4a567a
inc esi
mov dword [esp + 0x1c], esi
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a5692
fild dword [esp + 0x1c]
fld qword [edi + 0x10]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4a5692
inc esi
test byte [edi + 0xc], 0x40
je 0x4a56a1
push edi
call fcn.00493040
add esp, 4
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x178]
mov al, 0x69
mov esi, edi
push edx
call fcn.004a49e0
mov ax, word [edi + 0xc]
add esp, 4
test al, 4
jne 0x4a570a
mov eax, dword [ebx + 8]
test eax, eax
je 0x4a84ec
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a56fd
test byte [edi + 0xc], 0x40
je 0x4a56f6
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
test al, 0x40
je 0x4a5717
push edi
call fcn.00493040
add esp, 4
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov al, byte [edi - 0x34]
or al, byte [edi + 0xc]
test al, 1
je 0x4a576a
mov esi, 2
test byte [edi + 0xc], 0x40
je 0x4a5740
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
dec esi
jne 0x4a5731
mov eax, dword [ebx + 8]
test eax, eax
mov dword [esp + 0xc], edi
je 0x4a5545
mov cl, byte [ebx + 4]
test cl, cl
je case.0x4a4ba6.95
dec eax
mov dword [esp + 0x28], eax
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
sar eax, 8
test al, al
mov byte [esp + 0x37], al
je 0x4a57a8
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dl, byte [ecx + 0x178]
lea esi, [edi - 0x40]
push edx
call fcn.004a49e0
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + 0x178]
mov al, byte [esp + 0x3b]
mov esi, edi
push ecx
call fcn.004a49e0
add esp, 8
mov edx, dword [ebx + 0xc]
push edx
lea eax, [edi - 0x40]
push edi
push eax
call fcn.00493740
movzx ecx, byte [ebx]
add ecx, 0xffffffbe
add esp, 0xc
cmp ecx, 4
ja case.default.0x4a57c4
jmp dword [ecx*4 + 0x4a88a8]
xor ecx, ecx
test eax, eax
sete cl
mov esi, ecx
jmp 0x4a5807
xor edx, edx
test eax, eax
setne dl
jmp 0x4a5805
xor ecx, ecx
test eax, eax
setl cl
mov esi, ecx
jmp 0x4a5807
xor edx, edx
test eax, eax
setle dl
jmp 0x4a5805
xor ecx, ecx
test eax, eax
setg cl
mov esi, ecx
jmp 0x4a5807
xor edx, edx
test eax, eax
setge dl
mov esi, edx
mov dword [esp + 0x18], 2
nop
test byte [edi + 0xc], 0x40
je 0x4a581f
push edi
call fcn.00493040
add esp, 4
mov eax, dword [esp + 0x18]
sub edi, 0x40
dec eax
mov dword [esp + 0x18], eax
jne 0x4a5810
mov ebx, dword [ebx + 8]
test ebx, ebx
mov dword [esp + 0xc], edi
je 0x4a584a
test esi, esi
je case.0x4a4ba6.95
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
lea ecx, [edi + 0x40]
mov eax, esi
cdq
mov word [ecx + 0xc], 4
mov dword [ecx], eax
mov dword [esp + 0xc], ecx
mov dword [ecx + 4], edx
jmp case.0x4a4ba6.95
test byte [edi + 0xc], 1
je 0x4a5871
mov esi, 2
jmp 0x4a588c
push edi
call fcn.00493120
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add esp, 4
or eax, ecx
jne 0x4a588a
mov esi, 1
jmp 0x4a588c
xor esi, esi
test byte [edi - 0x34], 1
je 0x4a5899
mov eax, 2
jmp 0x4a58b8
lea eax, [edi - 0x40]
push eax
call fcn.00493120
mov ecx, dword [edi - 0x40]
mov eax, dword [edi - 0x3c]
add esp, 4
or ecx, eax
jne 0x4a58b6
mov eax, 1
jmp 0x4a58b8
xor eax, eax
cmp byte [ebx], 0x3b
jne 0x4a58ca
lea edx, [eax + esi*2]
movzx ebx, byte [esi + edx + 0x5417c8]
jmp 0x4a58d5
lea eax, [eax + esi*2]
movzx ebx, byte [esi + eax + 0x5417d4]
mov esi, 2
lea ebx, [ebx]
test byte [edi + 0xc], 0x40
je 0x4a58ef
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
dec esi
jne 0x4a58e0
cmp ebx, 2
lea ecx, [edi + 0x40]
mov dword [esp + 0xc], ecx
jne 0x4a590c
mov word [ecx + 0xc], 1
jmp case.0x4a4ba6.95
xor eax, eax
test ebx, ebx
sete al
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov word [ecx + 0xc], 4
jmp case.0x4a4ba6.95
mov ax, word [edi + 0xc]
test al, 8
je 0x4a5961
test al, 0x40
je 0x4a5939
push edi
call fcn.00493040
add esp, 4
cmp byte [ebx], 0x52
je 0x4a594e
fld qword [edi + 0x10]
fcomp qword [0x5650d8]
fnstsw ax
test ah, 5
jp 0x4a5956
fld qword [edi + 0x10]
fchs
fstp qword [edi + 0x10]
mov word [edi + 0xc], 8
jmp case.0x4a4ba6.95
test al, 4
je 0x4a59a1
test al, 0x40
je 0x4a5972
push edi
call fcn.00493040
add esp, 4
cmp byte [ebx], 0x52
je 0x4a5985
mov eax, dword [edi + 4]
test eax, eax
jg 0x4a5996
jl 0x4a5985
cmp dword [edi], 0
jae 0x4a5996
mov ecx, dword [edi]
mov edx, dword [edi + 4]
neg ecx
adc edx, 0
neg edx
mov dword [edi], ecx
mov dword [edi + 4], edx
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
test al, 1
jne case.0x4a4ba6.95
push edi
call fcn.004931e0
mov al, byte [ebx]
add esp, 4
cmp al, 0x52
je 0x4a59c8
fld qword [edi + 0x10]
fcomp qword [0x5650d8]
fnstsw ax
test ah, 5
jp 0x4a59d0
fld qword [edi + 0x10]
fchs
fstp qword [edi + 0x10]
mov word [edi + 0xc], 8
jmp case.0x4a4ba6.95
test byte [edi + 0xc], 1
jne case.0x4a4ba6.95
push edi
call fcn.00493120
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add esp, 4
or eax, ecx
jne 0x4a5a0d
mov eax, 1
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
xor eax, eax
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
test byte [edi + 0xc], 1
jne case.0x4a4ba6.95
push edi
call fcn.00493120
mov ecx, dword [edi]
mov edx, dword [edi + 4]
not ecx
not edx
mov dword [edi], ecx
mov dword [edi + 4], edx
add esp, 4
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
test byte [edi + 0xc], 1
je 0x4a5a57
mov esi, dword [ebx + 4]
jmp 0x4a5a71
push edi
call fcn.00493090
mov esi, eax
mov al, byte [ebx]
add esp, 4
cmp al, 0x67
jne 0x4a5a71
xor eax, eax
test esi, esi
sete al
mov esi, eax
test byte [edi + 0xc], 0x40
je 0x4a5a80
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
test esi, esi
mov dword [esp + 0xc], edi
je case.0x4a4ba6.95
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov esi, dword [ebx + 4]
mov eax, esi
test eax, eax
jge 0x4a5aa7
neg eax
mov ecx, eax
shl ecx, 6
sub edi, ecx
add edi, 0x40
xor ecx, ecx
test eax, eax
jle 0x4a5ad7
lea edx, [edi + 0xc]
lea ebx, [ebx]
test byte [edx], 1
jne 0x4a5acf
inc ecx
add edx, 0x40
cmp ecx, eax
jl 0x4a5ac0
jmp 0x4a5ad7
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
test esi, esi
jle case.0x4a4ba6.95
lea edx, [esp + 0xc]
push edx
call fcn.004a4900
add esp, 4
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
mov eax, edx
test eax, eax
jge 0x4a5afc
neg eax
xor ecx, ecx
test eax, eax
jle 0x4a5b23
mov esi, eax
shl esi, 6
sub edi, esi
add edi, 0x4c
lea esp, [esp]
test byte [edi], 1
jne 0x4a5b1f
inc ecx
add edi, 0x40
cmp ecx, eax
jl 0x4a5b10
jmp 0x4a5b23
cmp ecx, eax
jl 0x4a5b2b
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
test edx, edx
jle case.0x4a4ba6.95
lea ecx, [esp + 0xc]
push ecx
call fcn.004a4900
add esp, 4
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edx*4]
mov edx, dword [ebx + 8]
mov dword [ecx + 0x50], edx
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], ecx
xor ecx, ecx
add edi, 0x40
xor ebx, ebx
cmp eax, ecx
mov word [esp + 0x1fc], cx
mov dword [esp + 0xc], edi
mov word [edi + 0xc], 1
jge 0x4a5bb8
shl eax, 6
mov edx, dword [eax + edi + 8]
add eax, edi
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax - 0x40]
mov dword [esp + 0x60], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], ecx
mov esi, dword [esp + 0x60]
cmp dword [esp + 0x58], ecx
jne 0x4a5c94
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
mov edx, dword [esi + 0x3c]
mov ebx, dword [edx + eax*4]
cmp dword [ebx], ecx
je 0x4a5c5c
push ebx
call fcn.004a0350
mov dl, byte [ebx + 0x1d]
mov eax, dword [ebx]
xor ecx, ecx
add esp, 4
test dl, dl
mov dword [esp + 0x60], ecx
mov dword [esp + 0x30], eax
je 0x4a5bef
mov dword [esp + 0x58], ecx
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x54], edx
jmp 0x4a5b9f
mov cl, byte [ebx + 0x54]
test cl, cl
je 0x4a5c0f
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x58], eax
mov ecx, dword [ebx + 0x64]
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x54], edx
xor ecx, ecx
jmp 0x4a5b9f
mov cl, byte [ebx + 0x1a]
test cl, cl
je 0x4a5c40
lea edx, [esp + 0x190]
push edx
push eax
call fcn.004984d0
mov eax, dword [esp + 0x198]
mov dword [esp + 0x60], eax
mov edx, dword [ebx + 0x50]
add esp, 8
mov dword [esp + 0x54], edx
xor ecx, ecx
jmp 0x4a5b9f
lea ecx, [esp + 0x58]
push ecx
push eax
call fcn.00498540
mov edx, dword [ebx + 0x50]
add esp, 8
mov dword [esp + 0x54], edx
xor ecx, ecx
jmp 0x4a5b9f
mov al, byte [ebx + 0x1f]
test al, al
je 0x4a5c85
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x58], eax
mov esi, dword [ebx + 0x38]
mov edx, dword [ebx + 0x50]
mov dword [esp + 0x60], esi
mov byte [ebx + 0x54], 0
mov dword [esp + 0x54], edx
mov dword [esp + 0x30], ecx
jmp 0x4a5ba3
mov dword [esp + 0x58], ecx
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
cmp ebx, ecx
je 0x4a5cb6
mov al, byte [ebx + 0x54]
test al, al
mov eax, dword [ebx + 0x5c]
je 0x4a5cb2
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
jmp 0x4a5e81
cmp eax, ecx
jne 0x4a5ccc
mov edx, dword [esp + 0x54]
lea eax, [edx*8]
push eax
call fcn.00492040
add esp, 4
xor ecx, ecx
cmp eax, ecx
mov edx, dword [esp + 0x54]
lea edx, [eax + edx*4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edx
je 0x4a4ec5
test esi, esi
je 0x4a5cef
mov eax, esi
mov dword [esp + 0x1c], eax
jmp 0x4a5d44
mov al, byte [ebx + 0x1a]
test al, al
je 0x4a5d0a
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.004987d0
jmp 0x4a5d1c
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.00498840
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x60]
add esp, 8
cmp ecx, edx
mov dword [esp + 0x1c], eax
jb 0x4a5d3d
mov esi, eax
mov dword [ebx + 0x64], eax
mov dword [esp + 0x60], esi
jmp 0x4a5d44
mov dword [ebx + 0x64], 0
lea edx, [esp + 0x7c]
push edx
push eax
call fcn.00492c60
add esp, 8
test esi, esi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x7c]
jne 0x4a5d9e
cmp dword [esp + 0x9c], eax
jae 0x4a5d9e
movzx edx, byte [ebx + 0x1a]
lea ecx, [esp + 0x1f0]
push ecx
push edx
push eax
mov eax, dword [esp + 0x3c]
push esi
push eax
call fcn.00493530
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov ecx, dword [esp + 0x208]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x5c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], 0
jae 0x4a5e25
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
sub ecx, esi
mov dword [esp + 0x64], ecx
mov edi, edi
mov edx, dword [esp + 0x54]
cmp dword [esp + 0x18], edx
jae 0x4a5e25
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x58]
ja 0x4a5e25
mov eax, dword [esp + 0x64]
mov edx, ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + esi], edx
mov edx, dword [esp + 0x1c]
add ecx, edx
push esi
push ecx
call fcn.00492c60
mov edx, dword [esp + 0x64]
add edx, eax
mov eax, dword [esi]
push eax
mov dword [esp + 0x68], edx
call fcn.004a04e0
mov ecx, dword [esp + 0x50]
add ecx, eax
mov eax, dword [esp + 0x24]
add esp, 0xc
inc eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x7c]
add esi, 4
cmp ecx, eax
jb 0x4a5dc0
test byte [esp + 0x1fc], 0x40
je 0x4a5e46
lea ecx, [esp + 0x1f0]
push ecx
call fcn.00493040
mov eax, dword [esp + 0x80]
add esp, 4
cmp dword [esp + 0x5c], eax
mov word [esp + 0x1fc], 1
jne 0x4a5f42
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x44], eax
jne 0x4a5f42
test ebx, ebx
je 0x4a5e81
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x58], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x5c], edx
mov dword [ebx + 0x60], eax
mov byte [ebx + 0x54], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4a8340
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x60]
shl esi, 2
test ecx, ecx
je 0x4a5ea7
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edx]
add eax, ecx
jmp 0x4a5ede
mov eax, dword [esp + 0x2c]
mov ecx, dword [esi + eax]
push ecx
call fcn.004a04e0
movzx ecx, byte [ebx + 0x1a]
lea edx, [esp + 0x1f4]
push edx
mov edx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esi + edx]
push eax
push ecx
call fcn.00493530
mov eax, dword [esp + 0x220]
add esp, 0x18
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + edx]
push edi
push ecx
push eax
call fcn.004a0590
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x178]
mov byte [edi + 0xf], al
mov al, byte [esp + 0x208]
add esp, 0xc
test al, 0x40
je 0x4a5f1b
xor ecx, ecx
mov cx, word [edi + 0xc]
and ecx, 0xfeff
or ecx, 0x60
mov word [edi + 0xc], cx
push edi
call fcn.00492ea0
add esp, 4
test ebx, ebx
mov dword [esp + 0x10], eax
jne case.0x4a4ba6.95
mov edx, dword [esp + 0x2c]
push edx
call fcn.00492060
add esp, 4
jmp case.0x4a4ba6.95
mov eax, dword [esp + 0x2c]
push eax
call fcn.00492060
add esp, 4
test ebx, ebx
je 0x4a5f5a
mov dword [ebx + 0x5c], 0
mov dword [esp + 0x10], 0xb
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
xor ecx, ecx
xor edx, edx
cmp eax, edx
setl cl
mov dword [esp + 0x54], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], edx
mov esi, ecx
xor ecx, ecx
cmp esi, edx
sete cl
mov dword [esp + 0x2c], esi
lea ecx, [ecx + ecx - 1]
imul ecx, eax
mov eax, dword [ebx + 8]
mov esi, ecx
mov ecx, eax
sar eax, 0x18
and eax, 0xffff
and ecx, 0xffffff
neg eax
sbb eax, eax
neg eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0xc]
shl esi, 6
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x60], ebx
add ebx, 0x40
cmp ebx, edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], eax
mov esi, ebx
ja 0x4a6061
mov eax, 0xfffffff4
sub eax, ebx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a6017
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
xor edx, edx
mov dl, byte [ecx + 0x178]
lea ecx, [esi + eax + 0xc]
sar ecx, 6
push edx
mov edx, dword [esp + 0x24]
mov al, byte [ecx + edx]
call fcn.004a49e0
add esp, 4
mov cl, byte [esi + 0xc]
mov eax, 1
test al, cl
je 0x4a6027
mov dword [esp + 0x30], eax
push esi
call fcn.004a03e0
push eax
mov dword [esp + 0x20], eax
call fcn.004a04e0
mov ecx, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x20]
push 0
push eax
mov dword [esp + 0x34], ecx
call fcn.00492cd0
mov edx, dword [esp + 0x2c]
add edx, eax
add esi, 0x40
add esp, 0x10
cmp esi, edi
mov dword [esp + 0x1c], edx
jbe 0x4a5fe8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a60a2
mov esi, dword [esp + 0x60]
push esi
mov dword [esp + 0x58], esi
call fcn.00493120
push esi
call fcn.004a03e0
mov esi, eax
push esi
call fcn.004a04e0
mov edx, dword [esp + 0x30]
add edx, eax
push 0
push esi
mov dword [esp + 0x38], edx
call fcn.00492cd0
mov esi, dword [esp + 0x30]
add esp, 0x14
add esi, eax
jmp 0x4a60a6
mov esi, dword [esp + 0x1c]
mov eax, esi
cdq
push edx
push eax
call fcn.00492cd0
mov ecx, dword [esp + 0x2c]
add esi, eax
lea eax, [esi + ecx]
add esp, 8
cmp eax, 0x20
mov dword [esp + 0x64], eax
jbe 0x4a60dc
push eax
call fcn.00492040
add esp, 4
test eax, eax
mov dword [esp + 0x24], eax
je 0x4a4ec5
jmp 0x4a60e7
lea edx, [esp + 0x2e0]
mov dword [esp + 0x24], edx
mov eax, esi
cdq
push edx
push eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.00492a70
mov ecx, dword [esp + 0x30]
mov esi, eax
add esp, 0xc
add esi, ecx
cmp ebx, edi
mov dword [esp + 0x18], ebx
ja 0x4a6137
lea esp, [esp]
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004a03e0
push 0
push eax
push esi
call fcn.00492a70
add esi, eax
mov eax, dword [esp + 0x28]
add eax, 0x40
add esp, 0x10
cmp eax, edi
mov dword [esp + 0x18], eax
jbe 0x4a6110
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a6157
mov edx, dword [esp + 0x54]
push edx
call fcn.004a03e0
push 0
push eax
push esi
call fcn.00492a70
add esp, 0x10
add esi, eax
cmp ebx, edi
ja 0x4a6173
jmp 0x4a6160
push ebx
push esi
call fcn.004a0500
add ebx, 0x40
add esp, 8
add esi, eax
cmp ebx, edi
jbe 0x4a6160
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a618b
mov eax, dword [esp + 0x54]
push eax
push esi
call fcn.004a0500
add esp, 8
add esi, eax
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
add ecx, ebx
cmp esi, ecx
jne 0x4a84f9
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x4a61c0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0xc]
add eax, edx
push ecx
call fcn.004a4900
mov edi, dword [esp + 0x10]
add esp, 4
add edi, 0x40
cmp ebx, 0x20
mov dword [esp + 0xc], edi
mov dword [edi + 8], ebx
ja 0x4a61f6
mov eax, edi
mov ecx, ebx
mov edx, ecx
shr ecx, 2
lea edi, [eax + 0x20]
mov dword [eax + 0x18], edi
lea esi, [esp + 0x2e0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov word [eax + 0xc], 0x210
jmp 0x4a620a
mov eax, dword [esp + 0x24]
mov dword [edi + 0x18], eax
mov word [edi + 0xc], 0x50
mov dword [edi + 0x1c], 0
mov eax, dword [esp + 0x5c]
test eax, eax
je case.0x4a4ba6.95
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x4a4ba6.95
mov ecx, dword [esp + 0x5c]
dec ecx
mov dword [esp + 0x28], ecx
jmp case.0x4a4ba6.95
mov ebx, dword [ebx + 4]
test ebx, ebx
jl case.0x4a4ba6.95
mov edx, dword [esp + 0x14]
cmp ebx, dword [edx]
jge case.0x4a4ba6.95
imul ebx, ebx, 0x6c
mov eax, edx
mov ecx, dword [eax + 4]
mov ebx, dword [ebx + ecx + 4]
test ebx, ebx
je case.0x4a4ba6.95
mov al, byte [edx + 0x179]
test al, al
jne case.0x4a4ba6.95
push ebx
call fcn.0049bdd0
add esp, 4
test eax, eax
jne case.0x4a4ba6.95
push ebx
call fcn.004983e0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x154], 1
mov al, byte [ebx + 4]
mov dl, byte [ebx + 8]
mov byte [esp + 0x37], al
jle 0x4a62e7
test al, al
je 0x4a62e7
cmp byte [ecx + 0x179], 0
jne 0x4a62e7
test dl, dl
mov eax, str.rollback
jne 0x4a62be
mov eax, str.commit
push 0
push str._transaction___SQL_statements_in_progress
push eax
push str.cannot
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0x14
mov dword [esp + 0x10], 1
jmp case.0x4a4ba6.95
cmp al, byte [ecx + 0x179]
jne 0x4a8506
test al, al
jne 0x4a62fe
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4a630c
test dl, dl
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x4a630c
mov eax, str.cannot_commit___no_transaction_is_active
push 0
push eax
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
imul eax, eax, 0x6c
mov edx, dword [ecx + 4]
mov eax, dword [eax + edx + 4]
test eax, eax
je case.0x4a4ba6.95
mov ecx, dword [ebx + 8]
push ecx
push eax
call fcn.00498290
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x4a856f
test eax, eax
je case.0x4a4ba6.95
cmp eax, 8
jne 0x4a8340
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 8]
imul ecx, ecx, 0x6c
lea edx, [esp + 0xdc]
push edx
mov edx, dword [esp + 0x18]
inc eax
push eax
mov eax, dword [edx + 4]
mov ecx, dword [ecx + eax + 4]
push ecx
call fcn.0049b1f0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xe8]
cdq
add esp, 0xc
add edi, 0x40
mov dword [edi], eax
mov dword [edi + 4], edx
mov dword [esp + 0xc], edi
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov esi, dword [ebx + 4]
mov edx, dword [esp + 0x14]
imul esi, esi, 0x6c
mov ecx, dword [edx + 4]
push edi
add esi, ecx
call fcn.00493120
mov eax, dword [edi]
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 4]
push eax
inc ecx
push ecx
push edx
call fcn.0049b260
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
jne 0x4a6402
mov eax, dword [edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0xe0], 0x10
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
imul ecx, ecx, 0x6c
mov eax, dword [edx + 4]
mov eax, dword [ecx + eax + 4]
xor ecx, ecx
cmp eax, ecx
je 0x4a6471
lea ecx, [esp + 0x78]
push ecx
push 1
push eax
call fcn.0049b1f0
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x4a4ba6.95
mov edx, dword [esp + 0x78]
cmp edx, dword [ebx + 8]
je case.0x4a4ba6.95
push 0
push str.database_schema_has_changed
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0xc
mov dword [esp + 0x10], 0x11
jmp case.0x4a4ba6.95
mov dword [esp + 0x10], ecx
mov dword [esp + 0x78], ecx
jmp 0x4a6441
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
push edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ecx
call fcn.00493120
mov eax, dword [edi]
mov edx, dword [esp + 0x18]
imul eax, eax, 0x6c
mov ecx, dword [edx + 4]
mov edx, dword [eax + ecx + 4]
mov cl, byte [ebx]
xor eax, eax
sub edi, 0x40
add esp, 4
cmp cl, 0x16
sete al
mov dword [esp + 0xc], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4a64f9
push edi
call fcn.00493120
mov eax, dword [edi]
sub edi, 0x40
add esp, 4
cmp eax, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], edi
jge 0x4a64f9
push 0
push str.root_page_number_less_than_2
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0xc
jmp 0x4a83d6
mov esi, dword [esp + 0x48]
mov edi, dword [ebp + 8]
call fcn.004a49b0
mov esi, eax
test esi, esi
je 0x4a4ec5
mov eax, dword [esp + 0x20]
test eax, eax
mov byte [esi + 0x1d], 1
je case.0x4a4ba6.95
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x18]
push esi
push ecx
mov ecx, dword [esp + 0x28]
push fcn.004a06d0
push edx
push eax
push ecx
call fcn.0049bed0
mov ecx, dword [ebx + 0xc]
add esp, 0x18
test ecx, ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0x4c], ecx
je 0x4a6561
inc ecx
mov dword [esi + 0x48], ecx
mov edx, dword [edi]
mov ecx, dword [esi + 0x4c]
mov dl, byte [edx + 0x178]
mov byte [ecx], dl
jmp 0x4a6567
lea ecx, [esi + 0x23]
mov dword [esi + 0x48], ecx
test eax, eax
je 0x4a658a
cmp eax, 5
je 0x4a8592
cmp eax, 0x10
jne 0x4a8340
mov dword [esp + 0x10], 0
jmp case.0x4a4ba6.95
mov edx, dword [esi]
push edx
call fcn.0049b2c0
mov cl, al
and cl, 1
shr eax, 1
add esp, 4
and al, 1
mov byte [esi + 0x21], cl
mov byte [esi + 0x22], al
jmp case.0x4a4ba6.95
mov esi, dword [ebx + 4]
mov edi, dword [ebp + 8]
call fcn.004a49b0
mov esi, eax
test esi, esi
je 0x4a4ec5
mov edx, dword [esp + 0x14]
lea edi, [esi + 0x30]
push edi
push 0x1f4
push 1
push 0
push edx
mov byte [esi + 0x1d], 1
call fcn.0048ab80
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x4a4ba6.95
mov eax, dword [edi]
push 1
push eax
call fcn.00498290
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4a666b
mov edx, dword [edi]
push 2
lea ecx, [esp + 0xcc]
push ecx
push edx
call fcn.0049af30
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0xc8]
mov edx, dword [edi]
push esi
push eax
push fcn.004a06d0
push 1
push ecx
push edx
call fcn.0049bed0
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x4c], ebx
mov ecx, dword [eax]
mov dl, byte [ecx + 0x178]
mov byte [ebx], dl
mov eax, dword [esi + 0x4c]
add esp, 0x18
inc eax
mov dword [esi + 0x48], eax
jmp case.0x4a4ba6.95
mov ecx, dword [edi]
push esi
push 0
push 0
push 1
push 1
push ecx
call fcn.0049bed0
lea edx, [esi + 0x23]
add esp, 0x18
mov dword [esp + 0x10], eax
mov byte [esi + 0x21], 1
mov dword [esi + 0x48], edx
jmp case.0x4a4ba6.95
mov esi, dword [ebx + 4]
mov edi, dword [ebp + 8]
call fcn.004a49b0
test eax, eax
je 0x4a4ec5
mov cl, 1
mov byte [eax + 0x1d], cl
mov byte [eax + 0x1f], cl
lea ecx, [eax + 0x23]
mov dword [eax + 0x48], ecx
jmp case.0x4a4ba6.95
mov ebx, dword [ebx + 4]
test ebx, ebx
jl case.0x4a4ba6.95
cmp ebx, dword [esi + 0x38]
jge case.0x4a4ba6.95
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ebx*4]
push eax
call fcn.0049fda0
mov ecx, dword [esi + 0x3c]
add esp, 4
mov dword [ecx + ebx*4], 0
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x3c]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
cmp dword [esi], 0
je 0x4a6852
mov eax, dword [esp + 0x1c]
cmp eax, 8
mov byte [esi + 0x1d], 0
je 0x4a6712
cmp eax, 0x20
je 0x4a6712
xor eax, eax
jmp 0x4a6717
mov eax, 1
mov ecx, dword [esi + 0x48]
mov byte [ecx], al
mov al, byte [esi + 0x21]
test al, al
je 0x4a6780
push edi
call fcn.00493120
mov edx, dword [ebx + 8]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add esp, 4
test edx, edx
jne 0x4a6753
cmp byte [ebx], 0x6c
jne 0x4a6753
sub edi, 0x40
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
mov byte [esi + 0x20], 1
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
lea edx, [esp + 0x68]
push edx
push ecx
push eax
mov eax, dword [esi]
push 0
push eax
call fcn.00498ca0
mov ecx, dword [edi]
mov eax, dword [esp + 0x7c]
add esp, 0x14
test eax, eax
mov dword [esi + 8], ecx
mov edx, dword [edi + 4]
sete al
mov dword [esi + 0xc], edx
mov byte [esi + 0x19], al
jmp 0x4a67c1
test byte [edi + 0xc], 0x12
jne 0x4a67a3
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx + 0x178]
push edx
push edi
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ec5
mov ecx, dword [edi + 0x18]
lea eax, [esp + 0x68]
push eax
mov eax, dword [edi + 8]
cdq
push edx
mov edx, dword [esi]
push eax
push ecx
push edx
call fcn.00498ca0
add esp, 0x14
mov byte [esi + 0x19], 0
mov eax, dword [esi + 0x48]
mov byte [esi + 0x20], 0
mov byte [esi + 0x54], 0
mov byte [eax], 0
mov edx, dword [0x588758]
mov eax, dword [esp + 0x1c]
inc edx
cmp eax, 0x6c
mov dword [0x588758], edx
je 0x4a682d
cmp eax, 8
je 0x4a682d
mov eax, dword [esp + 0x68]
test eax, eax
jl 0x4a681c
mov edx, dword [esi]
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.004990d0
add esp, 8
mov byte [esi + 0x19], 0
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4a6852
mov ebx, dword [ebx + 8]
test ebx, ebx
jle 0x4a684e
dec ebx
mov dword [esp + 0x28], ebx
jmp 0x4a6852
mov eax, dword [esi]
push eax
call fcn.00498f80
add esp, 4
mov dword [esp + 0x68], eax
jmp 0x4a6806
mov eax, dword [esp + 0x68]
test eax, eax
jge 0x4a6844
mov edx, dword [esi]
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.00498f90
jmp 0x4a67ff
mov dword [esp + 0x68], 0
jmp 0x4a6852
mov byte [esi + 0x1d], 1
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
je 0x4a68e2
test byte [edi + 0xc], 0x12
jne 0x4a68a5
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x178]
push ecx
push edi
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ec5
mov eax, dword [edi + 8]
mov ecx, dword [esi]
lea edx, [esp + 0xf0]
push edx
cdq
push edx
push eax
mov eax, dword [edi + 0x18]
push eax
push ecx
call fcn.00498ca0
add esp, 0x14
test eax, eax
jne 0x4a68d8
mov eax, dword [esp + 0xf0]
test eax, eax
jne 0x4a68d8
mov eax, 1
jmp 0x4a68da
xor eax, eax
mov byte [esi + 0x20], 0
mov byte [esi + 0x54], 0
mov cl, byte [ebx]
cmp cl, 0x63
jne 0x4a68ef
test eax, eax
je 0x4a68fb
jmp 0x4a68f3
test eax, eax
jne 0x4a68fb
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
cmp cl, 0x64
je case.0x4a4ba6.95
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
lea eax, [edi - 0x40]
push edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], eax
call fcn.00493120
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0x4c]
mov edi, dword [ecx + edx*4]
mov dword [esp + 0x10], eax
mov eax, dword [edi]
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je case.0x4a4ba6.95
mov eax, dword [esp + 0x2c]
test byte [eax + 0xc], 0x12
jne 0x4a6994
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx + 0x178]
push edx
push eax
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ec8
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x18]
mov esi, dword [ecx + 8]
push eax
push esi
mov dword [esp + 0x28], eax
call fcn.004a08f0
sub esi, eax
lea ecx, [esp + 0x78]
push ecx
mov eax, esi
cdq
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x2c]
push edx
push eax
mov byte [edi + 0x54], 0
call fcn.00498ca0
add esp, 0x1c
test eax, eax
jne 0x4a8340
mov eax, dword [esp + 0x70]
test eax, eax
jge 0x4a6a02
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x70]
push ecx
push edx
call fcn.00498f90
mov eax, dword [esp + 0x78]
add esp, 8
test eax, eax
je 0x4a6a02
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x70]
push eax
push ecx
push esi
push edi
call fcn.004a0a20
add esp, 0x10
test eax, eax
jne 0x4a8340
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x4a6a33
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc0]
push edx
push eax
call fcn.004a0940
add esp, 8
test eax, eax
jne 0x4a8340
mov ecx, dword [esp + 0xc0]
cmp ecx, dword [esp + 0xe0]
jne 0x4a6a7d
mov edx, dword [esp + 0xc4]
cmp edx, dword [esp + 0xe4]
jne 0x4a6a7d
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov eax, dword [esp + 0xc]
add eax, 0x40
mov dword [eax], ecx
mov ecx, dword [esp + 0xc4]
mov dword [eax + 4], ecx
mov dword [esp + 0xc], eax
mov word [eax + 0xc], 4
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x3c]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x4a6afe
mov ecx, dword [edi]
lea edx, [esp + 0xd0]
push edx
mov edx, dword [edi + 4]
push edx
push ecx
push 0
push eax
call fcn.00498ca0
mov ecx, dword [edi]
mov dword [esi + 8], ecx
mov edx, dword [edi + 4]
mov ecx, dword [esp + 0xe4]
add esp, 0x14
test ecx, ecx
mov dword [esi + 0xc], edx
sete dl
test eax, eax
mov byte [esi + 0x19], dl
mov byte [esi + 0x1d], 0
mov byte [esi + 0x54], 0
jne 0x4a6af2
test ecx, ecx
je 0x4a6afe
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov byte [esi + 0x19], 0
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov esi, dword [edx + eax*4]
mov eax, dword [esi]
cmp eax, ecx
je 0x4a6d03
mov dword [esp + 0x1c], ecx
mov cl, byte [esi + 0x1c]
test cl, cl
jne 0x4a6bff
mov cl, byte [esi + 0x1e]
test cl, cl
je 0x4a6b60
mov eax, dword [esi + 0x10]
mov dword [esp + 0x38], eax
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x3c], ecx
jmp 0x4a6bce
lea edx, [esp + 0x84]
push edx
push eax
call fcn.00498c50
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x8c]
xor ebx, ebx
add esp, 8
cmp eax, ebx
je 0x4a6b90
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], ebx
jmp 0x4a6be1
mov ecx, dword [esi]
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.004984d0
mov eax, dword [esp + 0x40]
add esp, 8
cmp eax, 0xffffffff
jne 0x4a6bb9
cmp dword [esp + 0x3c], 0x7fffffff
jne 0x4a6bb9
mov byte [esi + 0x1c], 1
jmp 0x4a6bce
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0x7fffffff
jg 0x4a6bfb
jl 0x4a6be1
cmp dword [esp + 0x38], 0xffffffff
jae 0x4a6bfb
mov byte [esi + 0x1e], 1
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add edx, 1
adc eax, 0
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
jmp 0x4a6bff
mov byte [esi + 0x1e], 0
mov al, byte [esi + 0x1c]
test al, al
je 0x4a6cf7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x130]
mov eax, dword [eax + 0x134]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
xor ebx, ebx
or ecx, eax
je 0x4a6c59
cmp ebx, 2
jg 0x4a6c59
lea ecx, [esp + 0x6f]
push ecx
push 1
call fcn.004b1040
movzx eax, byte [esp + 0x77]
mov ecx, dword [esp + 0x40]
add esp, 8
inc eax
cdq
add ecx, eax
mov eax, dword [esp + 0x3c]
adc eax, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
jmp 0x4a6c87
lea edx, [esp + 0x38]
push edx
push 8
call fcn.004b1040
mov ecx, dword [esp + 0x40]
add esp, 8
cmp ebx, 5
jge 0x4a6c83
and ecx, 0xffffff
xor eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
jmp 0x4a6c87
mov eax, dword [esp + 0x3c]
mov edx, ecx
or edx, eax
je 0x4a6cb1
lea edx, [esp + 0x84]
push edx
push eax
mov eax, dword [esi]
push ecx
push 0
push eax
call fcn.00498ca0
mov ecx, dword [esp + 0x4c]
add esp, 0x14
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
inc ebx
cmp ebx, 0x3e8
jge 0x4a6cd0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x4a6cd0
mov edx, dword [esp + 0x84]
test edx, edx
je 0x4a6c24
mov edx, dword [esp + 0x14]
mov dword [edx + 0x134], eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [edx + 0x130], ecx
jne 0x4a6cf7
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4a85c9
mov byte [esi + 0x19], 0
mov byte [esi + 0x20], 0
mov byte [esi + 0x54], 0
mov ecx, dword [esp + 0x38]
add edi, 0x40
mov dword [edi], ecx
mov edx, dword [esp + 0x3c]
mov dword [edi + 4], edx
mov dword [esp + 0xc], edi
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov edx, dword [esi + 0x3c]
mov ecx, dword [ebx + 4]
mov ecx, dword [edx + ecx*4]
cmp dword [ecx], 0
mov dword [esp + 0x30], ecx
jne 0x4a6d3f
mov dl, byte [ecx + 0x1f]
test dl, dl
je 0x4a6ef5
cmp al, 0x10
jne 0x4a6d80
test byte [edi - 0x34], 0x12
jne 0x4a6d6d
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x178]
push ecx
lea eax, [edi - 0x40]
push eax
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ecc
mov ecx, dword [esp + 0x30]
mov eax, dword [edi - 0x38]
cdq
mov dword [esp + 0xfc], edx
mov edx, dword [edi - 0x28]
jmp 0x4a6e08
cmp byte [ecx + 0x21], 0
mov eax, dword [edi - 0x40]
mov edx, dword [edi - 0x3c]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
je 0x4a6da5
mov dword [esp + 0xfc], edx
xor edx, edx
jmp 0x4a6dbc
mov eax, 8
mov dword [esp + 0xfc], 0
lea edx, [esp + 0xb8]
test byte [ebx + 8], 1
mov dword [esp + 0x20], edx
je 0x4a6dcc
inc dword [esi + 0x24c]
test byte [ebx + 8], 2
je 0x4a6dec
mov ebx, dword [edi - 0x40]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x128], ebx
mov ebx, dword [edi - 0x3c]
mov dword [edx + 0x12c], ebx
mov edx, dword [esp + 0x20]
mov bl, byte [ecx + 0x1e]
test bl, bl
je 0x4a6e08
mov ebx, dword [edi + 4]
cmp ebx, dword [ecx + 0x14]
jl 0x4a6e08
jg 0x4a6e04
mov ebx, dword [edi]
cmp ebx, dword [ecx + 0x10]
jb 0x4a6e08
mov byte [ecx + 0x1e], 0
test byte [edi + 0xc], 1
je 0x4a6e16
xor ebx, ebx
mov dword [edi + 0x18], ebx
mov dword [edi + 8], ebx
mov bl, byte [ecx + 0x1f]
test bl, bl
je 0x4a6ec0
mov ebx, dword [esp + 0x30]
mov edx, dword [ebx + 0x38]
push edx
call fcn.00492060
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], ecx
mov eax, dword [edi + 8]
mov dword [ebx + 0x34], eax
mov cl, byte [edi + 0xc]
add esp, 4
test cl, 0x40
je 0x4a6e68
mov edx, dword [edi + 0x18]
mov dword [ebx + 0x38], edx
mov word [edi + 0xc], 1
mov byte [ebx + 0x1d], 0
jmp 0x4a6ee9
add eax, 2
push eax
call fcn.00492040
add esp, 4
test eax, eax
mov dword [ebx + 0x38], eax
je 0x4a4ecc
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + 0x34]
mov esi, dword [esp + 0xc]
mov esi, dword [esi + 0x18]
mov ebx, dword [esp + 0x30]
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x34]
mov eax, dword [edx + 0x38]
mov edi, dword [esp + 0xc]
mov byte [ecx + eax], 0
mov ecx, dword [edx + 0x34]
mov edx, dword [edx + 0x38]
mov byte [ecx + edx + 1], 0
mov byte [ebx + 0x1d], 0
jmp 0x4a6ee9
mov ecx, dword [edi + 8]
push ecx
mov ecx, dword [edi + 0x18]
push ecx
mov ecx, dword [esp + 0x104]
push ecx
push eax
push edx
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
push eax
call fcn.0049ab00
mov ebx, dword [esp + 0x48]
add esp, 0x18
mov dword [esp + 0x10], eax
mov byte [ebx + 0x19], 0
mov byte [ebx + 0x20], 0
mov byte [ebx + 0x54], 0
mov esi, 2
lea ebx, [ebx]
test byte [edi + 0xc], 0x40
je 0x4a6f0f
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
dec esi
jne 0x4a6f00
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov edi, dword [edx + ecx*4]
cmp dword [edi], 0
je 0x4a6f49
push edi
call fcn.004a0350
mov eax, dword [edi]
push eax
call fcn.0049aca0
add esp, 8
mov dword [esp + 0x10], eax
mov byte [edi + 0x1e], 0
mov byte [edi + 0x54], 0
test byte [ebx + 8], 1
je case.0x4a4ba6.95
inc dword [esi + 0x24c]
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
test eax, eax
je 0x4a6f79
mov ecx, dword [esi + 0x24c]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.004a0ac0
add esp, 8
mov dword [esi + 0x24c], 0
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x3c]
mov edx, dword [ecx + eax*4]
mov al, byte [ebx + 8]
mov byte [edx + 0x1a], al
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov cl, byte [eax + 0x1d]
add edi, 0x40
test cl, cl
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], eax
je 0x4a6fc2
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x4a70ba
mov eax, dword [esp + 0x1c]
push eax
call fcn.004a0350
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 0x1d]
add esp, 4
test al, al
je 0x4a6ff3
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 0x1a]
test al, al
jne 0x4a7014
cmp byte [ebx], 0xf
je 0x4a7014
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x74]
push eax
push ecx
call fcn.00498540
jmp 0x4a7031
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x188]
push edx
push eax
call fcn.004984d0
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x7c]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x7c]
add esp, 8
cmp eax, 0x20
ja 0x4a704f
mov word [edi + 0xc], 0x210
lea eax, [edi + 0x20]
jmp 0x4a706d
push eax
call fcn.00492040
add esp, 4
test eax, eax
je 0x4a4ecc
mov word [edi + 0xc], 0x50
mov dword [edi + 0x1c], 0
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x18], eax
mov al, byte [ecx + 0x1a]
test al, al
jne 0x4a709d
cmp byte [ebx], 0xf
je 0x4a709d
mov edx, dword [edi + 0x18]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
push edx
push eax
push 0
push ecx
call fcn.00498790
add esp, 0x10
jmp case.0x4a4ba6.95
mov edx, dword [edi + 0x18]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
push edx
push eax
push 0
push ecx
call fcn.00498760
add esp, 0x10
jmp case.0x4a4ba6.95
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x4a7581
mov edx, dword [eax + 0x34]
mov dword [edi + 8], edx
mov eax, dword [eax + 0x38]
mov dword [edi + 0x18], eax
mov word [edi + 0xc], 0x110
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov esi, dword [edx + ecx*4]
push esi
call fcn.004a0350
mov al, byte [esi + 0x19]
add edi, 0x40
add esp, 4
test al, al
mov dword [esp + 0xc], edi
je 0x4a7112
mov eax, dword [esi + 8]
mov dword [esp + 0xa0], eax
mov ecx, dword [esi + 0xc]
mov dword [esp + 0xa4], ecx
jmp 0x4a7155
mov al, byte [esi + 0x1f]
test al, al
je 0x4a712f
mov edx, dword [esi + 0x40]
mov dword [esp + 0xa0], edx
mov eax, dword [esi + 0x44]
mov dword [esp + 0xa4], eax
jmp 0x4a7155
mov al, byte [esi + 0x1d]
test al, al
jne 0x4a7581
mov esi, dword [esi]
test esi, esi
je 0x4a7581
lea ecx, [esp + 0xa0]
push ecx
push esi
call fcn.004984d0
add esp, 8
mov edx, dword [esp + 0xa0]
mov dword [edi], edx
mov eax, dword [esp + 0xa4]
mov dword [edi + 4], eax
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov ebx, dword [ebx + 4]
add edi, 0x40
mov word [edi + 0xc], 1
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + ebx*4]
mov ebx, dword [eax]
test ebx, ebx
mov dword [esp + 0xc], edi
je case.0x4a4ba6.95
push eax
call fcn.004a0350
lea edx, [esp + 0xb4]
push edx
push ebx
call fcn.004984d0
mov ecx, dword [esp + 0xc0]
add esp, 0xc
test ecx, ecx
jl 0x4a85d6
mov eax, dword [esp + 0xb0]
jg 0x4a71ca
test eax, eax
jbe 0x4a85d6
test ecx, ecx
jl 0x4a71f9
jg 0x4a71d5
cmp eax, 0x20
jbe 0x4a71f9
push eax
call fcn.00492040
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je 0x4a4ecc
mov word [edi + 0xc], 0x50
mov dword [edi + 0x1c], 0
jmp 0x4a7206
lea eax, [edi + 0x20]
mov dword [esp + 0x18], eax
mov word [edi + 0xc], 0x210
mov ecx, dword [esp + 0xb0]
push eax
push ecx
push 0
push ebx
call fcn.00498760
mov edx, dword [esp + 0x28]
mov dword [edi + 0x18], edx
mov eax, dword [esp + 0xc0]
add esp, 0x10
mov dword [edi + 8], eax
jmp case.0x4a4ba6.95
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ecx*4]
mov byte [eax + 0x1d], 1
mov byte [eax + 0x19], 0
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x3c]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x4a7299
lea edx, [esp + 0xd8]
push edx
push eax
call fcn.00498c50
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe0]
add esp, 8
test eax, eax
mov byte [esi + 0x1d], al
mov byte [esi + 0x20], 0
mov byte [esi + 0x54], 0
je case.0x4a4ba6.95
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x4a4ba6.95
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov byte [esi + 0x1d], 0
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x3c]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x4a72df
lea edx, [esp + 0x88]
push edx
push eax
call fcn.00498c00
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
add esp, 8
test eax, eax
sete al
mov byte [esi + 0x1b], al
mov byte [esi + 0x20], 0
mov byte [esi + 0x54], 0
jmp 0x4a72ea
mov dword [esp + 0x88], 1
mov cl, byte [esp + 0x88]
mov byte [esi + 0x1d], cl
mov eax, dword [esp + 0x88]
test eax, eax
je case.0x4a4ba6.95
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x4a4ba6.95
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov edx, dword [esp + 0x14]
test byte [edx + 0xe0], 4
jne 0x4a8616
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x3c]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esi]
test ecx, ecx
je 0x4a73aa
mov dl, byte [esi + 0x1d]
test dl, dl
je 0x4a7353
mov dword [esp + 0x98], 1
mov byte [esi + 0x19], 0
jmp case.0x4a4ba6.95
cmp al, 0x6a
jne 0x4a7367
lea eax, [esp + 0x98]
push eax
push ecx
call fcn.00498f90
jmp 0x4a7375
lea edx, [esp + 0x98]
push edx
push ecx
call fcn.004990d0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xa0]
add esp, 8
test eax, eax
mov byte [esi + 0x1d], al
mov byte [esi + 0x54], 0
jne 0x4a73ae
mov ebx, dword [ebx + 8]
mov eax, dword [0x588758]
dec ebx
inc eax
mov dword [0x588758], eax
mov dword [esp + 0x28], ebx
mov byte [esi + 0x19], 0
jmp case.0x4a4ba6.95
mov byte [esi + 0x1d], 1
mov byte [esi + 0x19], 0
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x3c]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x24], eax
je 0x4a74d2
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
test eax, eax
mov dword [esp + 0x18], edx
je 0x4a74a6
mov ecx, dword [esp + 0x1c]
push ecx
push edx
call fcn.004a08f0
mov ecx, dword [esp + 0x20]
sub ecx, eax
lea eax, [esp + 0x9c]
push eax
mov eax, ecx
cdq
push edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x2c]
push eax
push ecx
push edx
call fcn.00498ca0
add esp, 0x1c
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4a74a6
mov eax, dword [esp + 0x24]
push eax
call fcn.00498f80
add esp, 4
test eax, eax
jne 0x4a74a6
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0xcc]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
call fcn.004a0a20
add esp, 0x10
test eax, eax
jne 0x4a7479
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x4a85e3
mov eax, dword [esp + 0x94]
test eax, eax
jge 0x4a74a6
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x94]
push edx
push eax
call fcn.00498f90
add esp, 8
mov dword [esp + 0x94], 1
jmp 0x4a7436
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push 0
cdq
push 0x55d526
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
push edx
call fcn.0049ab00
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
add esp, 0x18
mov byte [eax + 0x54], 0
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov edx, dword [esi + 0x3c]
mov ecx, dword [ebx + 4]
mov ebx, dword [edx + ecx*4]
mov esi, dword [ebx]
test esi, esi
je 0x4a753b
mov ecx, dword [edi + 0x18]
lea eax, [esp + 0xf4]
push eax
mov eax, dword [edi + 8]
cdq
push edx
push eax
push ecx
push esi
call fcn.00498ca0
add esp, 0x14
test eax, eax
jne 0x4a7537
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x4a7537
push esi
call fcn.0049aca0
add esp, 4
mov dword [esp + 0x10], eax
mov byte [ebx + 0x54], 0
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov ebx, dword [ebx + 4]
add edi, 0x40
mov word [edi + 0xc], 1
mov edx, dword [esi + 0x3c]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0xc], edi
je case.0x4a4ba6.95
mov dl, byte [eax + 0x1d]
test dl, dl
je 0x4a758c
mov word [edi + 0xc], 1
jmp case.0x4a4ba6.95
lea eax, [esp + 0x100]
push eax
push ecx
call fcn.004a0940
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov word [edi + 0xc], 4
mov ecx, dword [esp + 0x100]
mov dword [edi], ecx
mov edx, dword [esp + 0x104]
mov dword [edi + 4], edx
jmp case.0x4a4ba6.95
mov ecx, dword [esi + 0x3c]
mov eax, dword [ebx + 4]
mov eax, dword [ecx + eax*4]
cmp dword [eax], 0
mov dword [esp + 0x48], eax
je 0x4a7668
test byte [edi + 0xc], 0x12
jne 0x4a7600
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + 0x178]
push eax
push edi
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ecc
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x48]
test edx, edx
mov edx, dword [esi + 0x48]
setne cl
mov byte [edx], cl
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 8]
lea eax, [esp + 0x80]
push eax
push ecx
push edx
push esi
call fcn.004a0a20
mov ecx, dword [esi + 0x48]
add esp, 0x10
test eax, eax
mov byte [ecx], 0
jne case.0x4a4ba6.95
mov al, byte [ebx]
cmp al, 0x32
jne 0x4a7649
mov eax, dword [esp + 0x80]
neg eax
jmp 0x4a7655
cmp al, 0x76
mov eax, dword [esp + 0x80]
jne 0x4a765c
inc eax
mov dword [esp + 0x80], eax
test eax, eax
jle 0x4a7668
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 8]
mov dword [esp + 0x18], edx
lea edx, [esp + 0xac]
push edx
push eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], ecx
call fcn.00492c60
mov esi, eax
mov eax, dword [esp + 0x28]
add esp, 8
cmp esi, eax
jge 0x4a7668
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4a7668
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0xac]
push eax
lea edx, [esi + ecx]
push edx
call fcn.00492c60
add esi, eax
mov eax, dword [esp + 0xb4]
add esp, 8
test eax, eax
je 0x4a7660
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
dec ecx
cmp esi, eax
mov dword [esp + 0x18], ecx
jl 0x4a76b7
jmp 0x4a7668
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
imul ecx, ecx, 0x6c
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [edx + 4]
mov ecx, dword [ecx + eax + 4]
push ecx
call fcn.0049b140
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 4]
imul eax, eax, 0x6c
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [ecx + 4]
mov eax, dword [eax + edx + 4]
push eax
call fcn.0049b0d0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x4a4ba6.95
mov ebx, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
imul ebx, ebx, 0x6c
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + edx + 4]
add ebx, edx
xor edx, edx
cmp al, 0x61
setne dl
dec edx
and edx, 3
add edx, 2
mov eax, edx
push eax
lea eax, [esp + 0xd8]
push eax
push ecx
call fcn.0049af30
add edi, 0x40
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jne 0x4a7581
mov eax, dword [esp + 0xd4]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov word [edi + 0xc], 4
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov edx, eax
imul edx, edx, 0x6c
add ecx, edx
test byte [ecx + 0x5c], 1
je case.0x4a4ba6.95
cmp eax, 1
mov dword [esp + 0x20], str.sqlite_temp_master
je 0x4a77dc
mov dword [esp + 0x20], str.sqlite_master
mov edx, dword [esp + 0x14]
mov dword [esp + 0x108], edx
lea edx, [esi + 0x244]
mov dword [esp + 0x10c], edx
mov edx, dword [ebx + 0xc]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x24]
push edx
push ecx
push eax
push str.SELECT_name__rootpage__sql___d_FROM__q._s_WHERE__s
call fcn.004a23a0
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0x4a4ecc
mov esi, dword [esp + 0x14]
push esi
call fcn.004929f0
push 0
lea edx, [esp + 0x110]
push edx
push fcn.0048adf0
push ebx
push esi
mov byte [esi + 0x14c], 1
call fcn.004a1190
push esi
mov dword [esp + 0x2c], eax
mov byte [esi + 0x14c], 0
call fcn.004929a0
push ebx
call fcn.00492060
add esp, 0x20
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.004942f0
add esp, 0xc
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.00494180
add esp, 0xc
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.004acae0
add esp, 0xc
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp edi, eax
mov dword [esp + 0x1c], ecx
jb 0x4a78dd
mov eax, edi
jmp 0x4a78c0
test byte [eax + 0xc], 4
je 0x4a78dd
mov edx, dword [esp + 0x1c]
inc edx
add ecx, 0x40
mov eax, edi
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0x28]
sub eax, ecx
cmp eax, edx
jae 0x4a78c0
mov eax, dword [esp + 0x1c]
lea ecx, [eax*4 + 4]
push ecx
call fcn.00492040
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je 0x4a4ecc
mov esi, dword [esp + 0x1c]
xor eax, eax
test esi, esi
jle 0x4a7918
mov edx, dword [edi]
mov ecx, dword [esp + 0x18]
mov dword [ecx + eax*4], edx
inc eax
sub edi, 0x40
cmp eax, esi
jl 0x4a7907
mov edx, dword [esp + 0x18]
mov dword [edx + eax*4], 0
lea eax, [esp + 0xc]
push eax
mov eax, esi
call fcn.004a4900
mov ecx, dword [ebx + 8]
mov ebx, dword [esp + 0x18]
imul ecx, ecx, 0x6c
mov edx, dword [ebx + 4]
mov edi, dword [esp + 0x10]
mov eax, dword [ecx + edx + 4]
push esi
mov esi, dword [esp + 0x20]
push esi
add edi, 0x40
push eax
mov dword [esp + 0x1c], edi
call fcn.0049b990
add esp, 0x10
test eax, eax
je 0x4a7994
cmp byte [eax], 0
je 0x4a798b
mov dword [edi + 0x18], eax
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a7970
sub eax, edx
mov dword [edi + 8], eax
mov word [edi + 0xc], 0x62
mov dword [edi + 0x1c], 0
jmp 0x4a79a8
push eax
call fcn.00492060
add esp, 4
mov dword [edi + 0x18], 0x5417f0
mov dword [edi + 8], 2
mov word [edi + 0xc], 0xa2
mov byte [edi + 0xf], 1
movzx ecx, byte [ebx + 0x178]
push ecx
push edi
call fcn.00492e00
push esi
call fcn.00492060
add esp, 0xc
jmp case.0x4a4ba6.95
mov ebx, dword [esi + 0x80]
test ebx, ebx
je 0x4a79d9
mov edx, dword [ebx + 4]
cmp edx, dword [ebx]
jl 0x4a7a0d
push 0x1f50
call fcn.00492040
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4a4ecc
xor eax, eax
mov dword [ebx], 0x3e8
mov dword [ebx + 8], eax
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x80]
mov dword [ebx + 0xc], eax
mov dword [esi + 0x80], ebx
push edi
call fcn.00493120
mov edx, dword [edi]
mov ecx, dword [ebx + 4]
mov dword [ebx + ecx*8 + 0x10], edx
mov eax, dword [edi + 4]
mov dword [ebx + ecx*8 + 0x14], eax
mov ecx, dword [ebx + 4]
add esp, 4
inc ecx
sub edi, 0x40
mov dword [ebx + 4], ecx
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x80]
xor ecx, ecx
test eax, eax
je 0x4a7a6e
jmp 0x4a7a50
mov eax, dword [esi + 0x80]
mov edx, dword [eax + 0xc]
mov dword [esi + 0x80], edx
mov dword [eax + 0xc], ecx
mov ecx, eax
mov eax, dword [esi + 0x80]
test eax, eax
jne 0x4a7a50
mov dword [esi + 0x80], ecx
jmp case.0x4a4ba6.95
mov eax, dword [esp + 0x14]
test byte [eax + 0xe0], 4
jne 0x4a8616
mov eax, dword [esi + 0x80]
test eax, eax
je 0x4a8202
mov ecx, dword [eax + 8]
mov edx, dword [eax + ecx*8 + 0x10]
add edi, 0x40
mov dword [edi], edx
mov ecx, dword [eax + ecx*8 + 0x14]
mov dword [edi + 4], ecx
inc dword [eax + 8]
mov word [edi + 0xc], 4
mov edx, dword [eax + 8]
cmp edx, dword [eax + 4]
mov dword [esp + 0xc], edi
jl case.0x4a4ba6.95
mov ecx, dword [eax + 0xc]
push eax
mov dword [esi + 0x80], ecx
call fcn.00492060
add esp, 4
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x80]
test eax, eax
je case.0x4a4ba6.95
push eax
call fcn.0049fd70
add esp, 4
mov dword [esi + 0x80], 0
jmp case.0x4a4ba6.95
mov ebx, dword [esi + 0x84]
cmp ebx, dword [esi + 0x88]
lea eax, [ebx + 1]
mov dword [esi + 0x84], eax
jl 0x4a7b43
lea edx, [ebx + ebx*2 + 3]
shl edx, 2
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x8c]
push edx
push eax
call fcn.00492080
add esp, 8
test eax, eax
mov dword [esi + 0x8c], eax
je 0x4a4ecc
mov edx, dword [esi + 0x8c]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x128]
mov dword [eax], edx
mov ecx, dword [esi + 0x24c]
mov dword [eax + 4], ecx
mov edx, dword [esi + 0x80]
mov dword [eax + 8], edx
mov dword [esi + 0x80], 0
jmp case.0x4a4ba6.95
mov edx, dword [esi + 0x84]
mov ecx, dword [esi + 0x8c]
dec edx
mov eax, edx
lea eax, [eax + eax*2]
lea edi, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x84], edx
mov eax, dword [edi]
cdq
mov dword [ecx + 0x128], eax
mov dword [ecx + 0x12c], edx
mov eax, dword [esi + 0x80]
mov edx, dword [edi + 4]
push eax
mov dword [esi + 0x24c], edx
call fcn.0049fd70
mov ecx, dword [edi + 8]
add esp, 4
mov dword [esi + 0x80], ecx
jmp case.0x4a4ba6.95
push edi
call fcn.00492e30
add esp, 4
test eax, eax
jne 0x4a4ecc
push 0x50
call fcn.00492040
add esp, 4
test eax, eax
je 0x4a4ecc
mov edx, dword [esi + 0x40]
mov dword [eax + 0x48], edx
mov dword [esi + 0x40], eax
mov ecx, dword [edi + 8]
mov dword [eax], ecx
mov edx, dword [edi + 0x18]
lea ecx, [edi - 0x40]
mov dword [eax + 4], edx
mov word [eax + 0x14], 1
push ecx
add eax, 8
push eax
call fcn.004933b0
add esp, 8
sub edi, 0x80
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
xor ecx, ecx
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], ecx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], ecx
mov edx, dword [esi]
mov dword [esp + 0x14c], ecx
mov al, byte [edx + 0x178]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x160], ecx
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], ecx
mov byte [ebx], al
mov eax, dword [esi + 0x40]
test eax, eax
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x180], ecx
mov dword [esp + 0x184], ecx
je 0x4a7d83
jmp 0x4a7d20
mov eax, dword [esi + 0x40]
mov edx, dword [eax + 0x48]
mov dword [esi + 0x40], edx
mov dword [eax + 0x48], 0
xor edi, edi
mov ecx, dword [esp + edi*4 + 0x110]
test ecx, ecx
je 0x4a7d59
push ebx
call fcn.004a4930
add esp, 4
mov dword [esp + edi*4 + 0x110], 0
inc edi
cmp edi, 0x1d
jl 0x4a7d32
jmp 0x4a7d65
cmp edi, 0x1d
mov dword [esp + edi*4 + 0x110], eax
jl 0x4a7d7c
mov ecx, dword [esp + 0x184]
push ebx
call fcn.004a4930
add esp, 4
mov dword [esp + 0x184], eax
mov eax, dword [esi + 0x40]
test eax, eax
jne 0x4a7d20
xor eax, eax
xor edi, edi
jmp 0x4a7d90
mov ecx, dword [esp + edi*4 + 0x110]
push ebx
call fcn.004a4930
add esp, 4
inc edi
cmp edi, 0x1e
jl 0x4a7d90
mov dword [esi + 0x40], eax
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x40]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
test byte [ecx + 0xe0], 4
jne 0x4a8616
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4a8202
mov ebx, eax
mov edx, dword [ebx + 0x48]
lea eax, [ebx + 8]
add edi, 0x40
push eax
mov dword [esi + 0x40], edx
push edi
mov dword [esp + 0x14], edi
mov word [edi + 0xc], 1
call fcn.004933b0
mov ecx, dword [ebx + 4]
push ecx
mov dword [esp + 0x1c], eax
call fcn.00492060
push ebx
call fcn.00492060
add esp, 0x10
jmp case.0x4a4ba6.95
push esi
call fcn.0049fc70
add esp, 4
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 4]
mov ecx, dword [esi + 0x5c]
shl edx, 6
add edx, ecx
push edi
push edx
call fcn.004933b0
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 8]
sub edi, 0x40
add esp, 8
test eax, eax
mov dword [esp + 0xc], edi
jne case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov ebx, dword [esi + 0x5c]
shl eax, 6
push pe_nt_image_headers32
add eax, ebx
add edi, 0x40
push eax
push edi
mov dword [esp + 0x18], edi
call fcn.00493310
add esp, 0xc
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
mov edi, dword [esi + 0x5c]
shl eax, 6
mov esi, dword [eax + edi]
mov edx, dword [eax + edi + 4]
add eax, edi
add esi, 1
adc edx, 0
mov dword [eax], esi
mov dword [eax + 4], edx
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x4a4ba6.95
mov ecx, edx
test ecx, ecx
jl case.0x4a4ba6.95
jg 0x4a7ea9
mov ecx, esi
test ecx, ecx
jbe case.0x4a4ba6.95
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 4]
test eax, eax
mov ecx, dword [ebx + 0xc]
push ecx
je 0x4a7ee9
add esi, 0x60
push esi
push 0
mov dword [esp + 0x24], esi
call fcn.004a0b50
mov edx, dword [ebx + 8]
push 0
push 0
mov ebx, esi
mov dword [esi], edx
call fcn.004a4840
mov edi, dword [esp + 0x20]
mov esi, dword [ebp + 8]
add esp, 0x14
jmp 0x4a7f07
mov edx, dword [esp + 0x18]
lea eax, [esi + 0x60]
push eax
push edx
mov dword [esp + 0x24], eax
call fcn.004a0b50
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [edx], ecx
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
shl ecx, 2
push ecx
call fcn.00492000
add esp, 4
test eax, eax
mov dword [esi + 0x68], eax
je 0x4a4ecc
jmp case.0x4a4ba6.95
mov edx, dword [ebx + 8]
mov eax, dword [esi + 0x68]
mov ecx, dword [ebx + 0xc]
mov dword [eax + edx*4], ecx
jmp case.0x4a4ba6.95
mov eax, dword [ebx + 8]
mov edx, eax
shl edx, 6
mov ecx, edi
sub ecx, edx
mov edx, dword [esi + 0x30]
mov dword [esp + 0x20], edx
xor edx, edx
test eax, eax
mov dword [esp + 0x18], eax
jle 0x4a7f7b
mov eax, dword [esp + 0x20]
mov dword [eax + edx*4], ecx
call fcn.004a4810
mov eax, dword [esp + 0x18]
inc edx
add ecx, 0x40
cmp edx, eax
jl 0x4a7f63
mov edi, dword [edi]
mov edx, dword [esi + 0x64]
mov ecx, dword [ebx + 0xc]
shl edi, 6
lea esi, [edi + edx + 8]
mov dword [esp + 0x230], ecx
lea eax, [esi + 0x20]
mov dword [esp + 0x250], eax
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x278], ecx
mov edi, dword [esi]
mov edx, dword [esi + 4]
add edi, 1
mov eax, 0
mov dword [esi], edi
adc edx, eax
mov dword [esi + 4], edx
mov byte [esp + 0x27c], al
mov dword [esp + 0x284], eax
mov eax, dword [esp + 0x230]
mov edx, edi
mov dword [esp + 0x280], edx
mov byte [esp + 0x27d], 1
mov cl, byte [eax + 0x20]
test cl, cl
je 0x4a7ff0
mov ecx, dword [ebx - 8]
mov dword [esp + 0x284], ecx
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x234]
push edi
push ecx
call dword [eax + 0x18]
mov edx, dword [esp + 0x284]
lea ecx, [esp + 0x18]
lea eax, [edi + 1]
push ecx
mov dword [esi + 0x18], edx
mov word [esi + 0xc], 0x400
call fcn.004a4900
mov al, byte [esp + 0x28c]
add esp, 0x10
test al, al
je case.0x4a4ba6.95
mov dword [esp + 0x10], 1
jmp case.0x4a4ba6.95
test byte [edi + 0xc], 0x12
jne 0x4a8064
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + 0x178]
push eax
push edi
call fcn.00492fc0
add esp, 8
test eax, eax
jne 0x4a4ecc
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0x18]
lea edx, [esp + 0xec]
push edx
mov dword [esp + 0x4c], eax
cdq
push edx
push eax
mov eax, dword [esi + 0x70]
push ecx
push eax
mov dword [esp + 0x78], ecx
call fcn.00498ca0
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x4a80bf
mov edx, dword [esi + 0x70]
lea ecx, [esi + 0x64]
push ecx
push 4
push 0
push edx
call fcn.00498790
mov ebx, dword [ebx + 8]
add esp, 0x10
dec ebx
mov dword [esp + 0x28], ebx
jmp 0x4a80d8
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x64]
push eax
push ecx
lea ebx, [esi + 0x60]
call fcn.004a4840
mov edi, dword [esp + 0x14]
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
test byte [edi + 0xc], 0x40
je 0x4a80f3
push edi
call fcn.00493040
add esp, 4
sub edi, 0x40
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov esi, dword [esi + 0x64]
test esi, esi
mov ebx, dword [ebx + 8]
je 0x4a4ec5
shl ebx, 6
lea edx, [ebx + esi + 8]
push edi
push edx
call fcn.004933b0
add esp, 8
sub edi, 0x40
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
jmp case.0x4a4ba6.95
mov esi, dword [esi + 0x64]
test esi, esi
je 0x4a4ec5
mov eax, dword [ebx + 8]
shl eax, 6
push pe_nt_image_headers32
lea ecx, [eax + esi + 8]
add edi, 0x40
push ecx
push edi
mov dword [esp + 0x18], edi
call fcn.00493310
mov al, byte [edi + 0xc]
add esp, 0xc
test al, 2
je case.0x4a4ba6.95
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + 0x178]
push eax
push edi
call fcn.00492e00
add esp, 8
jmp case.0x4a4ba6.95
mov ecx, dword [esp + 0x14]
test byte [ecx + 0xe0], 4
jne 0x4a8616
mov al, byte [esi + 0x78]
test al, al
mov eax, dword [esi + 0x70]
jne 0x4a81c5
test eax, eax
mov byte [esi + 0x78], 1
je 0x4a81b8
lea edx, [esp + 0x90]
push edx
push eax
call fcn.00498c00
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x4a81eb
mov dword [esp + 0x90], 0
jmp 0x4a81eb
test eax, eax
je 0x4a81e0
lea ecx, [esp + 0x90]
push ecx
push eax
call fcn.00498f90
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x4a81eb
mov dword [esp + 0x90], 1
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4a8340
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4a820f
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x4a4ba6.95
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4a8233
lea edx, [esi + 0x64]
push edx
push 4
push 0
push eax
call fcn.00498790
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4a8340
mov ebx, dword [esi + 0x64]
mov ecx, dword [esi + 0x60]
xor eax, eax
add ebx, 8
test ecx, ecx
mov dword [esp + 0x20], eax
jle case.0x4a4ba6.95
add ebx, 0x20
lea ecx, [ecx]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x68]
mov eax, dword [edx + eax*4]
test eax, eax
je 0x4a82e6
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x4a82e6
mov word [esp + 0x29c], 1
mov dword [esp + 0x2a8], ebx
mov ecx, dword [ebx - 8]
mov dword [esp + 0x2d0], ecx
mov edx, dword [ebx - 0x20]
lea edi, [ebx - 0x20]
lea ecx, [esp + 0x288]
push ecx
mov dword [esp + 0x2dc], edx
mov byte [esp + 0x2d9], 0
mov dword [esp + 0x28c], eax
call dword [eax + 0x1c]
mov edx, dword [esp + 0x2d4]
mov dword [ebx - 8], edx
mov eax, dword [esp + 0x2d4]
add esp, 4
test eax, eax
je 0x4a82cf
cmp eax, ebx
je 0x4a82cf
push eax
call fcn.00492060
add esp, 4
mov ecx, 0x10
lea esi, [esp + 0x290]
rep movsd dword es:[edi], dword [esi]
test byte [ebx - 0x13], 2
je 0x4a82e6
mov dword [ebx - 8], ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x60]
inc eax
add ebx, 0x40
cmp eax, edx
mov dword [esp + 0x20], eax
jl 0x4a8250
jmp case.0x4a4ba6.95
mov edi, dword [esp + 0x14]
push edi
call fcn.004929f0
add esp, 4
test eax, eax
jne 0x4a8338
push edi
add esi, 0x244
push esi
call fcn.004b4370
push edi
mov dword [esp + 0x1c], eax
call fcn.004929a0
add esp, 0xc
test eax, eax
je case.0x4a4ba6.95
mov dword [esp + 0x10], 0x15
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x244]
test eax, eax
lea edi, [esi + 0x244]
jne 0x4a837d
mov eax, dword [0x588720]
test eax, eax
je 0x4a8364
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x10]
push 0
push ecx
call fcn.0048a8c0
add esp, 4
push eax
push edi
call fcn.004921b0
add esp, 0xc
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4a866d
mov edx, eax
mov dword [esi + 0x94], edx
mov ebx, 1
jmp 0x4a8672
mov edx, dword [esp + 0x1c]
push edx
push 0x53c1b0
lea eax, [esp + 0x348]
push eax
push 0x64
call fcn.004a23d0
push 0
lea ecx, [esp + 0x354]
push ecx
push str.unknown_opcode
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0x20
mov dword [esp + 0x10], 2
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov esi, dword [ebp + 8]
inc ecx
test eax, eax
mov dword [esp + 0x28], ecx
je 0x4a4b3a
mov edx, eax
mov dword [esi + 0x94], edx
mov ebx, 1
jmp 0x4a8672
mov eax, dword [esp + 0x28]
mov dword [esi + 0x2c], edi
mov edx, dword [ebx + 4]
mov dword [esi + 0x94], edx
mov dword [esi + 0x90], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 0x9c], ecx
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x4a8444
push 0
lea edx, [esi + 0x244]
push ebx
push edx
call fcn.004921b0
add esp, 0xc
push esi
call fcn.004a0dd0
add esp, 4
cmp eax, 5
je 0x4a8559
test eax, eax
je 0x4a8460
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x94]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x78], 0
jle 0x4a84bb
mov dword [esp + 0x18], edi
lea ebx, [ebx]
mov eax, dword [esp + 0x18]
push eax
call fcn.00492f30
mov ecx, dword [esp + 0x1c]
add esp, 4
call fcn.004a4810
mov eax, dword [esp + 0x78]
sub ecx, 0x40
inc eax
mov dword [esp + 0x18], ecx
cmp eax, dword [ebx + 4]
mov dword [esp + 0x78], eax
jl 0x4a8490
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0x28]
inc eax
mov dword [esi + 0x7c], eax
mov byte [esi + 0x248], 1
mov ecx, dword [ebx + 4]
inc edx
mov dword [esi + 0x240], ecx
mov dword [esi + 0x90], edx
mov eax, 0x64
mov dword [esi + 0x2c], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0x14
jmp 0x4a8340
mov dword [esp + 0x10], 2
jmp 0x4a8340
mov byte [ecx + 0x179], al
mov eax, dword [ebx + 8]
test eax, eax
je 0x4a852c
mov eax, dword [esp + 0x14]
push eax
call fcn.0048a870
add esp, 4
mov eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
call fcn.004a0dd0
add esp, 4
cmp eax, 5
jne 0x4a8520
mov al, byte [esp + 0x37]
mov ecx, dword [esp + 0x28]
mov dl, 1
sub dl, al
mov eax, dword [esp + 0x14]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x90], ecx
mov byte [eax + 0x179], dl
mov dword [esi + 0x94], 5
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], 5
mov eax, 5
mov dword [esi + 0x2c], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
xor eax, eax
mov dword [edi + 0x90], edx
mov dword [edi + 0x94], 5
mov ecx, dword [ebx + 8]
test ecx, ecx
mov ecx, dword [esp + 0xc]
setle al
inc eax
shl eax, 6
add eax, ecx
mov dword [edi + 0x2c], eax
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], 0xd
jmp 0x4a8340
mov dword [esp + 0x10], 0xb
jmp 0x4a8340
mov ebx, dword [ebx + 0xc]
test ebx, ebx
mov dword [esp + 0x10], 0x13
je 0x4a8340
cmp byte [ebx], 0
je 0x4a8340
push 0
push ebx
add esi, 0x244
push esi
call fcn.004921b0
add esp, 0xc
jmp 0x4a8340
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xe0]
mov ebx, dword [eax + 0x138]
xor edx, edx
and ecx, 0xfffffffb
cmp ebx, 0xf03b7906
sete dl
mov dword [eax + 0xe0], ecx
push 0
dec edx
and edx, 0xc
add edx, 9
mov eax, edx
push eax
mov dword [esp + 0x18], eax
mov dword [esi + 0x94], eax
call fcn.0048a8c0
add esp, 4
push eax
lea eax, [esi + 0x244]
push eax
call fcn.004921b0
add esp, 0xc
jmp 0x4a8381
mov ebx, 0x65
push esi
call fcn.004a0dd0
add esp, 4
mov dword [esi + 0x2c], edi
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret