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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
xor ecx, ecx
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x39]
mov dword [ebp - 8], ecx
mov byte [ebp - 0xc8], al
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], ecx
call fcn.004a82dc
cmp dword [edi + 0x64], 7
je 0x4aa488
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov ebx, edi
mov dword [ebx + 0x64], ecx
mov dword [ebx + 0x2c], ecx
mov dword [eax + 0x198], ecx
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x4ae5f3
mov eax, dword [ebx + 0x60]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x1e], 0
jne 0x4aa488
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp + 8]
imul esi, esi, 0x14
add esi, dword [ebx + 0x14]
mov ecx, dword [eax + 0xf8]
mov dword [ebp - 0x1c], esi
test ecx, ecx
je 0x4aa085
mov edx, dword [eax + 0x100]
cmp edx, dword [ebp - 0xd8]
jne 0x4aa07f
push dword [eax + 0xfc]
call ecx
pop ecx
test eax, eax
jne 0x4ae507
and dword [ebp - 0xd8], eax
inc dword [ebp - 0xd8]
movzx eax, byte [esi]
mov dl, byte [eax + 0x537f48]
test dl, 2
je 0x4aa0b3
mov edi, dword [esi + 8]
imul edi, edi, 0x28
add edi, dword [ebx + 0x4c]
mov eax, edi
mov dword [ebp - 0x14], edi
call fcn.004a64d8
xor eax, eax
inc eax
and dword [edi + 0x18], 0
mov word [edi + 0x1c], ax
jmp 0x4aa124
test dl, 4
je 0x4aa0fa
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x4c]
imul eax, eax, 0x28
add eax, ecx
mov dword [ebp - 0x10], eax
test dl, 8
je 0x4aa0eb
mov eax, dword [esi + 8]
imul eax, eax, 0x28
add eax, ecx
mov dword [ebp - 0xcc], eax
test dl, 0x20
je 0x4aa124
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, ecx
mov dword [ebp - 0x14], eax
jmp 0x4aa124
test dl, 0x10
je 0x4aa124
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, ecx
jmp 0x4aa11e
test dl, 8
je 0x4aa110
mov eax, dword [esi + 8]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0xcc], eax
jmp 0x4aa124
test dl, 0x10
je 0x4aa124
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0xd0], eax
movzx eax, byte [esi]
mov edi, dword [ebp - 0xd0]
dec eax
cmp eax, 0x90
ja case.0x4aa139.12
jmp dword [eax*4 + 0x4ae60e]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x4ae5f3
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x18], esi
jmp case.0x4aa139.12
mov ecx, dword [esi + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0x18]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], ecx
dec eax
mov dword [ebp - 0x18], eax
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
jmp 0x4aa17d
mov ecx, dword [ebp - 0x10]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x18]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xc4]
jmp 0x4aa17d
test byte [edi + 0x1c], 1
je case.0x4aa139.12
mov eax, dword [esi + 4]
mov dword [ebx + 0x64], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x60], eax
mov al, byte [esi + 8]
mov byte [ebx + 0x38], al
mov esi, dword [esi + 0x10]
test esi, esi
je 0x4aa1e6
push esi
push 0x544148
push dword [ebp - 0xc]
lea edi, [ebx + 0x68]
call fcn.00499118
add esp, 0xc
push ebx
call fcn.004a830f
pop ecx
push 5
pop esi
cmp eax, esi
je 0x4ae58b
mov esi, dword [ebx + 0x64]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4aab69
mov ecx, dword [ebp - 0x14]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [esi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x14]
push 4
pop ecx
mov word [eax + 0x1c], cx
mov esi, dword [esi + 0x10]
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x14]
push 8
pop ecx
mov word [eax + 0x1c], cx
mov ecx, dword [esi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.0x4aa139.12
mov ecx, dword [esi + 0x10]
mov byte [esi], 0x1c
call fcn.0049a63b
cmp byte [ebp - 0xc8], 1
mov dword [esi + 4], eax
je 0x4aa2e4
mov edx, dword [ebp - 0x14]
push 1
push ecx
xor eax, eax
or ecx, 0xffffffff
call fcn.004a6960
pop ecx
pop ecx
mov dword [ebp - 8], eax
cmp eax, 0x12
je 0x4aab31
movzx eax, byte [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0x14]
call fcn.004a6228
pop ecx
test eax, eax
jne 0x4aa488
mov edi, dword [ebp - 0x14]
and dword [edi + 0x24], eax
mov ax, word [edi + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov ecx, 0x800
or ax, cx
mov word [edi + 0x1c], ax
cmp byte [esi + 1], 0xff
jne 0x4aa2d4
push dword [esi + 0x10]
push dword [ebp - 0xc]
call fcn.00498e12
pop ecx
pop ecx
mov byte [esi + 1], 0xff
mov eax, dword [edi + 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
cmp eax, dword [ecx + 0x48]
jg 0x4aab31
mov eax, dword [ebp - 0x14]
mov ecx, 0xa02
mov word [eax + 0x1c], cx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 0x18], ecx
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1f], cl
jmp case.0x4aa139.12
mov ecx, dword [esi + 4]
push 0
push dword [esi + 0x10]
mov esi, dword [ebp - 0x14]
xor eax, eax
mov edx, esi
call fcn.004a6960
mov al, byte [ebp - 0xc8]
mov byte [esi + 0x1f], al
jmp 0x4ae4f0
mov eax, dword [esi + 4]
dec eax
mov dword [ebp - 0xc4], eax
mov ecx, dword [esi + 8]
mov dword [ebp - 0xc0], ecx
mov esi, dword [esi + 0xc]
test esi, esi
jle 0x4aa3cb
jmp 0x4aa35d
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp + 8]
mov ecx, eax
imul ecx, ecx, 0x28
add ecx, dword [edx + 0x3c]
dec esi
inc eax
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xc4], eax
call fcn.004a6873
test eax, eax
jne 0x4aab2e
mov ebx, dword [ebp - 0xc0]
mov eax, dword [ebp + 8]
imul ebx, ebx, 0x28
add ebx, dword [eax + 0x4c]
inc dword [ebp - 0xc0]
mov eax, ebx
mov dword [ebp - 0x14], ebx
call fcn.004a64d8
xor eax, eax
inc eax
mov word [ebx + 0x1c], ax
push 0x800
push dword [ebp - 0xb8]
call fcn.004a689a
mov esi, dword [ebp - 0xbc]
pop ecx
pop ecx
test esi, esi
jg 0x4aa357
dec esi
mov dword [ebp - 0xbc], esi
jmp case.0x4aa139.12
mov ecx, dword [esi + 0xc]
mov ebx, dword [ebx + 0x4c]
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0xbc], eax
imul eax, eax, 0x28
mov esi, dword [esi + 8]
mov dword [ebp - 0xb8], esi
imul esi, esi, 0x28
add eax, ebx
add esi, ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], esi
test ecx, ecx
je 0x4aa444
dec dword [ebp - 0xc0]
mov eax, dword [esi + 0x24]
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0xc4], eax
and dword [esi + 0x24], 0
mov eax, esi
call fcn.004a693c
mov eax, dword [ebp - 0xc4]
mov dword [ebx + 0x24], eax
add ebx, 0x28
add esi, 0x28
cmp dword [ebp - 0xc0], 0
mov dword [ebp - 0x10], ebx
jne 0x4aa409
mov dword [ebp - 0x14], esi
dec dword [ebp - 0xc0]
jmp case.0x4aa139.12
mov esi, dword [esi + 8]
imul esi, esi, 0x28
mov eax, ebx
add esi, dword [eax + 0x4c]
mov edi, 0x1000
push edi
push dword [ebp - 0x10]
mov ebx, esi
mov dword [ebp - 0x14], esi
call fcn.004a689a
pop ecx
pop ecx
test word [esi + 0x1c], di
je case.0x4aa139.12
mov eax, esi
call fcn.004a630d
test eax, eax
je case.0x4aa139.12
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp + 8]
push str.out_of_memory
push eax
lea edi, [ebx + 0x68]
mov byte [eax + 0x1e], 1
call fcn.00499118
mov dword [ebp - 8], 7
jmp 0x4aab48
mov esi, dword [esi + 8]
imul esi, esi, 0x28
mov eax, ebx
add esi, dword [eax + 0x4c]
push 0x1000
push dword [ebp - 0x10]
mov ebx, esi
mov dword [ebp - 0x14], esi
call fcn.004a689a
jmp 0x4ae4f0
push 1
push ebx
call fcn.004a823a
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne case.0x4aa139.12
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebx + 0x4c]
inc eax
inc eax
or eax, 1
mov dword [ebx + 0x50], eax
mov eax, dword [esi + 4]
and dword [ebp - 0xc0], 0
imul eax, eax, 0x28
add eax, ecx
mov dword [ebx + 0x2c], eax
mov dword [ebp - 0xc4], eax
cmp dword [esi + 8], 0
jle 0x4aa548
mov eax, dword [ebp - 0xc0]
imul eax, eax, 0x28
add eax, dword [ebp - 0xc4]
call fcn.004a63b8
mov ecx, dword [ebp - 0xc0]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xc4]
call fcn.004a9dea
inc dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc0]
cmp eax, dword [esi + 8]
jl 0x4aa50f
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x1e], 0
jne 0x4aa488
mov eax, dword [ebp - 0x18]
inc eax
mov ecx, ebx
push 0x64
mov dword [ecx + 0x60], eax
pop esi
jmp 0x4aab69
mov edi, dword [ebp - 0x10]
movzx ecx, word [edi + 0x1c]
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 0x1c]
or al, cl
test al, 1
je 0x4aa589
mov edi, dword [ebp - 0x14]
call fcn.004a6766
jmp case.0x4aa139.12
mov esi, 0x4000
test esi, ecx
je 0x4aa59b
mov eax, edi
call fcn.004a6368
jmp 0x4aa59d
xor eax, eax
test eax, eax
jne 0x4aa488
mov eax, dword [ebp - 0xcc]
test word [eax + 0x1c], si
je 0x4aa5b8
call fcn.004a6368
jmp 0x4aa5ba
xor eax, eax
test eax, eax
jne 0x4aa488
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 0x12
jne 0x4aa5e1
movzx ecx, byte [ebp - 0xc8]
push ecx
call fcn.004a6403
pop ecx
test eax, eax
jne 0x4aa488
mov ecx, dword [ebp - 0xcc]
test byte [ecx + 0x1c], 0x12
jne 0x4aa60b
movzx eax, byte [ebp - 0xc8]
push eax
mov eax, ecx
call fcn.004a6403
pop ecx
test eax, eax
jne 0x4aa488
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc0], edx
mov eax, dword [eax + 0x48]
cdq
cmp dword [ebp - 0xc0], edx
jg 0x4aab31
jl 0x4aa642
cmp dword [ebp - 0xc4], eax
ja 0x4aab2e
mov edi, dword [ebp - 0x14]
mov ax, word [edi + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
mov word [edi + 0x1c], ax
xor eax, eax
cmp edi, dword [ebp - 0xcc]
sete al
push eax
mov eax, dword [ebp - 0xc4]
add eax, 2
call fcn.004a6248
pop ecx
test eax, eax
jne 0x4aa488
mov esi, edi
mov edi, dword [ebp - 0xcc]
cmp esi, edi
je 0x4aa699
push dword [edi + 0x18]
push dword [edi + 0x14]
push dword [esi + 0x14]
call fcn.004eff60
add esp, 0xc
mov eax, dword [ebp - 0x10]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [esi + 0x14]
add eax, dword [edi + 0x18]
push eax
call fcn.004eff60
mov ecx, dword [ebp - 0xc4]
mov eax, dword [esi + 0x14]
mov byte [ecx + eax], 0
mov ecx, dword [ebp - 0xc4]
mov eax, dword [esi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
add esp, 0xc
or word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc4]
mov dword [esi + 0x18], eax
mov al, byte [ebp - 0xc8]
mov byte [esi + 0x1f], al
jmp case.0x4aa139.12
mov ebx, dword [ebp - 0x10]
mov edi, ebx
call fcn.004a9ed6
mov edi, dword [ebp - 0xcc]
call fcn.004a9ed6
movzx eax, word [ebx + 0x1c]
movzx ecx, word [edi + 0x1c]
or eax, ecx
mov dword [ebp - 0xc4], eax
test al, 1
jne 0x4aa57c
mov eax, ebx
mov cl, byte [eax + 0x1c]
mov edx, edi
and cl, byte [edx + 0x1c]
test cl, 4
je 0x4aa841
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0xb8], eax
mov edi, dword [edx]
mov dword [ebp - 0xb4], edi
mov edx, dword [edx + 4]
mov dword [ebp - 0xb0], edx
movzx edx, byte [esi]
sub edx, 0x54
je 0x4aa81f
dec edx
je 0x4aa811
dec edx
je 0x4aa7f0
dec edx
mov edx, ecx
je 0x4aa7a4
or edx, eax
je 0x4aa57c
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x4aa78f
xor ecx, ecx
inc ecx
xor eax, eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], eax
push eax
push ecx
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
call fcn.004fbb60
jmp 0x4aa803
or edx, eax
je 0x4aa57c
mov edx, ecx
and edx, eax
cmp edx, 0xffffffff
jne 0x4aa7db
cmp dword [ebp - 0xb4], 0
jne 0x4aa7db
cmp dword [ebp - 0xb0], 0x80000000
jne 0x4aa7db
xor ecx, ecx
inc ecx
xor eax, eax
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], eax
push eax
push ecx
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
call fcn.004ee5c0
jmp 0x4aa803
push eax
push ecx
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
call fcn.004fc3e0
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
jmp 0x4aa82b
sub dword [ebp - 0xb4], ecx
sbb dword [ebp - 0xb0], eax
jmp 0x4aa82b
add dword [ebp - 0xb4], ecx
adc dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb0]
jmp 0x4aac1b
mov esi, eax
call fcn.004a6612
fstp qword [ebp - 0xac]
mov esi, dword [ebp - 0xcc]
call fcn.004a6612
fst qword [ebp - 0xa4]
mov eax, dword [ebp - 0x1c]
movzx eax, byte [eax]
sub eax, 0x54
je 0x4aa92d
dec eax
je 0x4aa925
dec eax
je 0x4aa91d
dec eax
je 0x4aa906
fld qword [ebp - 0xac]
call fcn.004f2ae6
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], edx
call fcn.004f2ae6
mov ecx, dword [ebp - 0xbc]
or ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
je 0x4aa57c
mov ecx, dword [ebp - 0xbc]
and ecx, dword [ebp - 0xb8]
cmp ecx, 0xffffffff
jne 0x4aa8df
and dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 1
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
push edx
push eax
call fcn.004fbb60
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], edx
fild qword [ebp - 0xf4]
jmp 0x4aa933
fldz
fcomp qword [ebp - 0xac]
fnstsw ax
test ah, 0x44
jnp 0x4aa98d
fdiv qword [ebp - 0xac]
jmp 0x4aa933
fmul qword [ebp - 0xac]
jmp 0x4aa933
fsub qword [ebp - 0xac]
jmp 0x4aa933
fadd qword [ebp - 0xac]
fstp qword [ebp - 0xa4]
push ecx
fld qword [ebp - 0xa4]
push ecx
fstp qword [esp]
call fcn.0049a612
add esp, 8
test eax, eax
jne 0x4aa57c
mov eax, dword [ebp - 0x14]
fld qword [ebp - 0xa4]
mov cx, word [eax + 0x1c]
fstp qword [eax + 8]
mov edx, 0xbf08
and cx, dx
or cx, 8
mov word [eax + 0x1c], cx
test byte [ebp - 0xc4], 8
jne case.0x4aa139.12
mov edi, eax
call fcn.004a6671
jmp case.0x4aa139.12
fstp st(0)
jmp 0x4aa57c
movzx ecx, byte [esi + 3]
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], ecx
mov eax, dword [esi + 8]
and dword [ebp - 0xc4], 0
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0xc0], eax
test ecx, ecx
jle 0x4aa9f2
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0xc4]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0xc0]
call fcn.004a9dea
inc dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xc4]
add eax, 0x28
cmp ecx, dword [ebp - 0x78]
mov dword [ebp - 0xc0], eax
jl 0x4aa9bb
cmp byte [esi + 1], 0xfb
mov eax, dword [esi + 0x10]
jne 0x4aaa04
and dword [ebp - 0xb8], 0
jmp 0x4aaa0c
mov dword [ebp - 0xb8], eax
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
mov edi, dword [esi + 0xc]
and dword [ebp - 0x94], 0
imul edi, edi, 0x28
and dword [ebp - 0x90], 0
mov eax, ebx
add edi, dword [eax + 0x4c]
xor eax, eax
inc eax
mov word [ebp - 0x98], ax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xa4], eax
mov ebx, edi
lea eax, [ebp - 0xb4]
mov dword [ebp - 0x14], edi
call fcn.004a693c
mov eax, dword [ebp - 0x98]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x98], ax
mov eax, dword [ebp - 0xbc]
xor ebx, ebx
mov dword [ebp - 0x88], ebx
test byte [eax + 3], 8
je 0x4aaa80
mov ecx, dword [esi - 4]
mov dword [ebp - 0x84], ecx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0xbc]
push dword [ebp - 0x78]
push ecx
call dword [eax + 0xc]
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp byte [eax + 0x1e], bl
jne 0x4ae513
cmp dword [ebp - 0xb8], ebx
je 0x4aaac6
push dword [esi + 4]
mov edi, dword [ebp - 0xb8]
call fcn.004a85e1
mov eax, dword [ebp - 0xb8]
mov edi, dword [ebp - 0x14]
pop ecx
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xf9
cmp dword [ebp - 0x88], ebx
je 0x4aaafe
lea eax, [ebp - 0xb4]
push eax
call fcn.004a904e
mov edi, dword [ebp + 8]
pop ecx
push eax
push 0x544148
push dword [ebp - 0xc]
add edi, 0x68
call fcn.00499118
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 8], eax
movzx eax, byte [ebp - 0xc8]
push eax
lea eax, [ebp - 0xb4]
call fcn.004a6228
pop ecx
lea ebx, [ebp - 0xb4]
mov eax, edi
call fcn.004a693c
mov ecx, edi
call fcn.004a6873
test eax, eax
je case.0x4aa139.12
mov ebx, dword [ebp + 8]
push str.string_or_blob_too_big
push dword [ebp - 0xc]
lea edi, [ebx + 0x68]
call fcn.00499118
mov dword [ebp - 8], 0x12
pop ecx
pop ecx
mov esi, dword [ebp - 8]
push ebx
mov dword [ebx + 0x64], esi
call fcn.004a830f
pop ecx
cmp esi, 0xc0a
jne 0x4aab66
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1e], 1
xor esi, esi
inc esi
lea edi, [ebx + 0x88]
call fcn.0049ffd3
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
mov esi, dword [ebp - 0xcc]
mov al, byte [esi + 0x1c]
mov ecx, dword [ebp - 0x10]
or al, byte [ecx + 0x1c]
test al, 1
jne 0x4aa57c
call fcn.004a659d
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
call fcn.004a659d
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], edx
movzx eax, byte [eax]
sub eax, 0x50
je 0x4aabfe
dec eax
je 0x4aabf0
mov edx, dword [ebp - 0xc0]
dec eax
mov eax, dword [ebp - 0xc4]
je 0x4aabdd
call fcn.0051f400
jmp 0x4aabe2
call fcn.0051ecb0
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
jmp 0x4aac0a
or dword [ebp - 0xc4], ecx
or dword [ebp - 0xc0], edx
jmp 0x4aac0a
and dword [ebp - 0xc4], ecx
and dword [ebp - 0xc0], edx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 4], ecx
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x4aa139.12
mov edi, dword [ebp - 0x10]
mov eax, edi
call fcn.004a66c3
mov eax, dword [esi + 8]
cdq
add dword [edi], eax
adc dword [edi + 4], edx
jmp case.0x4aa139.12
push dword [ebp - 0xc8]
mov edi, dword [ebp - 0x10]
push 0x63
mov eax, edi
call fcn.004a9f51
movzx eax, word [edi + 0x1c]
pop ecx
pop ecx
test al, 4
jne 0x4aac82
mov esi, dword [esi + 8]
test esi, esi
jne 0x4aa154
mov dword [ebp - 8], 0x14
jmp 0x4ae5b7
and eax, 0xbf04
or eax, 4
mov word [edi + 0x1c], ax
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 4
je case.0x4aa139.12
mov eax, dword [ebp - 0x10]
call fcn.004a66e8
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x1c]
test al, 1
jne case.0x4aa139.12
mov esi, dword [ebp - 0x10]
push dword [ebp - 0xc8]
mov ecx, eax
shr ecx, 3
and ecx, 2
or ecx, eax
push 0x61
mov eax, esi
mov word [esi + 0x1c], cx
call fcn.004a9f51
mov eax, 0x4000
pop ecx
pop ecx
test word [esi + 0x1c], ax
je 0x4aacf5
mov eax, esi
call fcn.004a6368
mov dword [ebp - 8], eax
jmp 0x4aacf9
and dword [ebp - 8], 0
mov eax, 0xbfe3
and word [esi + 0x1c], ax
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x1c]
test al, 1
jne case.0x4aa139.12
test al, 0x10
jne 0x4aad47
push dword [ebp - 0xc8]
mov esi, dword [ebp - 0x10]
push 0x61
mov eax, esi
call fcn.004a9f51
mov ax, word [esi + 0x1c]
pop ecx
pop ecx
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [esi + 0x1c], ax
jmp case.0x4aa139.12
mov ecx, dword [ebp - 0x10]
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 0xd
jne case.0x4aa139.12
call fcn.004a670b
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
jne case.0x4aa139.12
call fcn.004a66c3
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
jne case.0x4aa139.12
jmp 0x4aaca0
mov ecx, dword [ebp - 0x10]
movzx eax, word [edi + 0x1c]
movzx ecx, word [ecx + 0x1c]
or eax, ecx
mov dword [ebp - 0xc4], eax
test byte [ebp - 0xc4], 1
mov al, byte [esi + 3]
je 0x4aade9
test al, 0x10
je 0x4aaddc
mov esi, dword [esi + 8]
imul esi, esi, 0x28
add esi, dword [ebx + 0x4c]
mov ecx, 0xbf01
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [ebp - 0x14], esi
or ax, 1
jmp 0x4aad3e
test al, 8
je case.0x4aa139.12
jmp 0x4aa151
and al, 0x67
mov byte [ebp - 0xbc], al
je 0x4aae2a
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0x10]
push dword [ebp - 0xbc]
call fcn.004a9f51
push dword [ebp - 0xc8]
mov eax, edi
push dword [ebp - 0xbc]
call fcn.004a9f51
mov eax, dword [ebp - 0xc]
add esp, 0x10
cmp byte [eax + 0x1e], 0
jne 0x4aa488
mov ecx, dword [ebp - 0x10]
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x4aae3f
mov eax, ecx
call fcn.004a6368
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4aae51
mov eax, edi
call fcn.004a6368
push dword [esi + 0x10]
mov eax, dword [ebp - 0x10]
mov edx, edi
call fcn.004a6ab7
pop ecx
mov dword [ebp - 0xc0], eax
movzx ecx, byte [esi]
sub ecx, 0x49
je 0x4aaea6
dec ecx
je 0x4aae9d
dec ecx
je 0x4aae94
dec ecx
je 0x4aae8b
dec ecx
je 0x4aae82
xor ecx, ecx
test eax, eax
setge cl
jmp 0x4aaead
xor ecx, ecx
test eax, eax
setl cl
jmp 0x4aaead
xor ecx, ecx
test eax, eax
setle cl
jmp 0x4aaead
xor ecx, ecx
test eax, eax
setg cl
jmp 0x4aaead
xor ecx, ecx
test eax, eax
sete cl
jmp 0x4aaead
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0xc0], ecx
test byte [esi + 3], 0x10
je 0x4aaeea
mov esi, dword [esi + 8]
imul esi, esi, 0x28
add esi, dword [ebx + 0x4c]
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc0]
cdq
mov dword [ebp - 0x14], esi
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x4aa139.12
cmp dword [ebp - 0xc0], 0
jmp 0x4aadde
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xdc], eax
jmp case.0x4aa139.12
mov edx, dword [esi + 0xc]
mov dword [ebp - 0xc4], edx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0xb4], ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0xbc], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xb8], eax
xor eax, eax
mov dword [ebp - 0xc0], eax
test edx, edx
jle 0x4aafc4
mov edi, dword [ebp - 0xdc]
jmp 0x4aaf46
mov ecx, dword [ebp - 0xb4]
test edi, edi
je 0x4aaf4f
mov edx, dword [edi + eax*4]
jmp 0x4aaf51
mov edx, eax
mov dword [ebp - 0xb0], edx
mov esi, dword [ecx + eax*4 + 0xc]
mov dword [ebp - 0xac], esi
mov ecx, dword [ecx + 8]
movzx eax, byte [ecx + eax]
mov dword [ebp - 0xa8], eax
mov eax, ebx
mov ecx, dword [eax + 0x4c]
mov eax, dword [ebp - 0xb8]
add eax, edx
push esi
imul eax, eax, 0x28
mov esi, dword [ebp - 0xbc]
add edx, esi
imul edx, edx, 0x28
add eax, ecx
add edx, ecx
call fcn.004a6ab7
pop ecx
mov dword [ebp - 0xd4], eax
test eax, eax
jne 0x4aafb5
mov eax, dword [ebp - 0xc0]
inc eax
cmp eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], eax
jl 0x4aaf40
jmp 0x4aafc4
cmp dword [ebp - 0xa8], 0
je 0x4aafc4
neg dword [ebp - 0xd4]
and dword [ebp - 0xdc], 0
jmp case.0x4aa139.12
cmp dword [ebp - 0xd4], 0
jge 0x4aafe1
mov esi, dword [esi + 4]
jmp 0x4aa154
je 0x4aa151
mov esi, dword [esi + 0xc]
jmp 0x4aa154
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
je 0x4aaffd
push 2
pop eax
jmp 0x4ab012
mov esi, eax
call fcn.004a659d
or eax, edx
mov esi, dword [ebp - 0x1c]
je 0x4ab010
xor eax, eax
inc eax
jmp 0x4ab012
xor eax, eax
mov edx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc4], eax
test byte [edx + 0x1c], 1
je 0x4ab033
mov dword [ebp - 0xc0], 2
jmp 0x4ab05d
mov esi, edx
call fcn.004a659d
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
or eax, edx
mov eax, dword [ebp - 0xc4]
je 0x4ab056
mov dword [ebp - 0xc0], 1
jmp 0x4ab05d
and dword [ebp - 0xc0], 0
mov edx, dword [ebp - 0xc0]
imul eax, eax, 3
cmp byte [esi], 0x43
jne 0x4ab075
movzx eax, byte [eax + edx + 0x537f14]
jmp 0x4ab07d
movzx eax, byte [eax + edx + 0x537fdc]
mov dword [ebp - 0xc4], eax
cmp eax, 2
jne 0x4ab09d
mov ax, word [ecx + 0x1c]
mov edx, 0xbf01
and ax, dx
or ax, 1
jmp 0x4aad4f
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ax, word [ecx + 0x1c]
mov edx, 0xbf04
and ax, dx
or ax, 4
jmp 0x4aad4f
mov edi, dword [esi + 8]
mov esi, dword [ebp - 0x10]
imul edi, edi, 0x28
add edi, dword [ebx + 0x4c]
test byte [esi + 0x1c], 1
mov dword [ebp - 0x14], edi
jne 0x4aa57f
call fcn.004a659d
or eax, edx
jne 0x4ab0dd
inc eax
jmp 0x4ab0df
xor eax, eax
cdq
push edx
push eax
mov esi, edi
call fcn.004a67b7
jmp 0x4ae4f0
mov edi, dword [esi + 8]
mov esi, dword [ebp - 0x10]
imul edi, edi, 0x28
add edi, dword [ebx + 0x4c]
test byte [esi + 0x1c], 1
mov dword [ebp - 0x14], edi
jne 0x4aa57f
call fcn.004a659d
not eax
not edx
jmp 0x4ab0e0
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
je 0x4ab120
mov eax, dword [esi + 0xc]
jmp 0x4ab15c
mov esi, eax
call fcn.004a6612
fcomp qword [0x54c808]
fnstsw ax
test ah, 0x44
jnp 0x4ab140
mov dword [ebp - 0xc4], 1
jmp 0x4ab147
and dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0x44
mov esi, eax
jne 0x4ab162
xor eax, eax
cmp dword [ebp - 0xc4], eax
sete al
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jmp 0x4aadde
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
jmp 0x4aadde
mov eax, dword [ebp - 0x10]
test byte [eax + 0x1c], 1
jne case.0x4aa139.12
jmp 0x4aa151
mov eax, dword [esi + 4]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xb0], eax
xor eax, eax
xor edx, edx
mov dword [ebp - 0xac], edx
push 0xa
pop ecx
lea edi, [ebp - 0x84]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov edi, 0xbf01
mov dword [ebp - 0x88], eax
mov cx, word [eax + 0x1c]
and cx, di
or cx, 1
mov word [eax + 0x1c], cx
mov eax, dword [ebx + 0x34]
mov ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xa8], edx
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0xac], edi
mov eax, dword [edi]
mov dword [ebp - 0xa4], eax
cmp eax, edx
je 0x4ab28d
call fcn.004a86d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov edi, dword [ebp - 0xac]
cmp byte [edi + 0x14], al
je 0x4ab224
and dword [ebp - 0xc4], eax
jmp case.0x4aa139.12
mov eax, dword [edi + 0x5c]
cmp eax, dword [ebx + 0x50]
jne 0x4ab240
mov eax, dword [edi + 0x60]
mov dword [ebp - 0xc4], eax
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0xa8], eax
jmp 0x4ab2b6
cmp byte [edi + 0x19], 0
je 0x4ab268
mov eax, dword [ebp - 0xa4]
lea edi, [ebp - 0xbc]
call fcn.004a224c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xc4], eax
jmp 0x4ab2a8
mov edi, dword [ebp - 0xa4]
mov esi, edi
call fcn.004a2224
mov eax, dword [edi + 0x30]
and dword [ebp - 8], 0
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0xc4], eax
jmp 0x4ab2b6
cmp byte [edi + 0x15], 0
je 0x4ab2b0
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0xc4], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0xa8], eax
mov dword [edi + 0x5c], edx
mov edi, dword [ebp - 0xac]
jmp 0x4ab2b6
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
test eax, eax
je case.0x4aa139.12
mov ecx, dword [ebp - 0xc]
cmp eax, dword [ecx + 0x48]
ja 0x4aab31
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x98], ecx
mov eax, dword [edi + 0x64]
mov dword [ebp - 0xa0], eax
mov edx, dword [edi + 0x5c]
cmp edx, dword [ebx + 0x50]
jne 0x4ab2f8
mov ecx, dword [edi + 0x68]
mov dword [ebp - 0x9c], ecx
jmp 0x4ab551
and dword [ebp - 0x40], 0
lea eax, [eax + ecx*4]
mov dword [ebp - 0x9c], eax
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x60], ecx
mov eax, dword [ebx + 0x50]
mov ecx, dword [ebp - 0xac]
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x4ab335
mov dword [ebp - 0x8c], eax
jmp 0x4ab398
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x19], 0
mov ecx, dword [ebp - 0xa4]
je 0x4ab352
xor eax, eax
cmp byte [ecx + 0x43], 1
jne 0x4ab36c
push eax
jmp 0x4ab35c
xor eax, eax
cmp byte [ecx + 0x43], 1
jne 0x4ab36c
push 1
lea eax, [ebp - 0x40]
push eax
mov esi, ecx
call fcn.004a2604
mov esi, dword [ebp - 0x1c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x8c], eax
cmp ecx, dword [ebp - 0x40]
ja 0x4ab38e
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov dword [ecx + 0x6c], eax
jmp 0x4ab398
mov eax, dword [ebp - 0xac]
and dword [eax + 0x6c], 0
mov ecx, dword [ebp - 0x8c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4ab3af
movzx eax, al
mov dword [ebp - 0x54], eax
xor eax, eax
inc eax
jmp 0x4ab3ba
lea edi, [ebp - 0x54]
call fcn.0049ae3e
movzx eax, al
cmp dword [ebp - 0x54], 0x18003
movzx eax, al
mov dword [ebp - 0x44], eax
ja 0x4ab69a
mov ebx, dword [ebp - 0x98]
imul ebx, ebx, 5
add ebx, 3
cmp ebx, dword [ebp - 0x54]
mov dword [ebp - 0x94], ebx
jle 0x4ab3ed
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x94], ebx
cmp dword [ebp - 0xa8], 0
jne 0x4ab440
cmp dword [ebp - 0x40], ebx
jge 0x4ab440
mov ecx, dword [ebp - 0xa4]
xor eax, eax
and dword [ebp - 0x74], eax
mov word [ebp - 0x68], ax
mov eax, dword [ebp - 0xac]
movzx eax, byte [eax + 0x19]
push eax
push 0
lea eax, [ebp - 0x84]
call fcn.004a6c7c
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne case.0x4aa139.12
mov eax, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x8c], eax
jmp 0x4ab446
mov eax, dword [ebp - 0x8c]
lea ecx, [eax + ebx]
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x44]
add eax, ecx
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x4c], ecx
xor ecx, ecx
cmp dword [ebp - 0x98], ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x90], ecx
jle 0x4ab4f8
jmp 0x4ab476
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x9c]
jae 0x4ab4db
mov edx, dword [ebp - 0x4c]
mov dword [eax + ecx*4], edx
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
mov edx, dword [ebp - 0xa0]
cmp al, 0x80
jae 0x4ab4a7
mov ecx, dword [ebp - 0x90]
movzx eax, al
mov dword [edx + ecx*4], eax
xor eax, eax
inc eax
jmp 0x4ab4b8
mov eax, dword [ebp - 0x90]
lea edi, [edx + eax*4]
call fcn.0049ae3e
movzx eax, al
mov ecx, dword [ebp - 0x90]
movzx eax, al
add dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + ecx*4]
call fcn.004a883d
add dword [ebp - 0x4c], eax
adc dword [ebp - 0x48], 0
jmp 0x4ab4e5
and dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x90]
inc ecx
cmp ecx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
jl 0x4ab473
lea eax, [ebp - 0x84]
push eax
call fcn.004a652a
mov edx, dword [ebp - 0x5c]
xor eax, eax
inc eax
pop ecx
mov word [ebp - 0x68], ax
cmp edx, dword [ebp - 0x58]
ja 0x4ab69a
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
cmp dword [ebp - 0x48], ecx
ja 0x4ab69a
jb 0x4ab534
cmp dword [ebp - 0x4c], eax
ja 0x4ab69a
cmp edx, dword [ebp - 0x58]
jne 0x4ab54b
cmp dword [ebp - 0x4c], eax
jne 0x4ab69a
cmp dword [ebp - 0x48], ecx
jne 0x4ab69a
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xb0]
mov edx, dword [ebp - 0x9c]
shl ecx, 2
cmp dword [ecx + edx], 0
je 0x4ab633
cmp dword [ebp - 0xa8], 0
je 0x4ab5a1
mov eax, dword [ebp - 0x88]
call fcn.004a64d8
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xa0]
shl eax, 2
push dword [eax + ecx]
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [eax + ecx]
add ecx, dword [ebp - 0xa8]
jmp 0x4ab616
mov eax, dword [ecx + eax]
call fcn.004a883d
mov ebx, dword [ebp - 0x88]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x84]
call fcn.004a693c
mov eax, dword [ebp - 0xac]
movzx eax, byte [eax + 0x19]
mov ecx, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0x94]
push eax
mov eax, dword [ebp - 0x9c]
push dword [eax + ecx*4]
mov ecx, dword [ebp - 0xa4]
lea eax, [ebp - 0x84]
call fcn.004a6c7c
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne case.0x4aa139.12
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x8c], ecx
push dword [eax + edx*4]
mov esi, dword [ebp - 0x88]
call fcn.004a88e2
mov eax, dword [ebp - 0x88]
pop ecx
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x1f], cl
jmp 0x4ab64e
cmp byte [esi + 1], 0xf8
jne 0x4ab64e
mov ebx, dword [ebp - 0x88]
push 0x800
push dword [esi + 0x10]
call fcn.004a689a
pop ecx
pop ecx
cmp dword [ebp - 0x60], 0
je 0x4ab68a
mov eax, dword [ebp - 0x88]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0x88]
mov ecx, 0x200
or word [eax + 0x1c], cx
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x70]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x88]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x88]
call fcn.004a630d
jmp 0x4ad8e2
mov dword [ebp - 8], 0xb
jmp case.0x4aa139.12
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xc4], eax
mov ecx, dword [esi + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
mov dword [ebp - 0xc0], ecx
mov eax, dword [esi + 8]
imul eax, eax, 0x28
lea eax, [eax + ecx - 0x28]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ecx
cmp ecx, eax
ja case.0x4aa139.12
jmp 0x4ab6e4
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xb8]
mov eax, 0x4000
test word [edx + 0x1c], ax
je 0x4ab702
mov eax, edx
call fcn.004a6368
mov ecx, dword [ebp - 0xc0]
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0xb8]
sub eax, ecx
cdq
push 0x28
pop ecx
idiv ecx
mov ecx, dword [ebp - 0xc4]
movzx eax, byte [eax + ecx]
push eax
mov eax, dword [ebp - 0xb8]
call fcn.004a9f51
add dword [ebp - 0xb8], 0x28
mov eax, dword [ebp - 0xb8]
pop ecx
pop ecx
cmp eax, dword [ebp - 0xbc]
jbe 0x4ab6de
jmp case.0x4aa139.12
xor eax, eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x90], eax
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov ecx, dword [esi + 0x10]
mov edi, eax
mov dword [ebp - 0x8c], ecx
movzx ecx, byte [ebx + 0x6f]
mov dword [ebp - 0x98], edi
mov eax, dword [esi + 8]
mov dword [ebp - 0x90], eax
imul eax, eax, 0x28
lea eax, [eax + edi - 0x28]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x88], ecx
cmp edi, eax
jmp 0x4ab873
cmp dword [ebp - 0x8c], 0
je 0x4ab7ec
push dword [ebp - 0xc8]
mov eax, edi
sub eax, dword [ebp - 0x98]
push 0x28
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x8c]
movzx eax, byte [eax + ecx]
push eax
mov eax, edi
call fcn.004a9f51
mov edi, dword [ebp - 0xc0]
pop ecx
pop ecx
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4ab80a
cmp dword [edi + 0x18], 0
jle 0x4ab80a
mov eax, edi
call fcn.004a6368
mov edi, dword [ebp - 0xc0]
push dword [ebp - 0x88]
mov edx, edi
call fcn.004a8777
pop ecx
mov dword [ebp - 0x9c], eax
call fcn.004a883d
mov dword [ebp - 0x80], eax
cdq
add dword [ebp - 0xbc], eax
push 0
push dword [ebp - 0x9c]
adc dword [ebp - 0xb8], edx
call fcn.0049aea0
add dword [ebp - 0xb4], eax
mov eax, 0x4000
pop ecx
pop ecx
test word [edi + 0x1c], ax
je 0x4ab85d
mov eax, dword [edi]
add dword [ebp - 0xa4], eax
jmp 0x4ab86a
cmp dword [ebp - 0x80], 0
je 0x4ab86a
and dword [ebp - 0xa4], 0
add edi, 0x28
cmp edi, dword [ebp - 0x94]
mov dword [ebp - 0xc0], edi
jbe 0x4ab7b5
mov eax, dword [ebp - 0xb4]
cdq
push edx
push eax
call fcn.0049aea0
mov edi, eax
add dword [ebp - 0xb4], edi
mov eax, dword [ebp - 0xb4]
cdq
push edx
push eax
mov dword [ebp - 0xa0], edi
call fcn.0049aea0
add esp, 0x10
cmp edi, eax
jge 0x4ab8b6
inc dword [ebp - 0xb4]
mov eax, dword [ebp - 0xb4]
cdq
mov edi, eax
mov eax, dword [ebp - 0xa4]
mov ecx, edx
cdq
sub edi, eax
mov eax, dword [ebp - 0xc]
sbb ecx, edx
add edi, dword [ebp - 0xbc]
adc ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x4aab31
jl 0x4ab8fd
cmp edi, eax
ja 0x4aab31
mov esi, dword [esi + 0xc]
imul esi, esi, 0x28
add esi, dword [ebx + 0x4c]
mov eax, edi
push 0
mov edi, esi
mov dword [ebp - 0x14], esi
call fcn.004a6248
pop ecx
test eax, eax
jne 0x4aa488
mov ecx, dword [ebp - 0xb4]
mov eax, dword [esi + 0x14]
mov edi, 0x80
mov dword [ebp - 0xc4], eax
cmp ecx, edi
jae 0x4ab93c
mov byte [eax], cl
xor eax, eax
inc eax
jmp 0x4ab941
call fcn.0049ac7f
movzx eax, al
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xc0], eax
jmp 0x4ab9ad
push dword [ebp - 0x88]
mov edx, dword [ebp - 0xc0]
call fcn.004a8777
mov edx, dword [ebp - 0x84]
pop ecx
mov ecx, eax
mov dword [ebp - 0x9c], ecx
cmp ecx, edi
jae 0x4ab98a
mov ecx, dword [ebp - 0xc4]
mov byte [edx + ecx], al
xor eax, eax
inc eax
jmp 0x4ab997
mov eax, dword [ebp - 0xc4]
add eax, edx
call fcn.0049ac7f
movzx eax, al
add dword [ebp - 0x84], eax
add dword [ebp - 0xc0], 0x28
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0x94]
jbe 0x4ab958
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xc0], eax
jmp 0x4aba01
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0xac]
push dword [ebp - 0x88]
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0xc4]
lea ebx, [eax + ecx]
mov eax, dword [ebp - 0xc0]
call fcn.004a8850
add dword [ebp - 0x84], eax
add dword [ebp - 0xc0], 0x28
mov eax, dword [ebp - 0xc0]
pop ecx
pop ecx
cmp eax, dword [ebp - 0x94]
jbe 0x4ab9c3
mov eax, dword [ebp - 0xac]
and dword [esi + 0x20], 0
mov dword [esi + 0x18], eax
mov eax, 0x410
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x4aba34
mov dword [esi], eax
mov eax, 0x4410
mov word [esi + 0x1c], ax
mov byte [esi + 0x1f], 1
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x4aba64
lea ecx, [ebp - 0xc4]
push ecx
call fcn.004a5041
pop ecx
mov dword [ebp - 8], eax
jmp 0x4aba72
and dword [ebp - 0xc4], 0
and dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0x14]
push 4
pop ecx
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0xc4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc0]
jmp 0x4aa236
mov ecx, dword [ebp - 0xc]
cmp byte [ecx + 0x1c], 0
je 0x4abaa5
cmp dword [ecx + 0x88], 1
jle case.0x4aa139.12
mov eax, dword [esi + 4]
mov edx, dword [ecx + 8]
shl eax, 4
mov edi, dword [eax + edx + 4]
add ebx, 0xc8
cmp dword [ebx], 0
mov dword [ebp - 0xc4], edi
jne 0x4abadd
lea eax, [ecx + 0x1c8]
inc dword [eax]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x1c4]
mov edi, dword [ebp - 0xc4]
add ecx, eax
mov dword [ebx], ecx
mov eax, dword [ebx]
mov esi, dword [edi + 4]
mov dword [ebp - 0x1c], eax
mov ebx, edi
call fcn.0049fe4c
cmp byte [ebx + 8], 2
jne 0x4abb07
cmp byte [esi + 0x10], 0
jne 0x4abb07
push dword [ebp - 0x1c]
mov esi, dword [esi]
call fcn.0049fb59
pop ecx
mov esi, eax
jmp 0x4abb0a
push 2
pop esi
mov eax, ebx
call fcn.0049feb0
mov dword [ebp - 8], esi
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [esi + 0x10]
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0xc0], ecx
test eax, eax
jne 0x4abbd6
cmp dword [esi + 0x8c], eax
jle 0x4abb58
push str.cannot_open_savepoint___SQL_statements_in_progress
push esi
lea edi, [ebx + 0x68]
call fcn.00499118
mov dword [ebp - 8], 5
jmp 0x4ae4f0
call fcn.0049a63b
mov dword [ebp - 0xbc], eax
add eax, 9
push eax
call fcn.00498fad
pop ecx
mov dword [ebp - 0xb8], eax
test eax, eax
je case.0x4aa139.12
lea ecx, [eax + 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0xbc]
inc eax
push eax
push dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb8]
push dword [eax]
call fcn.004eff60
mov eax, esi
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x4abbb3
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1cc], 1
jmp 0x4abbb9
inc dword [eax + 0x1c4]
mov edx, dword [ebp - 0xb8]
add eax, 0x1c0
mov ecx, dword [eax]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0xb8]
mov dword [eax], ecx
jmp case.0x4aa139.12
and dword [ebp - 0xac], 0
mov edi, dword [esi + 0x1c0]
mov dword [ebp - 0xb4], edi
test edi, edi
je 0x4abc17
mov edx, dword [ebp - 0xc0]
mov ecx, dword [edi]
call fcn.0049a765
test eax, eax
je 0x4abc11
inc dword [ebp - 0xac]
mov edi, dword [edi + 4]
mov dword [ebp - 0xb4], edi
test edi, edi
jne 0x4abbed
xor eax, eax
cmp edi, eax
jne 0x4abc3a
push dword [ebp - 0xc0]
lea edi, [ebx + 0x68]
push str.no_such_savepoint:__s
push esi
call fcn.00499118
add esp, 0xc
mov dword [ebp - 8], 1
jmp case.0x4aa139.12
cmp dword [esi + 0x8c], eax
jg 0x4abda4
cmp dword [ebp - 0xc4], 2
jne 0x4abc5c
cmp dword [esi + 0x88], 1
jg 0x4abdad
cmp dword [edi + 4], eax
jne 0x4abca7
cmp byte [esi + 0x1cc], 0
je 0x4abca7
xor ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0xc4], ecx
jne 0x4abcaa
push ebx
mov byte [esi + 0x1c], cl
call fcn.004a830f
pop ecx
push 5
pop ecx
cmp eax, ecx
je 0x4ae525
mov byte [esi + 0x1cc], 0
mov eax, dword [ebx + 0x64]
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 8], eax
mov ebx, esi
jmp 0x4abd5f
mov dword [ebp - 0x1c], eax
mov ecx, dword [esi + 0x1c4]
sub ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
dec ecx
mov dword [ebp - 0xac], ecx
cmp dword [esi + 4], eax
jle 0x4abd0f
jmp 0x4abcd0
mov ecx, dword [ebp - 0xac]
push ecx
push dword [ebp - 0xc4]
mov ecx, esi
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
call fcn.004a20b1
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov eax, dword [ebp - 0xa8]
inc eax
mov ecx, esi
mov dword [ebp - 0xa8], eax
cmp eax, dword [ecx + 4]
jl 0x4abcca
mov edi, dword [ebp - 0xb4]
cmp dword [ebp - 0xc4], 2
jne 0x4abca0
mov ebx, esi
test byte [ebx + 0xc], 0x10
je 0x4abd5f
mov eax, ebx
call fcn.004a8ee4
xor eax, eax
call fcn.004b50ad
jmp 0x4abd59
mov eax, dword [ebx + 0x1c0]
mov dword [ebp - 0xb0], eax
mov eax, dword [eax + 4]
mov dword [ebx + 0x1c0], eax
push dword [ebp - 0xb0]
push ebx
call fcn.00498e12
dec dword [ebx + 0x1c4]
pop ecx
pop ecx
mov edi, dword [ebp - 0xb4]
cmp dword [ebx + 0x1c0], edi
jne 0x4abd30
cmp dword [ebp - 0xc4], 1
jne case.0x4aa139.12
mov ecx, dword [edi + 4]
mov eax, esi
mov dword [eax + 0x1c0], ecx
push dword [ebp - 0xb4]
push eax
call fcn.00498e12
cmp dword [ebp - 0x1c], 0
pop ecx
pop ecx
jne case.0x4aa139.12
mov eax, esi
dec dword [eax + 0x1c4]
jmp case.0x4aa139.12
cmp dword [ebp - 0xc4], 2
jne 0x4abdb4
mov eax, str.rollback
jmp 0x4abdb9
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
push esi
lea edi, [ebx + 0x68]
call fcn.00499118
add esp, 0xc
mov dword [ebp - 8], 5
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0xc4], eax
mov esi, dword [esi + 8]
mov dword [ebp - 0xc0], esi
test eax, eax
je 0x4abe16
cmp byte [edi + 0x1c], 0
jne 0x4abe16
xor ecx, ecx
inc ecx
mov dword [ebp - 0xbc], ecx
test esi, esi
je 0x4abe34
cmp dword [edi + 0x88], ecx
jle 0x4abe1d
push str.cannot_rollback_transaction___SQL_statements_in_progress
push edi
jmp 0x4abb44
and dword [ebp - 0xbc], 0
movzx ecx, byte [edi + 0x1c]
cmp eax, ecx
jne 0x4ae539
test eax, eax
jne 0x4abe44
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4abe52
cmp dword [edi + 0x8c], 0
jle 0x4abe1d
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4abe10
mov eax, str.cannot_rollback___no_transaction_is_active
test esi, esi
jne 0x4abe52
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push dword [ebp - 0xc]
lea edi, [ebx + 0x68]
call fcn.00499118
mov dword [ebp - 8], 1
jmp 0x4ae4f0
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4aa139.12
push dword [esi + 8]
call fcn.004a1725
pop ecx
push 5
pop esi
mov dword [ebp - 8], eax
cmp eax, esi
je 0x4ae593
test eax, eax
je case.0x4aa139.12
cmp eax, 8
jne 0x4ae5b7
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov dword [ebp - 0xc0], eax
mov esi, dword [esi + 0xc]
lea ecx, [ebp - 0xc4]
push ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0xbc], esi
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push esi
call fcn.004a4fc5
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
jmp 0x4ab09d
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0xd0]
shl eax, 4
add eax, dword [ecx + 8]
mov dword [ebp - 0xc4], eax
mov eax, edi
call fcn.004a66c3
push dword [edi]
mov eax, dword [ebp - 0xc4]
push dword [esi + 8]
mov ebx, dword [eax + 4]
call fcn.004a4ff3
mov dword [ebp - 8], eax
mov eax, dword [esi + 8]
pop ecx
pop ecx
cmp eax, 1
jne 0x4abf46
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0xc]
mov ecx, dword [edi]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
or dword [eax + 0xc], 0x10
jmp 0x4abf59
cmp eax, 2
jne 0x4abf59
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0xc]
mov cl, byte [edi]
mov byte [eax + 0x38], cl
cmp dword [esi + 4], 1
jne case.0x4aa139.12
mov eax, dword [ebp - 0xc]
call fcn.004a8ee4
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x4abf9c
lea ecx, [ebp - 0xc4]
push ecx
push 1
call fcn.004a4fc5
pop ecx
pop ecx
jmp 0x4abfa3
and dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
cmp eax, dword [esi + 8]
je case.0x4aa139.12
push dword [ebx + 0x68]
mov edi, dword [ebp - 0xc]
push edi
call fcn.00498e12
push str.database_schema_has_changed
mov edx, edi
call fcn.004990ab
mov dword [ebx + 0x68], eax
mov esi, dword [esi + 4]
mov ecx, dword [edi + 8]
mov eax, esi
shl eax, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
add esp, 0xc
cmp eax, dword [ebp - 0xc4]
je 0x4abff2
mov eax, esi
mov ebx, edi
call fcn.004b50ad
mov eax, edi
call fcn.004a8ee4
mov dword [ebp - 8], 0x11
jmp case.0x4aa139.12
mov edx, dword [ebp - 0xc]
xor edi, edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], edi
mov ecx, dword [esi + 8]
mov dword [ebp - 0xbc], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xb8], eax
shl eax, 4
add eax, dword [edx + 8]
mov dword [ebp - 0xa8], eax
mov edx, dword [eax + 4]
mov dword [ebp - 0xb0], edx
cmp byte [esi], 0xa
jne 0x4ac05c
mov dword [ebp - 0xb4], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x38]
cmp al, byte [ebx + 0x6f]
jae 0x4ac063
mov byte [ebx + 0x6f], al
jmp 0x4ac063
and dword [ebp - 0xb4], 0
cmp byte [esi + 3], 0
je 0x4ac095
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
mov edi, ecx
mov eax, edi
mov dword [ebp - 0xcc], edi
call fcn.004a66c3
mov edi, dword [edi]
cmp edi, 2
mov dword [ebp - 0xbc], edi
jl 0x4ae59b
mov edi, dword [ebp - 0xc4]
mov al, byte [esi + 1]
cmp al, 0xfa
jne 0x4ac0c0
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov cl, byte [ecx + 0x39]
mov byte [eax + 4], cl
mov eax, dword [ebp - 0xc0]
movzx edi, word [eax + 6]
inc edi
jmp 0x4ac0c7
cmp al, 0xf2
jne 0x4ac0cd
mov edi, dword [esi + 0x10]
mov dword [ebp - 0xc4], edi
mov edx, dword [esi + 4]
push 1
push dword [ebp - 0xb8]
push edi
push ebx
call fcn.004a9e15
add esp, 0x10
mov dword [ebp - 0xac], eax
test eax, eax
je 0x4aa488
mov byte [eax + 0x14], 1
push dword [ebp - 0xc0]
mov eax, dword [ebp - 0xac]
push dword [ebp - 0xb4]
mov eax, dword [eax]
push dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xb0]
call fcn.004a20f7
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xc0]
add esp, 0xc
mov dword [ebp - 8], eax
mov dword [ecx + 0x40], edx
cmp eax, 0x10
jne 0x4ac140
mov eax, dword [ebp - 0xac]
and dword [eax], 0
and dword [ebp - 8], 0
cmp byte [esi + 1], 0xfa
mov ecx, dword [ebp - 0xac]
setne al
mov byte [ecx + 0x18], al
mov eax, dword [ebp - 0xac]
cmp byte [eax + 0x18], 0
sete cl
mov byte [eax + 0x19], cl
jmp case.0x4aa139.12
mov edx, dword [esi + 4]
push 1
push 0xffffffffffffffff
push dword [esi + 8]
push ebx
call fcn.004a9e15
add esp, 0x10
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x4aa488
mov ecx, dword [ebp - 0xc]
mov byte [eax + 0x14], 1
mov edi, dword [ebp - 0xc4]
push 0x1f4
add edi, 0x28
push 1
mov edx, 0x41e
xor eax, eax
call fcn.004cc6d5
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ac270
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0x28]
push 1
call fcn.004a1725
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ac270
cmp dword [esi + 0x10], eax
je 0x4ac24a
lea eax, [ebp - 0xe0]
push 2
push eax
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0x28]
call fcn.004a4cad
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ac23e
push dword [esi + 0x10]
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx]
mov ebx, dword [ecx + 0x28]
push 1
push dword [ebp - 0xe0]
call fcn.004a20f7
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xc4]
mov ecx, dword [ecx + 0x40]
mov al, byte [eax + 0x39]
add esp, 0xc
mov byte [ecx + 4], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x18], 0
jmp 0x4ac270
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx]
mov ebx, dword [ecx + 0x28]
push 0
push 1
push 1
call fcn.004a20f7
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc4]
add esp, 0xc
mov byte [eax + 0x18], 1
mov eax, dword [ebp - 0xc4]
jmp 0x4ac156
mov edx, dword [esi + 4]
push 0
push 0xffffffffffffffff
push dword [esi + 0xc]
push ebx
call fcn.004a9e15
add esp, 0x10
mov dword [ebp - 0xc4], eax
test eax, eax
je 0x4aa488
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x15], 1
mov al, byte [esi + 8]
mov ecx, dword [ebp - 0xc4]
mov byte [ecx + 0x16], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x18], 1
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x19], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov esi, dword [ecx + eax*4]
mov edi, ebx
call fcn.004a7cbd
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 4]
mov ecx, dword [edi + 0x34]
and dword [ecx + eax*4], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xbc], eax
cmp dword [eax], 0
je 0x4aa151
movzx ecx, byte [esi]
mov dword [ebp - 0xc0], ecx
mov byte [eax + 0x14], 0
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0x18], 0
je 0x4ac4f5
call fcn.004a9ed6
mov esi, edi
call fcn.004a659d
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x90], edx
mov byte [eax + 0x11], 0
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4ac487
test al, 8
jne 0x4ac369
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
jmp 0x4aa17c
xor ebx, ebx
cmp dword [ebp - 0x94], ebx
jne 0x4ac436
mov eax, SysReAllocStringLen
cmp dword [ebp - 0x90], eax
jne 0x4ac436
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xec], ebx
fild qword [ebp - 0xec]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
je 0x4ac3b4
fldz
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x4ac436
fldz
mov dword [ebp - 0xc4], 1
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x4ac3f1
cmp dword [ebp - 0xc0], 0x7b
je 0x4ac3dc
cmp dword [ebp - 0xc0], 0x6d
jne 0x4ac35e
mov eax, dword [ebp - 0xbc]
mov edi, dword [eax]
lea esi, [ebp - 0xc4]
call fcn.004a286e
jmp 0x4ac41a
cmp dword [ebp - 0xc0], 0x46
je 0x4ac407
cmp dword [ebp - 0xc0], 0x37
jne 0x4ac35e
mov eax, dword [ebp - 0xbc]
mov esi, dword [eax]
lea edi, [ebp - 0xc4]
call fcn.004a2893
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x4ae5b4
cmp dword [ebp - 0xc4], ebx
je case.0x4aa139.12
jmp 0x4ac35e
cmp dword [ebp - 0xc0], 0x46
je 0x4ac468
cmp dword [ebp - 0xc0], 0x6d
je 0x4ac468
fild qword [ebp - 0x94]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x4ac489
add dword [ebp - 0x94], 0xffffffff
adc dword [ebp - 0x90], 0xffffffff
jmp 0x4ac489
fild qword [ebp - 0x94]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x4ac489
add dword [ebp - 0x94], 1
adc dword [ebp - 0x90], ebx
jmp 0x4ac489
xor ebx, ebx
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push ebx
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push dword [eax]
call fcn.004a28d0
add esp, 0x18
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x4ae5b4
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0xc4], ebx
jne 0x4ac578
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x11], 1
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0xbc]
mov dword [ecx + 0xc], eax
jmp 0x4ac578
cmp dword [ebp - 0xc0], 0x7b
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x9c], ecx
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xb4], ecx
mov cx, word [ebp - 0x9c]
mov word [ebp - 0xb0], cx
je 0x4ac52b
cmp dword [ebp - 0xc0], 0x37
je 0x4ac52b
xor ecx, ecx
jmp 0x4ac52e
push 8
pop ecx
mov word [ebp - 0xae], cx
mov ecx, dword [esi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
xor edi, edi
mov dword [ebp - 0xa4], ecx
lea ecx, [ebp - 0xc4]
push ecx
push edi
push edi
push edi
lea ecx, [ebp - 0xb4]
push ecx
push dword [eax]
call fcn.004a28d0
add esp, 0x18
mov dword [ebp - 8], eax
cmp eax, edi
jne 0x4ae5b4
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x11], 0
xor ebx, ebx
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x17], 0
mov eax, dword [ebp - 0xbc]
mov dword [eax + 0x5c], ebx
mov eax, dword [ebp - 0xc0]
cmp eax, 0x6d
je 0x4ac5d9
cmp eax, 0x7b
je 0x4ac5d9
cmp dword [ebp - 0xc4], ebx
jg 0x4ac5c3
jne 0x4ac5aa
cmp eax, 0x46
je 0x4ac5c3
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
xor ecx, ecx
cmp byte [eax + 0x43], 1
setne cl
mov dword [ebp - 0xc4], ecx
jmp 0x4ac61f
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004a2caa
jmp 0x4ac607
cmp dword [ebp - 0xc4], ebx
jl 0x4ac5f3
jne 0x4ac5e8
cmp eax, 0x7b
je 0x4ac5f3
mov dword [ebp - 0xc4], ebx
jmp case.0x4aa139.12
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xbc]
push dword [eax]
call fcn.004a2b9b
pop ecx
mov dword [ebp - 8], eax
pop ecx
cmp eax, ebx
jne 0x4ae5b4
mov eax, dword [ebp - 0xbc]
xor ebx, ebx
mov byte [eax + 0x11], bl
cmp dword [ebp - 0xc4], ebx
jmp 0x4aadde
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
cmp dword [eax], 0
je case.0x4aa139.12
mov esi, dword [ebp - 0xcc]
mov byte [eax + 0x14], 0
call fcn.004a659d
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x17], 1
jmp case.0x4aa139.12
and dword [ebp - 0xc4], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xc0], ecx
cmp dword [ecx], 0
je 0x4ac74e
mov eax, 0x4000
test word [edi + 0x1c], ax
je 0x4ac6b3
mov eax, edi
call fcn.004a6368
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x14]
mov ebx, dword [ecx + 0x40]
push dword [eax + 0x18]
mov edx, 0x97
lea eax, [ebp - 0xb4]
call fcn.004a8a86
xor edi, edi
pop ecx
pop ecx
mov dword [ebp - 0xb8], eax
cmp eax, edi
je 0x4aa488
cmp byte [esi], 0x80
jne 0x4ac6f4
or word [eax + 6], 0x10
mov eax, dword [ebp - 0xb8]
lea ecx, [ebp - 0xbc]
push ecx
push edi
push edi
push edi
push eax
mov eax, dword [ebp - 0xc0]
push dword [eax]
call fcn.004a28d0
mov esi, dword [ebp - 0xb8]
add esp, 0x18
mov dword [ebp - 8], eax
call fcn.004a8b9f
cmp dword [ebp - 8], edi
jne case.0x4aa139.12
mov esi, dword [ebp - 0x1c]
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0xbc], eax
sete cl
mov dword [ebp - 0xc4], ecx
mov ecx, dword [ebp - 0xc0]
mov byte [ecx + 0x17], al
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 0x5c], eax
cmp byte [esi], 0x80
je 0x4ab162
cmp dword [ebp - 0xc4], 0
jmp 0x4ab181
mov eax, dword [esi + 0x10]
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
xor edx, edx
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc0], eax
and dword [eax + 0x58], 0
mov eax, dword [ebp - 0xc0]
and dword [eax + 0x5c], 0
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
mov ecx, dword [eax + 0x40]
mov cx, word [ecx + 6]
mov word [ebp - 0xc4], dx
cmp dx, cx
mov edx, dword [ebp - 0xb4]
mov word [ebp - 0xb8], cx
jae 0x4ac7f0
movzx ebx, word [ebp - 0xc4]
imul ebx, ebx, 0x28
test byte [ebx + edx + 0x1c], 1
jne 0x4ac7e2
inc word [ebp - 0xc4]
cmp word [ebp - 0xc4], cx
jb 0x4ac7bf
jmp 0x4ac7f0
mov ecx, dword [esi + 8]
dec ecx
and dword [ebp - 0xbc], 0
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0xbc], 0
je case.0x4aa139.12
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xb8]
inc eax
mov word [ebp - 0xa8], ax
push 0x20
pop eax
mov word [ebp - 0xa6], ax
mov eax, edi
mov dword [ebp - 0x9c], edx
call fcn.004a66c3
mov eax, dword [edi]
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0xc0]
add eax, 0x58
push eax
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0xac]
push eax
push dword [ebp - 0xbc]
call fcn.004a28d0
add esp, 0x18
test byte [ebp - 0xa6], 0x20
mov dword [ebp - 8], eax
jne 0x4aa151
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x94]
jne 0x4ac890
mov ecx, dword [ebp - 0xa0]
cmp ecx, dword [ebp - 0x90]
je 0x4aa151
mov dword [edi], eax
mov eax, dword [ebp - 0xa0]
mov dword [edi + 4], eax
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax]
xor ebx, ebx
mov dword [ebp - 0xc0], ecx
cmp ecx, ebx
je 0x4ac957
mov dword [ebp - 0xbc], ebx
mov eax, dword [edi]
lea edx, [ebp - 0xbc]
push edx
push ebx
mov dword [ebp - 0xb4], eax
mov ecx, dword [edi + 4]
push ecx
push eax
push ebx
push dword [ebp - 0xc0]
mov dword [ebp - 0xb0], ecx
call fcn.004a28d0
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov dword [ecx + 8], eax
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0xc], eax
mov ecx, dword [ebp - 0xc4]
add esp, 0x18
cmp dword [ebp - 0xbc], ebx
sete al
mov byte [ecx + 0x11], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x14], bl
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x5c], ebx
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x17], bl
mov eax, dword [ebp - 0xbc]
cmp eax, ebx
je 0x4ac949
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x58], eax
jmp case.0x4aa139.12
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x18], esi
mov dword [eax + 0x58], ebx
jmp case.0x4aa139.12
mov ecx, dword [ebx + 0x34]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov edx, dword [eax + 0x48]
mov ecx, dword [ebp - 0x14]
mov dword [ecx], edx
mov eax, dword [eax + 0x4c]
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov edx, dword [ebx + 0x34]
mov eax, dword [edx + eax*4]
add dword [eax + 0x48], 1
adc dword [eax + 0x4c], 0
jmp 0x4ab0a3
mov edx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb8], eax
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [ebp - 0xbc], ecx
cmp dword [ecx], eax
je 0x4acc1b
mov dword [ebp - 0xb4], eax
cmp byte [ecx + 0x13], al
jne 0x4acb1b
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0xc4], edx
mov eax, dword [eax + 0x1c]
or edx, eax
mov dword [ebp - 0xc0], eax
jne 0x4aca5f
mov esi, dword [ecx]
lea edi, [ebp - 0xb8]
call fcn.004a2893
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
cmp dword [ebp - 0xb8], eax
je 0x4aca17
and dword [ebp - 0xc0], eax
mov dword [ebp - 0xc4], 1
jmp 0x4aca5c
mov eax, dword [ebp - 0xbc]
mov eax, dword [eax]
lea edi, [ebp - 0xc4]
call fcn.004a224c
cmp dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 8], eax
jne 0x4aca4e
cmp dword [ebp - 0xc0], 0x7fffffff
jne 0x4aca4e
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x13], 1
jmp 0x4aca5c
add dword [ebp - 0xc4], 1
adc dword [ebp - 0xc0], 0
mov esi, dword [ebp - 0x1c]
mov esi, dword [esi + 0xc]
test esi, esi
je 0x4acae2
imul esi, esi, 0x28
add esi, dword [ebx + 0x4c]
mov eax, esi
mov dword [ebp - 0xb0], esi
call fcn.004a66c3
mov edx, dword [ebp - 0xb0]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x4aca95
cmp ecx, 0x7fffffff
je 0x4ae5a4
mov esi, dword [ebp - 0xbc]
cmp byte [esi + 0x13], 0
jne 0x4ae5a4
mov esi, dword [ebp - 0xc0]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x4acacb
jl 0x4acabf
cmp dword [ebp - 0xc4], eax
jae 0x4acacb
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], ecx
mov eax, dword [ebp - 0xc4]
mov dword [edx], eax
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xb0]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0xc0]
cmp ecx, 0x7fffffff
jg 0x4acb05
mov eax, dword [ebp - 0xc4]
jl 0x4acafd
cmp eax, 0xffffffff
jae 0x4acb05
add eax, 1
adc ecx, 0
jmp 0x4acb09
xor eax, eax
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
call fcn.004a2177
add esp, 8
mov eax, dword [ebp - 0xbc]
cmp byte [eax + 0x13], 0
je 0x4acbfd
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + 0x34]
and dword [ebp - 0xb4], 0
mov dword [ebp - 0xc0], eax
xor esi, esi
cmp dword [ebp - 0xb4], esi
jne 0x4acb7d
mov eax, dword [ebp - 0xc4]
and eax, 0xffffff
xor ecx, ecx
cmp eax, dword [ebp - 0xc4]
jne 0x4acb7d
cmp ecx, dword [ebp - 0xc0]
jne 0x4acb7d
add dword [ebp - 0xc4], 1
adc dword [ebp - 0xc0], esi
jmp 0x4acba6
lea eax, [ebp - 0xc4]
push eax
push 8
call fcn.0049a086
cmp dword [ebp - 0xb4], 5
pop ecx
pop ecx
jge 0x4acba6
and dword [ebp - 0xc4], 0xffffff
mov dword [ebp - 0xc0], esi
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xbc]
push esi
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push esi
push dword [eax]
call fcn.004a28d0
add esp, 0x18
inc dword [ebp - 0xb4]
cmp dword [ebp - 0xb4], 0x64
mov dword [ebp - 8], eax
jge 0x4acbed
cmp eax, esi
jne 0x4acbfd
cmp dword [ebp - 0xb8], esi
je 0x4acb49
cmp eax, esi
jne 0x4acbfd
cmp dword [ebp - 0xb8], esi
je 0x4ae5ad
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xbc]
mov byte [eax + 0x17], 0
mov eax, dword [ebp - 0xbc]
and dword [eax + 0x5c], 0
mov eax, dword [ebp - 0x14]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
jmp 0x4aba78
mov ecx, dword [esi + 8]
mov edx, dword [ebx + 0x4c]
imul ecx, ecx, 0x28
mov edi, dword [ebx + 0x34]
add ecx, edx
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, edx
mov dword [ebp - 0xc0], eax
mov edx, dword [esi + 4]
mov edx, dword [edi + edx*4]
mov dword [ebp - 0xb4], edx
mov edi, dword [eax]
mov dword [ebp - 0xbc], edi
mov edi, dword [eax + 4]
mov dword [ebp - 0xb8], edi
test byte [esi + 3], 1
je 0x4acc7b
inc dword [ebx + 0x74]
test byte [esi + 3], 2
mov edi, dword [ebp - 0xc]
je 0x4acc9b
mov ecx, dword [eax]
mov dword [edi + 0x30], ecx
mov eax, dword [eax + 4]
mov dword [edi + 0x34], eax
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc4]
xor ebx, ebx
test byte [ecx + 0x1c], 1
je 0x4accbb
mov dword [ecx + 0x14], ebx
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x18], ebx
mov edx, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc4]
cmp byte [edx + 0x15], 0
je 0x4acdc5
cmp byte [edx + 0x16], 0
jne 0x4accdc
push dword [edx + 0x30]
push edi
call fcn.00498e12
mov edx, dword [ebp - 0xb4]
pop ecx
pop ecx
mov eax, dword [ebp - 0xbc]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x3c], eax
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x2c], eax
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x16], 0
mov ecx, dword [ebp - 0xc4]
jne 0x4acd80
mov edx, dword [ecx + 0x14]
cmp edx, dword [ecx + 0x24]
je 0x4acd80
mov eax, dword [eax + 0x2c]
inc eax
inc eax
push eax
call fcn.00498b94
pop ecx
mov ecx, dword [ebp - 0xb4]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x30]
cmp ecx, ebx
je 0x4aa488
push dword [eax + 0x2c]
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x14]
push ecx
call fcn.004eff60
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x2c]
add esp, 0xc
mov byte [ecx + eax + 1], 0
xor ebx, ebx
jmp 0x4acdb9
mov ecx, dword [ecx + 0x14]
mov dword [eax + 0x30], ecx
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0x16], 0
jne 0x4acdb9
mov eax, dword [ebp - 0xc4]
mov ecx, 0xfbff
and word [eax + 0x1c], cx
mov eax, dword [ebp - 0xc4]
mov ecx, 0x1000
or word [eax + 0x1c], cx
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x24], ebx
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x14], 0
jmp 0x4ace42
test byte [esi + 3], 0x10
je 0x4acdd6
mov eax, dword [edx + 0x58]
mov dword [ebp - 0xac], eax
jmp 0x4acddc
mov dword [ebp - 0xac], ebx
mov eax, 0x4000
test word [ecx + 0x1c], ax
je 0x4acdf1
mov eax, dword [ecx]
mov dword [ebp - 0xb0], eax
jmp 0x4acdf7
mov dword [ebp - 0xb0], ebx
mov ecx, dword [edx]
push ebx
push ebx
call fcn.004a2177
push dword [ebp - 0xac]
movzx eax, byte [esi + 3]
and eax, 8
push eax
push dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc4]
push dword [eax + 0x18]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
push ebx
mov ebx, dword [eax]
call fcn.004a471c
add esp, 0x28
mov dword [ebp - 8], eax
xor ebx, ebx
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x17], 0
mov eax, dword [ebp - 0xb4]
mov dword [eax + 0x5c], ebx
cmp dword [ebp - 8], ebx
jne case.0x4aa139.12
mov eax, dword [ebp - 0xc]
cmp dword [eax + 0xb4], 0
je case.0x4aa139.12
cmp dword [esi + 0x10], 0
je case.0x4aa139.12
mov eax, dword [ebp - 0xb4]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 8]
push dword [ebp - 0xb8]
shl eax, 4
mov edx, dword [eax + edx]
push dword [ebp - 0xbc]
mov dword [ebp - 0xa8], edx
mov edi, dword [esi + 0x10]
mov dword [ebp - 0xa4], edi
mov al, byte [esi + 3]
and al, 4
movzx eax, al
neg eax
sbb eax, eax
push edi
and eax, 5
add eax, 0x12
push edx
push eax
mov dword [ebp - 0xa0], eax
push dword [ecx + 0xb0]
call dword [ecx + 0xb4]
add esp, 0x18
jmp case.0x4aa139.12
mov edx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov ecx, dword [esi + 4]
mov edi, dword [edx + ecx*4]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0xbc], edi
cmp dword [ecx + 0xb4], eax
je 0x4acf20
cmp dword [esi + 0x10], eax
je 0x4acf20
mov eax, dword [edi + 8]
mov dword [ebp - 0xc4], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xc0], eax
call fcn.004a86d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
push eax
push eax
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
call fcn.004a2177
mov eax, dword [ebp - 0xbc]
mov ebx, dword [eax]
add esp, 8
call fcn.004a48e4
mov ecx, dword [ebp - 0xbc]
and dword [ecx + 0x5c], 0
mov dword [ebp - 8], eax
test eax, eax
jne 0x4acfa0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 0xb4]
test edx, edx
je 0x4acfa0
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4acfa0
push dword [ebp - 0xc0]
mov edi, dword [eax + 8]
push dword [ebp - 0xc4]
push ecx
mov ecx, dword [ebp - 0xbc]
mov ecx, dword [ecx + 4]
shl ecx, 4
push dword [ecx + edi]
push 9
push dword [eax + 0xb0]
call edx
add esp, 0x18
test byte [esi + 8], 1
je case.0x4aa139.12
mov eax, dword [ebp + 8]
inc dword [eax + 0x74]
jmp case.0x4aa139.12
cmp dword [esi + 4], 0
je 0x4acfc7
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0xc]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
and dword [ebx + 0x74], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0xc4], edi
mov eax, dword [edi]
mov dword [ebp - 0xc0], eax
call fcn.004a86d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x19], 0
je 0x4ad04f
mov eax, dword [ebp - 0xc0]
lea edi, [ebp - 0xb4]
call fcn.004a224c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x48]
cdq
mov ecx, eax
mov eax, dword [ebp - 0xb0]
cmp eax, edx
jg 0x4aab31
mov eax, dword [ebp - 0xb4]
jl 0x4ad047
cmp eax, ecx
ja 0x4aab31
mov dword [ebp - 0xbc], eax
jmp 0x4ad071
mov edi, dword [ebp - 0xc0]
mov esi, edi
call fcn.004a2224
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0xbc], eax
cmp eax, dword [ecx + 0x48]
ja 0x4aab31
mov edi, dword [ebp - 0x14]
push 0
call fcn.004a6248
pop ecx
test eax, eax
jne 0x4aa488
mov eax, dword [ebp - 0xbc]
mov esi, edi
mov dword [esi + 0x18], eax
mov ax, word [esi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [esi + 0x1c], ax
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x19], 0
je 0x4ad0ca
mov eax, dword [esi + 0x14]
push 0
push eax
push dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc0]
push 0
call fcn.004a235e
jmp 0x4ad0e0
push dword [esi + 0x14]
push dword [ebp - 0xbc]
push 0
push dword [ebp - 0xc0]
call fcn.004a25c9
mov dword [ebp - 8], eax
add esp, 0x10
jmp 0x4aba34
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0xc4], edi
cmp byte [edi + 0x14], 0
jne case.0x4aa139.12
cmp byte [edi + 0x17], 0
je 0x4ad11b
mov eax, dword [edi + 0x20]
mov dword [ebp - 0xbc], eax
mov eax, dword [edi + 0x24]
jmp 0x4ad19e
cmp byte [edi + 0x15], 0
je 0x4ad12f
mov eax, dword [edi + 0x38]
mov dword [ebp - 0xbc], eax
mov eax, dword [edi + 0x3c]
jmp 0x4ad19e
mov eax, dword [edi + 0x50]
test eax, eax
je 0x4ad176
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
mov eax, dword [eax]
lea ecx, [ebp - 0xbc]
push ecx
mov dword [ebp - 0xb0], eax
push dword [edi + 0x50]
call dword [eax + 0x30]
push dword [ebx + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
call fcn.00498e12
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [ebx + 0x68], ecx
and dword [eax + 8], 0
jmp 0x4ad1b6
call fcn.004a86d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov eax, dword [ebp - 0xc4]
cmp byte [eax + 0x11], 0
je 0x4ad1a6
mov ecx, dword [eax + 8]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xb8], eax
jmp 0x4ad1b6
mov eax, dword [eax]
lea edi, [ebp - 0xbc]
call fcn.004a224c
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x14]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb8]
jmp 0x4aac1b
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
mov byte [eax + 0x14], 1
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xc4]
mov esi, dword [eax]
test esi, esi
je case.0x4aa139.12
call fcn.004a021f
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
jne 0x4ad22a
mov dword [ebp - 0xbc], 1
jmp 0x4ad243
lea edi, [ebp - 0xbc]
mov esi, ecx
call fcn.004a2893
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc4]
mov cl, byte [ebp - 0xbc]
mov byte [eax + 0x14], cl
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x17], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xc4]
and dword [eax + 0x5c], 0
mov esi, dword [esi + 8]
test esi, esi
jle case.0x4aa139.12
cmp dword [ebp - 0xbc], 0
je case.0x4aa139.12
jmp 0x4aa154
inc dword [ebx + 0xbc]
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
mov edi, dword [eax]
mov dword [ebp - 0xc0], edi
test edi, edi
je 0x4ad2f2
lea esi, [ebp - 0xbc]
call fcn.004a286e
cmp dword [ebp - 0xbc], 0
mov ecx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 8], eax
sete al
mov byte [ecx + 0x12], al
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x17], 0
mov eax, dword [ebp - 0xc4]
and dword [eax + 0x5c], 0
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x11], 0
mov eax, dword [ebp - 0xc4]
jmp 0x4ad2fc
mov dword [ebp - 0xbc], 1
mov cl, byte [ebp - 0xbc]
mov byte [eax + 0x14], cl
cmp dword [ebp - 0xbc], 0
jmp 0x4aadde
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x4ae5f3
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4aa139.12
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
jne 0x4ad34e
mov byte [eax + 0x14], 1
jmp case.0x4aa139.12
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xbc], 1
cmp byte [esi], 0x6a
push eax
push ecx
jne 0x4ad36c
call fcn.004a2b9b
jmp 0x4ad371
call fcn.004a2caa
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc4]
pop ecx
mov cl, byte [ebp - 0xbc]
mov byte [eax + 0x14], cl
mov eax, dword [ebp - 0xc4]
and dword [eax + 0x5c], 0
cmp dword [ebp - 0xbc], 0
jne 0x4ad3b2
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 0x18], eax
mov al, byte [esi + 3]
test al, al
je 0x4ad3b2
movzx eax, al
lea eax, [ebx + eax*4 + 0xb4]
inc dword [eax]
mov eax, dword [ebp - 0xc4]
mov byte [eax + 0x11], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0xc4], ecx
mov eax, dword [ecx]
mov dword [ebp - 0xc0], eax
test eax, eax
je case.0x4aa139.12
mov eax, dword [ebp - 0xcc]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4ad401
call fcn.004a6368
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 8], eax
jmp 0x4ad405
and dword [ebp - 8], 0
cmp dword [ebp - 8], 0
jne case.0x4aa139.12
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0xbc], eax
mov edi, dword [edx + 0x14]
mov dword [ebp - 0xb8], edi
test byte [esi + 3], 0x10
je 0x4ad432
mov ecx, dword [ecx + 0x58]
jmp 0x4ad434
xor ecx, ecx
mov ebx, dword [ebp - 0xc0]
push ecx
push dword [esi + 0xc]
cdq
push 0
push 0
push 0x541348
push edx
push eax
push edi
call fcn.004a471c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc4]
add esp, 0x20
and dword [eax + 0x5c], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
test ecx, ecx
je case.0x4aa139.12
mov eax, dword [eax + 0x40]
mov dword [ebp - 0xb4], eax
mov ax, word [esi + 0xc]
mov word [ebp - 0xb0], ax
xor eax, eax
mov word [ebp - 0xae], ax
mov eax, dword [esi + 8]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
xor esi, esi
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xbc]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0xb4]
push eax
push ecx
call fcn.004a28d0
add esp, 0x18
mov dword [ebp - 8], eax
cmp eax, esi
jne 0x4ad4e9
cmp dword [ebp - 0xbc], esi
jne 0x4ad4e9
mov ebx, dword [ebp - 0xc0]
call fcn.004a48e4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x5c], esi
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov edi, dword [ecx + eax*4]
mov dword [ebp - 0xc0], edi
mov eax, dword [edi]
mov dword [ebp - 0xc4], eax
test eax, eax
je case.0x4aa139.12
call fcn.004a86d8
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov eax, dword [ebp - 0xc0]
cmp byte [eax + 0x14], 0
jne case.0x4aa139.12
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0xc4]
push dword [ebp - 0xc]
call fcn.004a8d86
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ae5b7
mov eax, dword [ebp - 0x14]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0xbc]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xb8]
jmp 0x4aa236
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc4], eax
cmp dword [eax], 0
je case.0x4aa139.12
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0xbc], ecx
mov cx, word [esi + 0x10]
mov word [ebp - 0xb8], cx
cmp byte [esi + 3], 0
je 0x4ad5b9
push 0xc
jmp 0x4ad5bb
push 4
pop ecx
mov word [ebp - 0xb6], cx
mov ecx, dword [esi + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
mov esi, eax
mov dword [ebp - 0xac], ecx
lea ecx, [ebp - 0xc0]
push ecx
lea ecx, [ebp - 0xbc]
push ecx
call fcn.004a8e5e
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0x29
pop ecx
pop ecx
jne 0x4ad5fc
neg dword [ebp - 0xc0]
jmp 0x4ad602
inc dword [ebp - 0xc0]
cmp dword [ebp - 0xc0], 0
jle case.0x4aa139.12
jmp 0x4ac361
and dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x84]
mov dword [ebp - 0xbc], eax
test eax, eax
je 0x4ad66f
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x4ad649
cmp byte [eax + 0x70], 2
jae 0x4ad649
cmp dword [eax + 0x60], 0
jl 0x4ad649
inc dword [ebp - 0xc0]
mov eax, dword [eax + 8]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x4ad62e
cmp dword [ebp - 0xc0], 1
jle 0x4ad66f
mov dword [ebp - 8], 6
mov byte [ebx + 0x38], 2
jmp case.0x4aa139.12
mov eax, dword [esi + 0xc]
mov ebx, dword [ebp - 0xc]
mov dword [ebp - 0xb8], eax
mov ecx, dword [esi + 4]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov edi, dword [eax + ecx + 4]
call fcn.0049fe4c
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0x1c]
push edi
call fcn.004a4e43
mov dword [ebp - 0x1c], eax
add esp, 0xc
mov eax, edi
call fcn.0049feb0
mov ecx, dword [ebp - 0x14]
mov ax, word [ecx + 0x1c]
mov edi, dword [ebp - 0x1c]
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc4]
cdq
mov dword [ebp - 8], edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
test edi, edi
jne case.0x4aa139.12
mov edi, dword [ebp - 0xc4]
test edi, edi
je case.0x4aa139.12
mov eax, dword [ebp - 0xb8]
mov esi, dword [esi + 4]
shl eax, 4
add eax, dword [ebx + 8]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx + 0xc]
jmp 0x4ad710
mov edx, dword [ecx + 8]
cmp dword [edx + 0x18], edi
jne 0x4ad70e
mov dword [edx + 0x18], esi
mov ecx, dword [ecx]
test ecx, ecx
jne 0x4ad703
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
jmp 0x4ad729
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], edi
jne 0x4ad727
mov dword [ecx + 0x14], esi
mov eax, dword [eax]
test eax, eax
jne 0x4ad71c
jmp case.0x4aa139.12
and dword [ebp - 0xc4], 0
mov eax, dword [esi + 0xc]
neg eax
sbb eax, eax
lea ecx, [ebp - 0xc4]
and eax, ecx
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 8]
push eax
mov eax, dword [esi + 8]
push dword [esi + 4]
shl eax, 4
mov ebx, dword [eax + ecx + 4]
call fcn.004a4df2
cmp dword [esi + 0xc], 0
pop ecx
pop ecx
mov dword [ebp - 8], eax
je case.0x4aa139.12
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp + 8]
add dword [ecx + 0x74], eax
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x4aa139.12
mov ecx, dword [ecx + 0x4c]
imul esi, esi, 0x28
cdq
add ecx, esi
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x4aa139.12
and dword [ebp - 0xc4], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [ebp - 0xbc], eax
cmp byte [esi], 0x35
setne cl
dec ecx
and ecx, 3
inc ecx
inc ecx
mov dword [ebp - 0xc0], ecx
mov eax, dword [eax + 4]
push ecx
lea ecx, [ebp - 0xc4]
push ecx
call fcn.004a4cad
mov dword [ebp - 8], eax
jmp 0x4abee1
mov eax, dword [esi + 4]
mov edi, dword [ebp - 0xc]
push edi
mov dword [ebp - 0xc4], eax
call fcn.0049fec5
cmp dword [esi + 8], 0
mov eax, dword [ebp - 0xc4]
pop ecx
jne 0x4ad814
mov edx, dword [edi + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
test byte [ecx + 0x3a], 1
je 0x4ad8c3
mov dword [ebp - 0xc0], str.sqlite_temp_master
cmp eax, 1
je 0x4ad82d
mov dword [ebp - 0xc0], str.sqlite_master
mov dword [ebp - 0xb8], edi
mov ecx, dword [esi + 4]
mov dword [ebp - 0xb4], ecx
add ebx, 0x68
mov dword [ebp - 0xb0], ebx
push dword [esi + 0x10]
mov ecx, dword [edi + 8]
push dword [ebp - 0xc0]
shl eax, 4
push dword [eax + ecx]
mov esi, edi
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
call fcn.00499ea4
add esp, 0x10
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x4ad879
mov dword [ebp - 8], 7
jmp 0x4ad8c3
push 0
lea eax, [ebp - 0xb8]
push eax
mov byte [esi + 0x78], 1
and dword [ebp - 0xac], 0
push fcn.004be294
push dword [ebp - 0xbc]
push esi
call fcn.004bc31e
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
jne 0x4ad8b1
mov eax, dword [ebp - 0xac]
mov dword [ebp - 8], eax
push dword [ebp - 0xbc]
push esi
call fcn.00498e12
pop ecx
pop ecx
mov byte [esi + 0x78], 0
call fcn.0049ff4e
cmp dword [ebp - 8], 7
je 0x4aa488
jmp case.0x4aa139.12
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0xc]
call fcn.004b41ff
mov dword [ebp - 8], eax
jmp case.0x4aa139.12
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 4]
mov ebx, dword [ebp - 0xc]
shl esi, 4
add esi, dword [ebx + 8]
push 0
call fcn.0049a63b
push eax
mov eax, dword [esi + 0xc]
add eax, 4
mov edi, ecx
call fcn.0049b1c0
push eax
call fcn.004b523d
add esp, 0xc
or dword [ebx + 0xc], 0x10
jmp case.0x4aa139.12
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov ebx, dword [ebp - 0xc]
call fcn.004b5043
jmp case.0x4aa139.12
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0xc]
call fcn.004c3bdd
jmp case.0x4aa139.12
mov esi, dword [esi + 8]
lea eax, [esi*4 + 4]
mov dword [ebp - 0xc4], esi
mov esi, dword [ebp - 0xc]
push eax
call fcn.00498fad
pop ecx
mov dword [ebp - 0xc0], eax
test eax, eax
je 0x4aa488
mov eax, ebx
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + 0x4c]
imul ecx, ecx, 0x28
add ecx, eax
mov dword [ebp - 0xb0], ecx
mov edi, dword [ebx + 4]
imul edi, edi, 0x28
xor esi, esi
add edi, eax
cmp dword [ebp - 0xc4], esi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xbc], esi
jle 0x4ad9cd
imul esi, esi, 0x28
add esi, edi
call fcn.004a659d
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xc0]
mov dword [edx + ecx*4], eax
mov esi, dword [ebp - 0xbc]
inc esi
cmp esi, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], esi
jl 0x4ad99f
mov eax, dword [ebp - 0xc0]
and dword [eax + esi*4], 0
mov esi, dword [ebp - 0xc]
mov ecx, dword [esi + 8]
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0xb0]
push dword [eax]
movzx eax, byte [ebx + 3]
push dword [ebp - 0xc4]
shl eax, 4
push dword [ebp - 0xc0]
push dword [eax + ecx + 4]
call fcn.004a5848
add esp, 0x14
push dword [ebp - 0xc0]
mov dword [ebp - 0xb4], eax
push esi
call fcn.00498e12
mov eax, dword [ebp - 0xb8]
cdq
pop ecx
pop ecx
mov ecx, dword [ebp - 0xb0]
sub dword [ecx], eax
mov eax, dword [ebp - 0xb0]
sbb dword [eax + 4], edx
call fcn.004a6766
cmp dword [ebp - 0xb8], 0
je 0x4ada6b
cmp dword [ebp - 0xb4], 0
je 0x4aa488
push 1
push dword [ebp - 0xb4]
mov eax, fcn.00498dc2
or ecx, 0xffffffff
mov edx, edi
call fcn.004a6960
pop ecx
pop ecx
movzx eax, byte [ebp - 0xc8]
push eax
mov eax, edi
call fcn.004a6228
jmp 0x4ae4f1
mov edi, dword [esi + 4]
mov ebx, dword [ebx + 0x4c]
imul edi, edi, 0x28
add edi, ebx
mov dword [ebp - 0xc4], edi
mov esi, dword [esi + 8]
imul esi, esi, 0x28
add esi, ebx
mov dword [ebp - 0xc0], esi
test byte [edi + 0x1c], 0x20
jne 0x4adabf
call fcn.004a6811
mov edi, dword [ebp - 0xc4]
test byte [edi + 0x1c], 0x20
je 0x4aa488
mov esi, dword [ebp - 0xc0]
push dword [esi + 4]
mov edi, dword [edi]
push dword [esi]
call fcn.0049d075
jmp 0x4ae4f0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd0]
test eax, eax
jne 0x4ae5f3
mov edi, dword [esi + 4]
mov eax, dword [ebx + 0x4c]
imul edi, edi, 0x28
add edi, eax
mov dword [ebp - 0xc4], edi
mov ebx, dword [esi + 0xc]
imul ebx, ebx, 0x28
add ebx, eax
test byte [edi + 0x1c], 0x20
mov dword [ebp - 0x14], ebx
je 0x4adb51
mov edi, dword [edi]
mov eax, edi
call fcn.0049d2a6
mov eax, dword [edi + 8]
test eax, eax
je 0x4adb4b
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
mov eax, dword [eax + 4]
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + 8]
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
test eax, eax
jne 0x4adb38
mov esi, edi
call fcn.0049d043
push dword [ebp - 0xb8]
mov esi, ebx
push dword [ebp - 0xbc]
jmp 0x4ab0e4
mov edi, dword [ebp - 0xc4]
call fcn.004a6766
jmp 0x4aa151
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc4], eax
test byte [ecx + 0x1c], 0x20
jne 0x4adb84
mov edi, ecx
call fcn.004a6811
test byte [edi + 0x1c], 0x20
je 0x4aa488
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x4adbc9
jl 0x4adb8f
and eax, 0xf
jmp 0x4adb94
mov eax, 0xff
mov ecx, dword [ebp - 0xd0]
push dword [ecx + 4]
mov bl, al
mov eax, dword [ebp - 0x10]
push dword [ecx]
mov eax, dword [eax]
call fcn.0049d2e6
pop ecx
pop ecx
mov dword [ebp - 0xc0], eax
test eax, eax
jne 0x4aa151
mov eax, dword [ebp - 0xc4]
test eax, eax
jl case.0x4aa139.12
mov eax, dword [ebp - 0xd0]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 0x10]
mov edi, dword [eax]
jmp 0x4adac6
mov eax, dword [ebx + 0x54]
cmp eax, dword [ebx + 0x58]
lea ecx, [eax + 1]
mov dword [ebp - 0xc4], eax
mov dword [ebx + 0x54], ecx
jl 0x4adc18
push dword [ebp - 0xc]
lea edx, [eax + 1]
mov eax, dword [ebx + 0x5c]
shl edx, 4
mov dword [ebx + 0x58], ecx
call fcn.00499087
pop ecx
mov dword [ebx + 0x5c], eax
test eax, eax
je 0x4aa488
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebx + 0x5c]
mov dword [ebp - 0xc0], eax
mov edx, dword [ecx + 0x30]
mov dword [eax], edx
mov eax, dword [ecx + 0x34]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 4], eax
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebp - 0xc0]
mov dword [ecx + 8], eax
jmp case.0x4aa139.12
dec dword [ebx + 0x54]
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebp - 0xc]
shl eax, 4
add eax, dword [ebx + 0x5c]
mov dword [ebp - 0xc4], eax
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 8]
mov dword [ebx + 0x74], eax
jmp case.0x4aa139.12
mov edi, dword [ebp - 0x10]
mov eax, edi
call fcn.004a66c3
mov esi, dword [ebp - 0xcc]
mov eax, esi
call fcn.004a66c3
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov ecx, dword [edi + 4]
cmp ecx, esi
jg case.0x4aa139.12
jl 0x4adcaf
mov ecx, edi
mov ecx, dword [ecx]
cmp ecx, eax
jae case.0x4aa139.12
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x4aa139.12
mov eax, dword [ebp - 0x10]
cmp dword [eax + 4], 0
jl case.0x4aa139.12
jg 0x4aa151
cmp dword [eax], 0
jbe case.0x4aa139.12
jmp 0x4aa151
mov eax, dword [ebp - 0x10]
cmp dword [eax + 4], 0
jg case.0x4aa139.12
jl 0x4aa151
cmp dword [eax], 0
jae case.0x4aa139.12
jmp 0x4aa151
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jmp 0x4ab181
movzx ecx, byte [esi + 3]
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + 8]
and dword [ebp - 0xc0], 0
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0x74], edx
mov dword [ebp - 0xb8], eax
test ecx, ecx
jle 0x4add6f
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xc0]
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0xb8]
call fcn.004a9dea
inc dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xc0]
add eax, 0x28
cmp ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], eax
jl 0x4add35
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xb4], eax
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
xor edi, edi
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x84], eax
inc dword [eax + 0x18]
xor eax, eax
inc eax
mov word [ebp - 0x90], ax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
test byte [eax + 3], 8
je 0x4addcf
mov ecx, dword [esi - 4]
mov dword [ebp - 0x7c], ecx
push dword [ebp - 0x74]
lea ecx, [ebp - 0xb4]
push dword [ebp - 0xc4]
push ecx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0x80], edi
je 0x4ade11
lea eax, [ebp - 0xac]
push eax
call fcn.004a904e
pop ecx
push eax
push 0x544148
push dword [ebp - 0xc]
lea edi, [ebx + 0x68]
call fcn.00499118
mov eax, dword [ebp - 0x80]
add esp, 0xc
mov dword [ebp - 8], eax
lea eax, [ebp - 0xac]
push eax
call fcn.004a652a
jmp 0x4ae4f1
mov ecx, dword [esi + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
mov dword [ebp - 0xc4], ecx
mov eax, dword [esi + 0x10]
call fcn.004a647b
mov dword [ebp - 8], eax
test eax, eax
je 0x4ade60
push dword [ebp - 0xc4]
call fcn.004a904e
pop ecx
push eax
push 0x544148
push dword [ebp - 0xc]
lea edi, [ebx + 0x68]
call fcn.00499118
add esp, 0xc
movzx eax, byte [ebp - 0xc8]
push eax
mov eax, dword [ebp - 0xc4]
call fcn.004a6228
pop ecx
mov ecx, dword [ebp - 0xc4]
jmp 0x4aab21
mov esi, dword [ebp - 0xc]
cmp byte [esi + 0x1c], 0
jne 0x4ade93
push str.cannot_VACUUM_from_within_a_transaction
push esi
jmp 0x4abe56
call fcn.004c4f1c
jmp 0x4ad8e2
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov ecx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xc4], eax
call fcn.004a1cfc
mov dword [ebp - 8], eax
cmp eax, 0x65
jne case.0x4aa139.12
mov esi, dword [esi + 8]
dec esi
and dword [ebp - 8], 0
mov dword [ebp - 0x18], esi
jmp case.0x4aa139.12
cmp dword [esi + 4], 0
je 0x4abf63
mov byte [ebx + 0x6e], 1
jmp case.0x4aa139.12
mov al, byte [esi + 0xc]
test al, al
jne 0x4adefe
mov ecx, dword [ebp - 0xc]
test dword [ecx + 0xc], 0x4000
jne case.0x4aa139.12
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0xc]
mov edi, dword [ecx + 8]
mov ecx, dword [esi + 8]
shl edx, 4
mov edx, dword [edx + edi + 4]
call fcn.004a5ad6
mov dword [ebp - 8], eax
cmp al, 6
jne case.0x4aa139.12
push dword [esi + 0x10]
lea edi, [ebx + 0x68]
push str.database_table_is_locked:__s
push dword [ebp - 0xc]
call fcn.00499118
add esp, 0xc
jmp case.0x4aa139.12
mov esi, dword [esi + 0x10]
push dword [ebp - 0xc]
mov ebx, esi
mov dword [ebp - 0xc4], esi
call fcn.004c5c26
cmp dword [ebp - 0xc4], 0
pop ecx
mov dword [ebp - 8], eax
je case.0x4aa139.12
mov esi, dword [ebp + 8]
push dword [esi + 0x68]
push dword [ebp - 0xc]
call fcn.00498e12
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 8]
mov dword [esi + 0x68], ecx
mov eax, dword [eax + 8]
and dword [eax + 8], 0
jmp case.0x4aa139.12
mov eax, ebx
mov ebx, dword [ebp - 0xc]
add eax, 0x68
push eax
push dword [esi + 0x10]
mov eax, dword [esi + 4]
call fcn.004c5943
mov dword [ebp - 8], eax
jmp 0x4ae4f0
mov ecx, dword [ebp - 0xc]
mov byte [ebx + 0x70], 2
push dword [esi + 0x10]
mov eax, dword [esi + 4]
call fcn.004c5af6
mov dword [ebp - 8], eax
mov byte [ebx + 0x70], 0
jmp 0x4ae4f1
xor edi, edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xc0], edi
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
lea edx, [ebp - 0xc0]
mov dword [ebp - 0xbc], eax
mov ecx, dword [eax]
push edx
push eax
mov dword [ebp - 0xb8], ecx
call dword [ecx + 0x18]
push dword [ebx + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
call fcn.00498e12
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [ebx + 0x68], ecx
mov dword [eax + 8], edi
cmp dword [ebp - 8], edi
jne case.0x4aa139.12
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
push edi
push 0xffffffffffffffff
mov dword [ecx], eax
mov edx, dword [esi + 4]
push edi
push ebx
call fcn.004a9e15
add esp, 0x10
mov dword [ebp - 0xc4], eax
cmp eax, edi
je 0x4ae064
mov ecx, dword [ebp - 0xc0]
mov dword [eax + 0x50], ecx
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x54], eax
jmp case.0x4aa139.12
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x1e], 1
push dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb8]
call dword [eax + 0x1c]
jmp 0x4ae4f1
mov eax, dword [esi + 0xc]
mov edi, dword [ebx + 0x34]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov ebx, dword [ebx + 0x24]
mov dword [ebp - 0xb8], eax
lea edx, [eax + 0x28]
mov dword [ebp - 0xb4], edx
mov ecx, dword [esi + 4]
mov ecx, dword [edi + ecx*4]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0xb0], ecx
mov edi, dword [ecx]
mov dword [ebp - 0xac], edi
mov edi, dword [edi]
mov dword [ebp - 0xbc], edi
mov edi, dword [edx]
mov dword [ebp - 0xc4], edi
mov eax, dword [eax]
mov dword [ebp - 0xc0], eax
xor eax, eax
cmp edi, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0xa0], eax
jle 0x4ae132
jmp 0x4ae0f2
mov edx, dword [ebp - 0xb4]
lea ecx, [eax + 1]
imul ecx, ecx, 0x28
add ecx, edx
mov edx, dword [ebp - 0x9c]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x9c]
mov ecx, dword [ecx + eax*4]
call fcn.004a9dea
mov eax, dword [ebp - 0xa0]
inc eax
cmp eax, dword [ebp - 0xc4]
mov dword [ebp - 0xa0], eax
jl 0x4ae0ec
mov ecx, dword [ebp - 0xb0]
push dword [ebp - 0x9c]
mov edi, dword [ebp + 8]
push dword [ebp - 0xc4]
mov eax, dword [ebp - 0xbc]
mov byte [edi + 0x70], 1
push dword [esi + 0x10]
push dword [ebp - 0xc0]
push ecx
call dword [eax + 0x20]
add esp, 0x14
push dword [edi + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
mov byte [edi + 0x70], 0
call fcn.00498e12
mov eax, dword [ebp - 0xac]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
mov dword [edi + 0x68], ecx
xor edi, edi
mov dword [eax + 8], edi
cmp dword [ebp - 8], edi
jne 0x4ae19b
push dword [ebp - 0xb0]
mov eax, dword [ebp - 0xbc]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], edi
je 0x4ae1aa
mov esi, dword [esi + 8]
dec esi
mov dword [ebp - 0x18], esi
mov eax, dword [ebp - 0xa8]
mov byte [eax + 0x14], 0
jmp case.0x4aa139.12
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov edi, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
imul eax, eax, 0x28
add eax, dword [ebx + 0x4c]
mov dword [ebp - 0xbc], eax
cmp byte [edi + 0x14], 0
je 0x4ae1de
mov edi, eax
jmp 0x4aa57f
mov eax, dword [edi + 0x50]
mov eax, dword [eax]
mov dword [ebp - 0xc4], eax
mov eax, dword [eax]
push 0x40
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xb4]
push 0
push eax
call fcn.004ee670
mov ebx, dword [ebp - 0xbc]
add esp, 0xc
lea eax, [ebp - 0xac]
call fcn.004a693c
mov eax, dword [ebp - 0x90]
and eax, 0xbf01
or eax, 1
mov word [ebp - 0x90], ax
push dword [esi + 8]
lea eax, [ebp - 0xb4]
push eax
push dword [edi + 0x50]
mov eax, dword [ebp - 0xc0]
call dword [eax + 0x2c]
mov esi, dword [ebp + 8]
add esp, 0xc
push dword [esi + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
call fcn.00498e12
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
mov dword [esi + 0x68], ecx
and dword [eax + 8], 0
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ae270
mov dword [ebp - 8], eax
movzx eax, byte [ebp - 0xc8]
push eax
lea eax, [ebp - 0xac]
call fcn.004a6228
mov eax, dword [ebp - 0xbc]
pop ecx
lea ebx, [ebp - 0xac]
call fcn.004a693c
mov ecx, dword [ebp - 0xbc]
call fcn.004a6873
test eax, eax
je case.0x4aa139.12
mov ebx, esi
jmp 0x4aab31
and dword [ebp - 0xbc], 0
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xb8], eax
cmp byte [eax + 0x14], 0
jne case.0x4aa139.12
mov ecx, dword [eax + 0x50]
mov ecx, dword [ecx]
mov dword [ebp - 0xc4], ecx
mov ecx, dword [ecx]
mov dword [ebp - 0xc0], ecx
mov byte [ebx + 0x70], 1
push dword [eax + 0x50]
call dword [ecx + 0x24]
pop ecx
push dword [ebx + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
mov byte [ebx + 0x70], 0
call fcn.00498e12
mov eax, dword [ebp - 0xc4]
pop ecx
pop ecx
mov ecx, dword [eax + 8]
xor edi, edi
mov dword [ebx + 0x68], ecx
mov dword [eax + 8], edi
cmp dword [ebp - 8], edi
jne 0x4ae330
mov eax, dword [ebp - 0xb8]
push dword [eax + 0x50]
mov eax, dword [ebp - 0xc0]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], edi
jmp 0x4ab181
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0xc4], eax
mov esi, dword [esi + 4]
imul esi, esi, 0x28
add esi, dword [ebx + 0x4c]
mov dword [ebp - 0xc0], esi
push dword [esi + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x4c]
push dword [ebx + 0x68]
mov dword [ebp - 8], eax
push dword [ebp - 0xc]
call fcn.00498e12
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [ebx + 0x68], ecx
jmp 0x4adf82
mov eax, dword [esi + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0xc4], edx
mov eax, dword [edx]
mov dword [ebp - 0xc0], eax
mov ecx, dword [esi + 8]
mov dword [ebp - 0xbc], ecx
cmp dword [eax + 0x34], 0
je case.0x4aa139.12
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0xac], ecx
mov ecx, dword [esi + 0xc]
and dword [ebp - 0xb8], 0
imul ecx, ecx, 0x28
add ecx, dword [ebx + 0x4c]
cmp dword [ebp - 0xbc], 0
mov dword [ebp - 0xa8], ecx
jle 0x4ae419
call fcn.004a9dea
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xac]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xa8]
add ecx, 0x28
inc dword [ebp - 0xb8]
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xbc]
mov dword [ebp - 0xa8], ecx
jl 0x4ae3d0
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
lea ecx, [ebp - 0xb4]
push ecx
push dword [ebp - 0xac]
push dword [ebp - 0xbc]
push edx
call dword [eax + 0x34]
push dword [ebx + 0x68]
mov edi, dword [ebp - 0xc]
push edi
mov dword [ebp - 8], eax
call fcn.00498e12
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 8]
mov dword [ebx + 0x68], ecx
xor ecx, ecx
add esp, 0x18
mov dword [eax + 8], ecx
cmp dword [ebp - 8], ecx
jne 0x4ae46f
cmp dword [esi + 4], ecx
je 0x4ae46f
mov eax, dword [ebp - 0xb4]
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0xb0]
mov dword [edi + 0x34], eax
inc dword [ebx + 0x74]
jmp case.0x4aa139.12
mov esi, dword [esi + 4]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc4], esi
mov eax, dword [eax + 8]
shl esi, 4
mov eax, dword [esi + eax + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax]
lea edi, [ebp - 0xc0]
mov dword [ebp - 0xbc], esi
call fcn.0049e68d
mov dword [ebp - 8], eax
test eax, eax
jne case.0x4aa139.12
mov ecx, dword [ebp - 0x14]
push 4
pop eax
mov word [ecx + 0x1c], ax
mov eax, dword [ebp - 0xc0]
jmp 0x4aa217
mov esi, dword [esi + 0x10]
test esi, esi
je 0x4ae4c7
mov ebx, esi
jmp 0x4ae4cd
mov ebx, dword [ebx + 0xc0]
mov dword [ebp - 0xc4], ebx
test ebx, ebx
je case.0x4aa139.12
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x90]
test eax, eax
je case.0x4aa139.12
mov ecx, dword [ebp - 0xc]
push ebx
push dword [ecx + 0x94]
call eax
pop ecx
pop ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 8], 0
je 0x4aa034
mov ebx, dword [ebp + 8]
jmp 0x4aab4a
mov dword [ebp - 8], 9
jmp 0x4aab4a
lea eax, [ebp - 0xb4]
push eax
call fcn.004a652a
pop ecx
jmp 0x4aa488
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x60], eax
mov byte [esi + 0x1c], 0
mov esi, ecx
mov dword [ebx + 0x64], ecx
jmp 0x4aab69
test esi, esi
je 0x4ae563
mov eax, edi
call fcn.004cc1c6
mov byte [edi + 0x1c], 1
mov esi, edi
call fcn.004cbf6e
mov eax, ebx
mov esi, dword [eax + 0x64]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x4aab69
mov al, byte [ebp - 0xc4]
push ebx
mov byte [edi + 0x1c], al
call fcn.004a830f
pop ecx
push 5
pop esi
cmp eax, esi
jne 0x4ae548
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x60], eax
mov al, 1
sub al, byte [ebp - 0xc4]
mov byte [edi + 0x1c], al
mov dword [ebx + 0x64], esi
jmp 0x4aab69
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x60], eax
jmp 0x4ae58b
mov dword [ebp - 8], 0xb
jmp 0x4ae5b7
mov dword [ebp - 8], 0xd
jmp 0x4ae5b7
mov dword [ebp - 8], 0xd
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
cmp byte [ecx + 0x1e], 0
je 0x4ae5c7
mov dword [ebp - 8], 7
cmp dword [ebp - 8], 0xc0a
je 0x4aab4a
mov eax, dword [ebp - 8]
call fcn.004cc25c
push eax
push 0x544148
push ecx
lea edi, [ebx + 0x68]
call fcn.00499118
add esp, 0xc
jmp 0x4aab4a
push 9
pop eax
mov dword [ebp - 8], eax
mov dword [ebx + 0x64], eax
call fcn.004cc25c
push eax
push 0x544148
push dword [ebp - 0xc]
jmp 0x4ae5e3