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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1f4
mov edx, ecx
mov dword [esp + 4], 0
push ebx
push esi
xor esi, esi
mov dword [esp + 0x10], edx
mov ebx, dword [edx]
push edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], 0
mov eax, dword [ebx + 8]
mov dword [esp + 0xe0], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0xc]
mov cl, byte [eax + 0x49]
xor eax, eax
mov byte [esp + 0x23], cl
xor ecx, ecx
cmp dword [edx + 0x64], 7
mov dword [esp + 0x104], ecx
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], eax
je 0x4ab248
mov dword [edx + 0x64], eax
mov dword [edx + 0x2c], eax
mov dword [ebx + 0x198], eax
cmp dword [ebx + 0xd8], eax
jne 0x4ab1f0
mov eax, dword [edx + 0x60]
fldz
fstp qword [esp + 0x138]
fld qword [0x52b198]
fstp qword [esp + 0x1a0]
fld qword [0x52b150]
fstp qword [esp + 0x1d0]
mov dword [esp + 0x14c], 0xbf04
mov dword [esp + 0x24], eax
cmp byte [ebx + 0x1e], 0
jne 0x4ab248
mov ecx, dword [esp + 0x18]
lea ebx, [eax + eax*4]
mov edi, dword [edx + 0x14]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
mov eax, dword [ecx + 0xf8]
test eax, eax
je 0x4a4a52
mov esi, dword [esp + 0xfc]
cmp dword [ecx + 0x100], esi
mov esi, dword [esp + 0x1c]
jne 0x4a4a43
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4ab218
mov edx, dword [esp + 0x14]
jmp 0x4a4a4a
mov eax, dword [esp + 0xfc]
inc eax
mov dword [esp + 0xfc], eax
movzx eax, byte [edi + ebx*4]
mov cl, byte [eax + 0x527ee0]
test cl, 2
je 0x4a4ae7
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
mov dword [esp + 0x1c], esi
test eax, 0x2460
je 0x4a4ad5
test eax, 0x2000
je 0x4a4a9a
mov edx, dword [esi]
mov ecx, esi
call fcn.004a02c0
mov ecx, esi
call fcn.004a03f0
jmp 0x4a4ad1
test eax, 0x400
je 0x4a4ab9
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a4ab9
push dword [esi + 0x14]
call ecx
add esp, 4
mov dword [esi + 0x20], 0
jmp 0x4a4ad1
test al, 0x20
je 0x4a4ac6
mov ecx, dword [esi]
call fcn.00497010
jmp 0x4a4ad1
test al, 0x40
je 0x4a4ad5
mov ecx, esi
call fcn.004a06e0
mov edx, dword [esp + 0x14]
mov eax, 1
mov dword [esi + 0x18], 0
mov word [esi + 0x1c], ax
jmp 0x4a4b2d
mov dl, cl
and dl, 8
test cl, 4
je 0x4a4b6c
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x58]
mov eax, dword [edi + ebx*4 + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x28], eax
test dl, dl
je 0x4a4b4f
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xe0], eax
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
movzx eax, byte [edi + ebx*4]
dec eax
cmp eax, 0x90
ja case.0x4a4b48.10
movzx eax, byte [eax + 0x4ab40c]
jmp dword [eax*4 + 0x4ab27c]
mov edx, dword [esp + 0x14]
test cl, 0x10
je 0x4a4ba6
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
jmp 0x4a4b31
test dl, dl
je 0x4a4b8a
mov eax, dword [edi + ebx*4 + 8]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0xe0], eax
jmp 0x4a4b2d
test cl, 0x10
je 0x4a4b29
mov eax, dword [edi + ebx*4 + 0xc]
mov edx, dword [esp + 0x14]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x34], ecx
jmp 0x4a4b31
mov esi, dword [esp + 0x1c]
jmp 0x4a4b2d
mov edx, dword [esp + 0x18]
cmp dword [edx + 0xd8], 0
jne 0x4ab1e6
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov ebx, edx
jmp 0x4a4f03
mov eax, dword [edi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x24]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x4a4f07
mov ecx, dword [esp + 0x28]
mov eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
test byte [ecx + 0x1c], 1
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 4]
test eax, eax
jne 0x4aae02
mov edi, dword [edx + 0xdc]
test edi, edi
je 0x4aadfe
mov eax, dword [edi + 0x3c]
dec dword [edx + 0xe0]
mov ecx, dword [esp + 0x18]
mov dword [edx + 0xdc], eax
mov eax, dword [edx + 0x74]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov esi, dword [edi]
mov eax, dword [edi + 8]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x54], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x34], eax
mov ax, word [edi + 0x1c]
mov word [esi + 0x32], ax
mov eax, dword [esi]
mov edx, dword [edi + 0x34]
mov ecx, dword [edi + 0x30]
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0x2c]
mov eax, dword [edi + 0x38]
mov dword [esi + 0x74], eax
mov eax, dword [edi + 4]
cmp dword [edx + ebx*4 + 8], 4
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
jne 0x4a4cf1
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x14]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 4]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edx
jmp 0x4a4eff
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x18]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x10]
mov dword [esi], ecx
jmp 0x4a4f07
mov eax, 8
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x18]
fld qword [eax]
mov eax, dword [esp + 0x10]
fstp qword [esi + 8]
jmp 0x4a4f07
mov byte [edi + ebx*4], 9
mov ebx, dword [edi + ebx*4 + 0x10]
mov eax, ebx
test ebx, ebx
je 0x4a4d7d
cmp byte [ebx], 0
je 0x4a4d76
lea esp, [esp]
inc eax
cmp byte [eax], 0
jne 0x4a4d70
sub eax, ebx
and eax, 0x3fffffff
cmp byte [esp + 0x23], 1
mov edx, dword [esp + 0x30]
mov dword [edi + edx*4 + 4], eax
je 0x4a4ea0
test ebx, ebx
jne 0x4a4d9d
mov ecx, esi
call fcn.004a06e0
jmp 0x4a4dee
mov edi, dword [esi + 0x10]
xor esi, esi
test edi, edi
je 0x4a4daf
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4a4dbf
jmp 0x4a4db4
mov edi, 0x3b9aca00
cmp byte [esi + ebx], 0
je 0x4a4dbf
inc esi
cmp esi, edi
jle 0x4a4db4
mov ecx, dword [esp + 0x1c]
call fcn.004a03f0
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x20], 0
mov dword [eax + 0x18], esi
mov dword [eax + 0x1c], 0x1030a02
cmp esi, edi
jg 0x4ab06d
mov edi, dword [esp + 0x2c]
mov esi, eax
test byte [esi + 0x1c], 2
mov dword [esp + 0x10], 0
je 0x4a4e16
mov al, byte [esp + 0x23]
cmp byte [esi + 0x1f], al
je 0x4a4e16
mov dl, al
mov ecx, esi
call fcn.004930e0
test eax, eax
jne 0x4ab240
mov ax, word [esi + 0x1c]
mov ecx, 0xfbff
mov ebx, dword [esp + 0x30]
and ax, cx
mov ecx, 0x800
mov dword [esi + 0x24], 0
or ax, cx
mov word [esi + 0x1c], ax
cmp byte [edi + ebx*4 + 1], 0xff
jne 0x4a4e8b
mov ecx, dword [edi + ebx*4 + 0x10]
test ecx, ecx
je 0x4a4e7a
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0xf0]
jb 0x4a4e7a
cmp ecx, dword [edx + 0xf4]
jae 0x4a4e7a
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
jmp 0x4a4e8b
push ecx
call fcn.00491400
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x10], eax
mov byte [edi + ebx*4 + 1], 0xff
mov eax, dword [esi + 0x14]
mov dword [edi + ebx*4 + 0x10], eax
mov eax, dword [esi + 0x18]
mov dword [edi + ebx*4 + 4], eax
jmp 0x4a4ea4
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp eax, dword [edx + 0x48]
jg 0x4ab073
mov eax, 0xa02
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [esi + 0x14], eax
mov eax, dword [edi + ebx*4 + 4]
mov dword [esi + 0x18], eax
mov al, byte [esp + 0x23]
mov byte [esi + 0x1f], al
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edx, dword [esp + 0x2c]
mov edi, dword [edi + ebx*4 + 0x10]
mov esi, dword [edx + ebx*4 + 4]
test edi, edi
jne 0x4a4f1c
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.004a06e0
mov al, byte [esp + 0x23]
mov byte [ebx + 0x1f], al
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x24]
test eax, eax
jne 0x4ab1b4
mov eax, dword [esp + 0x24]
jmp 0x4a49f1
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4a4f2c
mov ecx, dword [ecx + 0x48]
jmp 0x4a4f31
mov ecx, 0x3b9aca00
mov ebx, 0x10
test esi, esi
jns 0x4a4f59
xor esi, esi
test ecx, ecx
js 0x4a4f54
mov al, byte [edi + esi + 1]
or al, byte [esi + edi]
je 0x4a4f50
add esi, 2
cmp esi, ecx
jle 0x4a4f40
mov eax, dword [esp + 0x1c]
mov ebx, 0x210
mov ecx, eax
call fcn.004a03f0
mov eax, dword [esp + 0x1c]
or ebx, 0x800
mov dword [eax + 0x14], edi
mov dword [eax + 0x20], 0
mov word [eax + 0x1c], bx
mov ebx, eax
mov dword [eax + 0x18], esi
mov byte [ebx + 0x1e], 4
jmp 0x4a4ef0
mov edx, dword [edi + ebx*4 + 4]
dec edx
mov dword [esp + 0x38], edx
mov esi, dword [edi + ebx*4 + 8]
mov dword [esp + 0x3c], esi
mov eax, dword [edi + ebx*4 + 0xc]
test eax, eax
jle 0x4a50b5
mov ebx, dword [esp + 0x14]
lea ecx, [edx + edx*4]
dec eax
inc edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
mov eax, dword [ebx + 0x48]
lea eax, [eax + ecx*8]
mov dword [esp + 0x44], eax
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a4fe0
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a4fd4
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ab06d
mov eax, dword [ebx + 0x58]
lea ecx, [esi + esi*4]
inc esi
mov dword [esp + 0x3c], esi
lea edi, [eax + ecx*8]
movzx eax, word [edi + 0x1c]
mov dword [esp + 0x1c], edi
test eax, 0x2460
je 0x4a504d
test eax, 0x2000
je 0x4a5016
mov edx, dword [edi]
mov ecx, edi
call fcn.004a02c0
mov ecx, edi
call fcn.004a03f0
jmp 0x4a504d
test eax, 0x400
je 0x4a5035
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4a5035
push dword [edi + 0x14]
call ecx
add esp, 4
mov dword [edi + 0x20], 0
jmp 0x4a504d
test al, 0x20
je 0x4a5042
mov ecx, dword [edi]
call fcn.00497010
jmp 0x4a504d
test al, 0x40
je 0x4a504d
mov ecx, edi
call fcn.004a06e0
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov ebx, dword [esp + 0x44]
call fcn.004a0390
mov ecx, 9
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
mov eax, 0x400
mov dword [ecx + 0x20], 0
test word [ebx + 0x1c], ax
jne 0x4a5088
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x24]
jne 0x4a50a0
mov ax, word [ecx + 0x1c]
mov edx, 0xebff
and ax, dx
mov edx, 0x800
or ax, dx
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4a50b5
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x4a4fa3
dec eax
mov dword [esp + 0x40], eax
jmp 0x4a4ef7
mov esi, dword [edi + ebx*4 + 0xc]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], esi
mov eax, dword [edi + ebx*4 + 4]
mov dword [esp + 0x40], eax
mov edx, dword [edi + ebx*4 + 8]
mov ecx, dword [ecx + 0x58]
mov dword [esp + 0x44], edx
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x28], edi
lea eax, [edx + edx*4]
lea ebx, [ecx + eax*8]
mov dword [esp + 0x1c], ebx
test esi, esi
je 0x4a5153
dec esi
mov ecx, ebx
mov dword [esp + 0x3c], esi
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x38], eax
mov dword [ebx + 0x24], 0
call fcn.004a03f0
mov esi, edi
mov ecx, 0xa
mov edi, ebx
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x28]
add ebx, 0x28
mov dword [edi + 0x24], 0
mov word [edi + 0x1c], ax
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0x38]
mov dword [edi + 0x24], eax
add edi, 0x28
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x28], edi
test esi, esi
jne 0x4a50f6
mov dword [esp + 0x1c], ebx
dec esi
mov dword [esp + 0x3c], esi
jmp 0x4a4ef7
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ebx, [eax + ecx*8]
mov ecx, ebx
mov dword [esp + 0x1c], ebx
call fcn.004a0390
mov esi, dword [esp + 0x28]
mov ecx, 9
mov edi, ebx
mov eax, 0x400
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x28]
mov dword [ebx + 0x20], 0
test word [edi + 0x1c], ax
jne 0x4a51a0
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a51b8
mov ax, word [ebx + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [ebx + 0x1c], ax
movzx eax, word [ebx + 0x1c]
test eax, 0x1000
je 0x4a4ef7
test eax, 0x4000
je 0x4a51d5
mov ecx, ebx
call fcn.004a01b0
test byte [ebx + 0x1c], 0x12
je 0x4a4ef7
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x24]
je 0x4a4ef7
mov edx, dword [ebx + 0x18]
mov ecx, ebx
push 1
add edx, 2
call fcn.0049ff50
mov edx, dword [esp + 0x18]
add esp, 4
test eax, eax
jne 0x4ab236
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [ebx + 0x1c], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ebx, [eax + ecx*8]
mov ecx, ebx
mov dword [esp + 0x1c], ebx
call fcn.004a0390
mov esi, dword [esp + 0x28]
mov ecx, 9
mov edi, ebx
mov eax, 0x400
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x28]
mov dword [ebx + 0x20], 0
test word [edi + 0x1c], ax
jne 0x4a527f
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a4ef7
mov ax, word [ebx + 0x1c]
mov ecx, 0xf3ff
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [ebx + 0x1c], ax
jmp 0x4a4ef7
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0xe0]
movzx ecx, word [edi + 0x1c]
mov al, byte [eax + 0x1c]
or al, cl
test al, 1
je 0x4a52c4
mov ecx, esi
call fcn.004a06e0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
test ecx, 0x4000
je 0x4a531c
mov edx, dword [edi + 0x18]
add edx, dword [edi]
test edx, edx
jg 0x4a52da
mov edx, 1
push 1
mov ecx, edi
call fcn.0049ff50
add esp, 4
test eax, eax
je 0x4a52f1
mov eax, 7
jmp 0x4a5314
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004e1ab0
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and word [edi + 0x1c], ax
xor eax, eax
test eax, eax
jne 0x4ab240
mov esi, dword [esp + 0xe0]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a533d
mov ecx, esi
call fcn.004a01b0
test eax, eax
jne 0x4ab240
test byte [edi + 0x1c], 0x12
mov bl, byte [esp + 0x23]
jne 0x4a5359
movzx edx, bl
mov ecx, edi
call fcn.004a0210
test eax, eax
jne 0x4ab240
test byte [esi + 0x1c], 0x12
jne 0x4a5371
movzx edx, bl
mov ecx, esi
call fcn.004a0210
test eax, eax
jne 0x4ab240
mov eax, dword [edi + 0x18]
add eax, dword [esi + 0x18]
mov ebx, dword [esp + 0x18]
cdq
mov esi, eax
mov ecx, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [ebx + 0x48]
cdq
cmp ecx, edx
jg 0x4ab075
jl 0x4a539e
cmp esi, eax
ja 0x4ab075
mov ebx, dword [esp + 0x1c]
mov ecx, 0xbf02
mov esi, dword [esp + 0xe0]
mov ax, word [ebx + 0x1c]
and ax, cx
mov ecx, ebx
or ax, 2
mov word [ebx + 0x1c], ax
xor eax, eax
mov edx, dword [esp + 0x38]
cmp ebx, esi
sete al
push eax
lea edx, [edx + 2]
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4ab240
cmp ebx, esi
je 0x4a53f3
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [ebx + 0x14]
call fcn.004e1370
add esp, 0xc
push dword [edi + 0x18]
mov eax, dword [esi + 0x18]
push dword [edi + 0x14]
add eax, dword [ebx + 0x14]
push eax
call fcn.004e1370
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [ebx + 0x14]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x14]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [ebx + 0x1c], ax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x18], eax
jmp 0x4a4ef0
mov ecx, dword [esp + 0x28]
call fcn.004a4790
mov ecx, dword [esp + 0xe0]
call fcn.004a4790
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x28]
movzx ecx, word [eax + 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [esp + 0x38], ecx
test cl, 1
jne 0x4a56aa
mov eax, dword [esp + 0xe0]
mov al, byte [eax + 0x1c]
and al, byte [edx + 0x1c]
test al, 4
je 0x4a5563
mov eax, dword [esp + 0xe0]
mov esi, dword [edx]
mov edi, dword [edx + 4]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
movzx eax, byte [eax + ebx*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4a54b1
jmp dword [eax*4 + 0x4ab4a0]
add ecx, esi
adc edx, edi
jmp 0x4a5535
sub ecx, esi
sbb edx, edi
jmp 0x4a5535
push edx
push ecx
push edi
push esi
call fcn.004e0260
jmp 0x4a5533
mov eax, esi
or eax, edi
je 0x4a5692
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a54fd
test ecx, ecx
jne 0x4a54fd
cmp edx, 0x80000000
jne 0x4a54fd
mov esi, 1
xor edi, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push edi
push esi
push edx
push ecx
call fcn.00504260
jmp 0x4a5533
mov eax, esi
or eax, edi
je 0x4a5692
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a552a
mov esi, 1
xor edi, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push edi
push esi
push edx
push ecx
call fcn.00504350
mov ecx, eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esi], ecx
mov ax, word [esi + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edx
jmp 0x4a4eff
mov ecx, edx
call fcn.004a05a0
mov ecx, dword [esp + 0xe0]
fstp qword [esp + 0x50]
call fcn.004a05a0
fst qword [esp + 0x58]
movzx eax, byte [edi + ebx*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4a558a
jmp dword [eax*4 + 0x4ab4b0]
fadd qword [esp + 0x50]
jmp 0x4a562c
fsub qword [esp + 0x50]
jmp 0x4a562c
fmul qword [esp + 0x50]
jmp 0x4a562c
fld qword [esp + 0x50]
fld qword [esp + 0x138]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x4a56a6
fdivp st(1)
jmp 0x4a562c
fld qword [esp + 0x50]
call fcn.005044a0
mov esi, eax
mov edi, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
call fcn.005044a0
mov ecx, eax
mov dword [esp + 0x4c], edx
mov eax, esi
mov dword [esp + 0x48], ecx
or eax, edi
je 0x4a5692
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a560e
mov esi, 1
xor edi, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
push edi
push esi
push edx
push ecx
call fcn.00504350
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
fild qword [esp + 0x170]
fst qword [esp + 0x58]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fstp qword [esp + 0x160]
fld qword [esp + 0xf0]
fld qword [esp + 0x160]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4a5692
mov ebx, dword [esp + 0x1c]
mov ecx, 0xbf08
fld qword [esp + 0x58]
mov ax, word [ebx + 0x1c]
and ax, cx
or ax, 8
fstp qword [ebx + 8]
mov word [ebx + 0x1c], ax
test byte [esp + 0x38], 8
jne 0x4a4ef7
mov ecx, ebx
call fcn.004a0650
jmp 0x4a4ef7
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.004a06e0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
fstp st(0)
fstp st(0)
mov ecx, esi
call fcn.004a06e0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
movzx ecx, byte [edi + ebx*4 + 3]
mov eax, dword [esp + 0x2c]
mov esi, dword [edx + 0x24]
mov edi, dword [edx + 0x58]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], esi
mov eax, dword [eax + ebx*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
xor eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x4a5751
nop
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a5705
mov byte [ecx + 0x1e], 5
jmp 0x4a5724
test al, 4
je 0x4a570f
mov byte [ecx + 0x1e], 1
jmp 0x4a5724
test al, 8
je 0x4a5719
mov byte [ecx + 0x1e], 2
jmp 0x4a5724
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
inc eax
add edx, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp eax, dword [esp + 0x84]
jge 0x4a574a
mov esi, dword [esp + 0x80]
jmp 0x4a56f0
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x58]
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + ebx*4 + 1], 0xfb
mov eax, dword [ecx + ebx*4 + 0x10]
jne 0x4a576a
mov dword [esp + 0x44], 0
jmp 0x4a5770
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + ebx*4 + 0xc]
lea ecx, [esp + 0x48]
mov dword [esp + 0x58], edx
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
mov eax, 1
mov word [esp + 0x64], ax
call fcn.004a03f0
mov eax, dword [esp + 0x1c]
lea edi, [esp + 0x48]
mov esi, eax
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov ecx, 1
mov word [eax + 0x1c], cx
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov eax, dword [esp + 0x64]
and eax, 0xbf01
mov dword [esp + 0x74], 0
or eax, ecx
mov ecx, dword [esp + 0x40]
mov word [esp + 0x64], ax
test byte [ecx + 3], 8
je 0x4a5803
mov eax, dword [esi + ebx*4 - 4]
mov dword [esp + 0x78], eax
push dword [esp + 0x80]
lea eax, [esp + 0x44]
push dword [esp + 0x88]
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edi, dword [esp + 0x24]
add esp, 0xc
cmp byte [edi + 0x1e], 0
jne 0x4aae5d
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4a584a
mov edx, dword [esi + ebx*4 + 4]
call fcn.004a3080
mov eax, dword [esp + 0x44]
mov dword [esi + ebx*4 + 0x10], eax
mov byte [esi + ebx*4 + 1], 0xf9
cmp dword [esp + 0x74], 0
je 0x4a587e
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.004a1090
push eax
mov eax, dword [esp + 0x18]
push 0x51fca8
add eax, 0x68
push edi
push eax
call fcn.00491840
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0x10], eax
test byte [esp + 0x64], 2
je 0x4a589a
mov al, byte [esp + 0x23]
cmp byte [esp + 0x67], al
je 0x4a589a
mov dl, al
lea ecx, [esp + 0x48]
call fcn.004930e0
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.004a03f0
mov ecx, 0xa
lea esi, [esp + 0x48]
mov edi, ebx
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov word [esp + 0x64], ax
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
movzx eax, word [ebx + 0x1c]
test al, 0x12
je 0x4a4ef7
mov ecx, dword [ebx + 0x18]
test eax, 0x4000
je 0x4a58e4
add ecx, dword [ebx]
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x18]
cmp ecx, dword [eax + 0x48]
jg 0x4ab075
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x28]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
je 0x4a5926
mov ecx, esi
call fcn.004a06e0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, edx
call fcn.004a04b0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.004a04b0
mov ecx, eax
mov esi, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], esi
movzx eax, byte [edi + ebx*4]
sub eax, 0x52
je 0x4a59b0
sub eax, 1
je 0x4a5995
sub eax, 1
mov eax, dword [esp + 0x38]
je 0x4a597d
call fcn.00504890
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a5543
call fcn.00504310
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a5543
mov eax, dword [esp + 0x38]
or eax, ecx
or edx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a5543
mov eax, dword [esp + 0x38]
and eax, ecx
and edx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a5543
mov ecx, dword [esp + 0x28]
call fcn.004a04b0
mov esi, edx
mov ecx, eax
mov edx, dword [esp + 0x28]
mov ax, word [edx + 0x1c]
and ax, word [esp + 0x14c]
or ax, 4
mov dword [edx], ecx
mov dword [edx + 4], esi
mov word [edx + 0x1c], ax
mov eax, dword [edi + ebx*4 + 8]
cdq
add eax, ecx
mov ecx, dword [esp + 0x28]
adc edx, esi
mov esi, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], edx
jmp 0x4a4eff
mov ecx, dword [esp + 0x28]
call fcn.004a4790
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x1c], 8
je 0x4a5a30
call fcn.004a0650
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a5a52
mov eax, dword [edi + ebx*4 + 8]
test eax, eax
je 0x4aae6d
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 4
je case.0x4a4b48.10
mov ecx, edi
call fcn.004a05a0
mov ax, word [edi + 0x1c]
mov ecx, 0xbf08
and ax, cx
or ax, 8
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
fstp qword [edi + 8]
jmp 0x4a4eff
mov edi, dword [esp + 0x28]
movzx ecx, word [edi + 0x1c]
test cl, 1
jne case.0x4a4b48.10
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [edi + 0x1c], ax
test al, 2
jne 0x4a5acf
test al, 0xc
je 0x4a5acf
movzx edx, byte [esp + 0x23]
mov ecx, edi
call fcn.004a0210
mov eax, 0xfff3
and word [edi + 0x1c], ax
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x4a5b3c
mov edx, dword [edi + 0x18]
add edx, dword [edi]
test edx, edx
jg 0x4a5af1
mov edx, 1
push 1
mov ecx, edi
call fcn.0049ff50
add esp, 4
test eax, eax
je 0x4a5b1b
mov eax, 0xbfe3
mov dword [esp + 0x10], 7
and word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004e1ab0
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and word [edi + 0x1c], ax
mov eax, 0xbfe3
mov dword [esp + 0x10], 0
and word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edi, dword [esp + 0x28]
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x4a4b48.10
test al, 0x10
jne 0x4a5b9b
test al, 2
jne 0x4a5b7e
test al, 0xc
je 0x4a5b7e
movzx edx, byte [esp + 0x23]
mov ecx, edi
call fcn.004a0210
mov ax, word [edi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ebx, dword [esp + 0x18]
and eax, 0xff10
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 0xd
jne case.0x4a4b48.10
mov ecx, edi
call fcn.004a05a0
fld qword [esp + 0x1a0]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4a5bee
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], connect
jmp 0x4a5c2b
fld qword [esp + 0x1d0]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4a5c16
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], connect
jmp 0x4a5c2b
fld st(0)
call fcn.005044a0
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
fild qword [esp + 0x108]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x4a5a7c
fstp st(0)
mov ecx, edi
call fcn.004a04b0
mov dword [edi], eax
mov ecx, 0xbf04
mov ax, word [edi + 0x1c]
and ax, cx
mov dword [edi + 4], edx
or ax, 4
mov word [edi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 1
jne case.0x4a4b48.10
jmp 0x4a5c4f
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 1
jne case.0x4a4b48.10
jmp 0x4a5a75
mov eax, dword [esp + 0x28]
movzx edx, word [ecx + 0x1c]
movzx ecx, word [eax + 0x1c]
mov al, cl
or al, dl
test al, 1
mov al, byte [edi + ebx*4 + 3]
je 0x4a5d1b
test al, al
jns 0x4a5cc3
and ecx, edx
not ecx
and ecx, 1
jmp 0x4a5e54
mov edx, dword [esp + 0x14]
test al, 0x10
je 0x4a5cfd
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea esi, [eax + ecx*8]
mov ecx, 0xbf01
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x1c], esi
or ax, 1
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
test al, 8
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
and al, 0x67
mov byte [esp + 0x3c], al
je 0x4a5dcf
cmp al, 0x61
jne 0x4a5d54
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x1c]
test al, 2
jne 0x4a5d49
test al, 0xc
je 0x4a5d49
movzx edx, byte [esp + 0x23]
call fcn.004a0210
mov ecx, dword [esp + 0x28]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
jmp 0x4a5d72
cmp al, 0x62
je 0x4a5d72
mov ecx, dword [esp + 0x28]
call fcn.004a4790
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 8
je 0x4a5d72
mov ecx, eax
call fcn.004a0650
cmp byte [esp + 0x3c], 0x61
jne 0x4a5da2
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 2
jne 0x4a5d97
test al, 0xc
je 0x4a5d97
movzx edx, byte [esp + 0x23]
call fcn.004a0210
mov ecx, dword [esp + 0x34]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
jmp 0x4a5dc1
cmp byte [esp + 0x3c], 0x62
je 0x4a5dc1
mov ecx, dword [esp + 0x34]
call fcn.004a4790
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 8
je 0x4a5dc1
call fcn.004a0650
mov edx, dword [esp + 0x18]
cmp byte [edx + 0x1e], 0
jne 0x4ab23c
mov ecx, dword [esp + 0x28]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4a5e26
mov edx, dword [ecx + 0x18]
add edx, dword [ecx]
test edx, edx
jg 0x4a5df0
mov edx, 1
push 1
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4a5e26
mov ecx, dword [esp + 0x28]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004e1ab0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [ecx]
add dword [ecx + 0x18], eax
mov eax, 0xbdff
and word [ecx + 0x1c], ax
mov eax, dword [esp + 0x34]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4a5e40
mov ecx, eax
call fcn.004a01b0
mov eax, dword [esp + 0x34]
push dword [edi + ebx*4 + 0x10]
mov edx, dword [esp + 0x2c]
mov ecx, eax
call fcn.004a0c70
add esp, 4
mov ecx, eax
mov dword [esp + 0x38], ecx
movzx eax, byte [edi + ebx*4]
add eax, 0xffffffb5
cmp eax, 4
ja case.default.0x4a5e64
jmp dword [eax*4 + 0x4ab4c0]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4a5e9a
xor eax, eax
test ecx, ecx
setne al
jmp 0x4a5e9a
mov eax, ecx
jmp 0x4a5e97
xor eax, eax
test ecx, ecx
setle al
jmp 0x4a5e9a
xor eax, eax
test ecx, ecx
setg al
jmp 0x4a5e9a
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x38], eax
test byte [edi + ebx*4 + 3], 0x10
je 0x4a61df
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esp + 0x1c], esi
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x38]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edx
jmp 0x4a4eff
mov eax, dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0xc]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov esi, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x48], esi
mov ebx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x40], ebx
mov ecx, dword [edi + edx*4 + 8]
xor edx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
test eax, eax
jle 0x4a5fbd
mov eax, dword [esp + 0x100]
test eax, eax
je 0x4a5f43
mov edi, dword [eax + edx*4]
jmp 0x4a5f45
mov edi, edx
mov dword [esp + 0x4c], edi
mov ecx, dword [esi + edx*4 + 0xc]
mov dword [esp + 0x50], ecx
mov eax, dword [esi + 8]
push ecx
movzx eax, byte [eax + edx]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x34]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
lea eax, [edi + ebx]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.004a0c70
add esp, 4
mov dword [esp + 0x104], eax
test eax, eax
jne 0x4a5fad
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x38]
jge 0x4a5fbd
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
jmp 0x4a5f33
cmp dword [esp + 0x54], 0
je 0x4a5fbd
neg eax
mov dword [esp + 0x104], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, dword [esp + 0x104]
test ecx, ecx
jns 0x4a5ff4
mov eax, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
jne 0x4a600c
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0xc]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
je 0x4a6033
mov ecx, 2
jmp 0x4a6047
mov ecx, eax
call fcn.004a04b0
or eax, edx
je 0x4a6045
mov ecx, 1
jmp 0x4a6047
xor ecx, ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x38], ecx
test byte [eax + 0x1c], 1
je 0x4a605f
mov eax, 2
jmp 0x4a6077
mov ecx, eax
call fcn.004a04b0
or eax, edx
mov ecx, dword [esp + 0x38]
je 0x4a6075
mov eax, 1
jmp 0x4a6077
xor eax, eax
mov dword [esp + 0x3c], eax
lea eax, [eax + ecx*2]
cmp byte [edi + ebx*4], 0x45
jne 0x4a608e
movzx eax, byte [ecx + eax + 0x525ff4]
jmp 0x4a6096
movzx eax, byte [ecx + eax + 0x525558]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cmp eax, 2
jne 0x4a60c5
mov ax, word [ebx + 0x1c]
mov edx, 0xbf01
and ax, dx
mov esi, ebx
or ax, 1
movzx eax, ax
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov esi, dword [esp + 0x1c]
cdq
mov dword [ebx], eax
mov ax, word [ebx + 0x1c]
mov dword [ebx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
movzx eax, ax
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov eax, dword [edi + ebx*4 + 8]
mov edi, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
test byte [edi + 0x1c], 1
lea ebx, [eax + ecx*8]
mov dword [esp + 0x1c], ebx
je 0x4a611c
mov ecx, ebx
call fcn.004a06e0
mov eax, dword [esp + 0x10]
mov esi, ebx
jmp 0x4a4eff
mov ecx, edi
call fcn.004a04b0
or eax, edx
jne 0x4a612c
lea esi, [eax + 1]
jmp 0x4a612e
xor esi, esi
mov ecx, ebx
call fcn.004a03f0
mov dword [ebx + 4], 0
mov dword [ebx], esi
mov eax, 4
mov esi, dword [esp + 0x1c]
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x1e], 1
jmp 0x4a4eff
mov eax, dword [edi + ebx*4 + 8]
mov edi, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
test byte [edi + 0x1c], 1
lea ebx, [eax + ecx*8]
mov dword [esp + 0x1c], ebx
je 0x4a6185
mov ecx, ebx
call fcn.004a06e0
mov eax, dword [esp + 0x10]
mov esi, ebx
jmp 0x4a4eff
mov ecx, edi
call fcn.004a04b0
mov esi, eax
mov edi, edx
mov ecx, ebx
not esi
not edi
call fcn.004a03f0
mov dword [ebx + 4], edi
jmp 0x4a613c
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x1c], 1
je 0x4a61b0
mov eax, dword [edi + ebx*4 + 0xc]
jmp 0x4a61db
call fcn.004a05a0
fld qword [esp + 0x138]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4a61cc
mov eax, 1
jmp 0x4a61ce
xor eax, eax
mov dword [esp + 0x38], eax
cmp byte [edi + ebx*4], 0x1b
jne 0x4a61df
xor eax, 1
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x14]
test eax, eax
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
jne case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 4]
mov esi, 0xbf01
mov dword [esp + 0x48], eax
mov eax, dword [edi + ebx*4 + 8]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x50], 0
mov eax, dword [edi + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x74], ecx
mov ax, word [ecx + 0x1c]
and ax, si
or ax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [edx + 0x34]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x54], 0
mov esi, dword [ecx + eax*4]
mov ecx, esi
mov dword [esp + 0x50], ecx
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
test eax, eax
je 0x4a64fe
cmp byte [esi + 0x15], 0
je 0x4a635f
mov ecx, dword [esi]
lea eax, [esp + 0x114]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.0049cb80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x114]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a6359
mov ecx, dword [esi]
lea edx, [esp + 0x114]
call fcn.0049d040
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov byte [esi + 0x15], 0
jmp 0x4a63a1
mov edi, dword [esi]
test edi, edi
je 0x4a63ac
cmp byte [edi + 0x43], 2
jb 0x4a6384
mov ecx, edi
call fcn.0049af20
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov ecx, dword [esp + 0x50]
cmp byte [edi + 0x43], 1
jne 0x4a6394
cmp dword [edi + 0x50], 0
jne 0x4a6394
xor eax, eax
jmp 0x4a6399
mov eax, 1
test eax, eax
je 0x4a63ac
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x50]
xor esi, esi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0x10], esi
je 0x4a63d2
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
inc eax
mov edx, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x1c]
jmp 0x4a49ed
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 0x44]
cmp eax, dword [edx + 0x5c]
jne 0x4a63f5
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], esi
jmp 0x4a6540
cmp byte [ecx + 0x17], 0
mov edx, dword [esp + 0x58]
je 0x4a6495
cmp byte [edx + 0x43], 1
mov dword [esp + 0x10], edx
je 0x4a6424
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], edx
jmp 0x4a6540
cmp word [edx + 0x3e], si
jne 0x4a6472
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx eax, byte [esi + edi*2]
movzx edx, byte [esi + edi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0x14]
add esp, 4
mov byte [edx + 0x42], 1
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x10]
mov edx, dword [edx + 0x28]
mov dword [esp + 0x10], 0
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x38], edx
jmp 0x4a6540
mov dword [esp + 0xe4], edx
cmp word [edx + 0x3e], si
jne 0x4a64ed
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx edx, byte [esi + edi*2]
movzx eax, byte [esi + edi*2 + 1]
shl edx, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0xe8]
add esp, 4
mov byte [edx + 0x42], 1
mov ecx, dword [esp + 0x50]
mov edx, dword [edx + 0x30]
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], 0
jmp 0x4a6540
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4a6a9f
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0xc0], ecx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x54], eax
test byte [edi + ebx*4 + 3], 0x20
je 0x4a6532
xor eax, eax
jmp 0x4a6535
mov eax, dword [edx + 0x5c]
mov dword [esi + 0x44], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
test edx, edx
je 0x4a58f4
cmp edx, dword [ebx + 0x48]
ja 0x4ab075
mov edx, dword [ecx + 0x2c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x64], edx
mov esi, dword [ecx + 0x4c]
mov dword [esp + 0x5c], esi
mov eax, dword [ecx + 0x44]
cmp eax, dword [edi + 0x5c]
jne 0x4a657b
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x60], eax
jmp 0x4a68b5
lea eax, [esi + edx*4]
mov dword [esp + 0xbc], 0
mov dword [esp + 0x60], eax
mov dword [ecx + 0x50], eax
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
mov dword [ecx + 0x48], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [edi + 0x5c]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4a65b6
mov dword [esp + 0x70], ecx
jmp 0x4a667b
mov esi, dword [esp + 0x50]
cmp byte [esi + 0x17], 0
je 0x4a6640
mov edx, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0xe4], edx
cmp byte [edx + 0x43], 1
jne 0x4a6656
cmp word [edx + 0x3e], cx
jne 0x4a662c
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx eax, byte [esi + edi*2]
movzx edx, byte [esi + edi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov esi, dword [esp + 0x54]
add esp, 4
mov edx, dword [esp + 0xe4]
mov edi, dword [esp + 0x14]
movzx ecx, word [edx + 0x38]
movzx eax, word [edx + 0x3a]
add ecx, dword [edx + 0x20]
mov dword [esp + 0xbc], eax
jmp 0x4a6656
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0xbc]
call fcn.0049c750
mov esi, dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0xbc]
ja 0x4a6670
mov dword [esp + 0x54], ecx
mov dword [esi + 0x54], ecx
jmp 0x4a6677
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x70]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a668f
movzx edx, al
mov al, 1
mov dword [esp + 0xa8], edx
jmp 0x4a66a6
lea edx, [esp + 0xa8]
call fcn.00494200
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x70]
movzx ebx, al
mov dword [esp + 0xb8], ebx
cmp edx, 0x18003
ja 0x4aae7b
mov edi, dword [esp + 0x64]
lea esi, [edi*4 + 3]
add esi, edi
mov dword [esp + 0x68], esi
cmp esi, edx
jle 0x4a66d7
mov esi, edx
mov dword [esp + 0x68], esi
cmp dword [esp + 0x54], 0
jne 0x4a6744
cmp dword [esp + 0xbc], esi
jge 0x4a6744
mov ecx, dword [esp + 0x58]
xor eax, eax
mov word [esp + 0x94], ax
xor edx, edx
mov dword [esp + 0x88], eax
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 0x17]
push eax
push esi
call fcn.004a0ee0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4a4ef7
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0xb8]
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x70], ecx
lea eax, [ecx + esi]
mov dword [esp + 0xb0], edx
lea esi, [ebx + ecx]
mov dword [esp + 0xa4], eax
xor ecx, ecx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xb4], 0
mov dword [esp + 0x6c], ecx
test edi, edi
jle 0x4a6851
jmp 0x4a6780
cmp esi, eax
mov eax, dword [esp + 0x60]
jae 0x4a6821
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xa0]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a67ae
mov ecx, dword [esp + 0x6c]
movzx edx, al
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4a67be
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
lea edx, [eax + edx*4]
call fcn.00494200
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x6c]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xa0], esi
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4a6800
mov edx, dword [esp + 0xb0]
add eax, 0xfffffff4
shr eax, 1
add edx, eax
mov dword [esp + 0xb0], edx
adc dword [esp + 0xb4], 0
jmp 0x4a683a
mov edx, dword [esp + 0xb0]
movzx eax, byte [eax + 0x5252fc]
add edx, eax
mov dword [esp + 0xb0], edx
adc dword [esp + 0xb4], 0
jmp 0x4a683a
mov dword [eax + ecx*4], 0
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa0]
mov ecx, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x6c], ecx
cmp ecx, dword [esp + 0x64]
jge 0x4a6851
mov eax, dword [esp + 0xa4]
jmp 0x4a6780
lea ecx, [esp + 0x78]
call fcn.004a03f0
mov edx, dword [esp + 0xa0]
mov eax, 1
mov esi, dword [esp + 0xa4]
mov word [esp + 0x94], ax
cmp edx, esi
ja 0x4a6a8d
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x38]
test edi, edi
ja 0x4a6a8d
mov eax, dword [esp + 0xb0]
jb 0x4a68a1
cmp eax, ecx
ja 0x4a6a8d
cmp edx, esi
jne 0x4a68b5
cmp eax, ecx
jne 0x4a6a8d
test edi, edi
jne 0x4a6a8d
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
cmp dword [eax + ecx*4], 0
je 0x4a6a13
cmp dword [esp + 0x54], 0
je 0x4a6961
mov edi, dword [esp + 0x74]
movzx eax, word [edi + 0x1c]
test eax, 0x2460
je 0x4a6935
test eax, 0x2000
je 0x4a68fa
mov edx, dword [edi]
mov ecx, edi
call fcn.004a02c0
mov ecx, edi
call fcn.004a03f0
jmp 0x4a6931
test eax, 0x400
je 0x4a6919
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4a6919
push dword [edi + 0x14]
call ecx
add esp, 4
mov dword [edi + 0x20], 0
jmp 0x4a6931
test al, 0x20
je 0x4a6926
mov ecx, dword [edi]
call fcn.00497010
jmp 0x4a6931
test al, 0x40
je 0x4a6935
mov ecx, edi
call fcn.004a06e0
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
push edi
mov ecx, dword [eax + esi*4]
add ecx, dword [esp + 0x58]
mov edx, dword [edx + esi*4]
call fcn.004a34d0
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0x27]
mov byte [eax + 0x1f], cl
jmp 0x4a6a34
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4a6974
add eax, 0xfffffff4
shr eax, 1
jmp 0x4a697b
movzx eax, byte [eax + 0x5252fc]
mov ebx, dword [esp + 0x74]
lea ecx, [esp + 0x78]
mov dword [esp + 0x68], eax
call fcn.004a03f0
mov ecx, 0xa
lea edi, [esp + 0x78]
mov esi, ebx
mov eax, 1
rep movsd dword es:[edi], dword [esi]
mov word [ebx + 0x1c], ax
lea eax, [esp + 0x78]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 0x17]
push eax
mov eax, dword [esp + 0x68]
push dword [esp + 0x70]
mov edx, dword [eax + edx*4]
call fcn.004a0ee0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4a4ef7
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
push dword [esp + 0x74]
mov dword [esp + 0x74], ecx
mov edx, dword [eax + edx*4]
call fcn.004a34d0
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0x27]
mov byte [eax + 0x1f], cl
jmp 0x4a6a34
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4a6a37
mov edx, dword [ecx + eax*4 + 0x10]
mov ecx, dword [esp + 0x74]
push 0x800
call fcn.004a08f0
add esp, 4
cmp dword [esp + 0x9c], 0
je 0x4a6a77
mov eax, dword [esp + 0x74]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov ecx, 0x200
mov eax, dword [esp + 0x74]
or word [eax + 0x1c], cx
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x8c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x74]
call fcn.004a0150
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
jmp 0x4a4eff
mov dword [esp + 0x10], 0xb
mov eax, 0xb
jmp 0x4a4efb
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x38], 0
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [edi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea esi, [eax + ecx*8]
mov dword [esp + 0x3c], esi
mov eax, dword [edi + ebx*4 + 8]
mov dword [esp + 0x44], esi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [esi + eax*8]
mov dword [esp + 0x40], eax
cmp esi, eax
ja 0x4a5227
mov dword [esp + 0x44], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a6b08
mov ecx, esi
call fcn.004a01b0
mov esi, dword [esp + 0x44]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x3c]
imul ecx
mov eax, dword [esp + 0x38]
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, byte [ecx + eax]
cmp al, 0x61
jne 0x4a6b4d
movzx eax, word [esi + 0x1c]
test al, 2
jne 0x4a6b42
test al, 0xc
je 0x4a6b42
movzx edx, byte [esp + 0x23]
mov ecx, esi
call fcn.004a0210
mov eax, 0xfff3
and word [esi + 0x1c], ax
jmp 0x4a6b65
cmp al, 0x62
je 0x4a6b69
mov ecx, esi
call fcn.004a4790
test byte [esi + 0x1c], 8
je 0x4a6b65
mov ecx, esi
call fcn.004a0650
mov esi, dword [esp + 0x44]
add esi, 0x28
mov dword [esp + 0x44], esi
cmp esi, dword [esp + 0x40]
jbe 0x4a6af2
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov ecx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x6c], ecx
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [edx + 0x58]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
mov dword [esp + 0x64], esi
mov eax, dword [edi + ebx*4 + 8]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*8]
movzx eax, byte [edx + 0x6f]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x74], eax
cmp esi, ecx
ja 0x4a6d00
mov dword [esp + 0x3c], esi
mov edi, dword [esp + 0x70]
test edi, edi
je 0x4a6c66
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x64]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov al, byte [eax + edi]
cmp al, 0x61
jne 0x4a6c4a
movzx eax, word [esi + 0x1c]
test al, 2
jne 0x4a6c3f
test al, 0xc
je 0x4a6c3f
movzx edx, byte [esp + 0x23]
mov ecx, esi
call fcn.004a0210
mov eax, 0xfff3
and word [esi + 0x1c], ax
jmp 0x4a6c62
cmp al, 0x62
je 0x4a6c66
mov ecx, esi
call fcn.004a4790
test byte [esi + 0x1c], 8
je 0x4a6c62
mov ecx, esi
call fcn.004a0650
mov esi, dword [esp + 0x3c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a6c82
cmp dword [esi + 0x18], 0
jle 0x4a6c82
mov ecx, esi
call fcn.004a01b0
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.004a33f0
mov edx, eax
mov dword [esp + 0x60], edx
cmp edx, 0xc
jb 0x4a6c9f
lea edi, [edx - 0xc]
shr edi, 1
jmp 0x4a6ca6
movzx edi, byte [edx + 0x5252fc]
add dword [esp + 0x40], edi
mov dword [esp + 0x7c], edi
adc dword [esp + 0x44], 0
xor ecx, ecx
xor ebx, ebx
shrd edx, ecx, 7
inc ebx
shr ecx, 7
mov eax, edx
or eax, ecx
je 0x4a6cca
cmp ebx, 9
jl 0x4a6cb7
add dword [esp + 0x48], ebx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a6ce1
mov eax, dword [esi]
add dword [esp + 0x58], eax
jmp 0x4a6ceb
neg edi
sbb edi, edi
not edi
and dword [esp + 0x58], edi
add esi, 0x28
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x68]
jbe 0x4a6c01
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x48]
xor edi, edi
cdq
mov ecx, eax
lea esp, [esp]
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a6d23
cmp edi, 9
jl 0x4a6d10
mov eax, dword [esp + 0x48]
add eax, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x48], eax
xor esi, esi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a6d49
cmp esi, 9
jl 0x4a6d36
cmp edi, esi
jge 0x4a6d51
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cdq
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x58]
cdq
sub esi, eax
sbb ecx, edx
add esi, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
adc ecx, dword [esp + 0x44]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], ecx
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x4ab06d
jl 0x4a6d8d
cmp esi, eax
ja 0x4ab06d
mov eax, dword [esp + 0x2c]
mov edx, esi
push 0
mov eax, dword [eax + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x58]
lea ebx, [eax + ecx*8]
mov ecx, ebx
mov dword [esp + 0x20], ebx
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4ab240
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x38], edx
cmp ecx, 0x80
jae 0x4a6dda
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4a6e05
test ecx, 0xffffc000
jne 0x4a6df8
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4a6e05
push 0
push ecx
mov ecx, edx
call fcn.00493f80
add esp, 8
mov esi, dword [esp + 0x64]
movzx edi, al
mov dword [esp + 0x78], edi
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x68]
ja 0x4a6e9c
mov edi, edi
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.004a33f0
mov ecx, eax
mov dword [esp + 0x60], ecx
cmp ecx, 0x80
jae 0x4a6e49
mov cl, al
mov eax, dword [esp + 0x38]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4a6e7a
mov edx, dword [esp + 0x38]
add edx, edi
test ecx, 0xffffc000
jne 0x4a6e6d
mov eax, ecx
shr eax, 7
or al, 0x80
and cl, 0x7f
mov byte [edx], al
mov eax, 2
mov byte [edx + 1], cl
jmp 0x4a6e7a
push 0
push ecx
mov ecx, edx
call fcn.00493f80
add esp, 8
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x78]
add esi, 0x28
movzx eax, al
add edi, eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x78], edi
cmp esi, dword [esp + 0x68]
jbe 0x4a6e20
mov esi, dword [esp + 0x64]
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x68]
ja 0x4a6f9a
lea ebx, [ebx]
mov eax, dword [esp + 0x50]
mov ecx, esi
mov edx, dword [esp + 0x74]
sub eax, edi
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x38]
add eax, edi
mov dword [esp + 0x30], eax
call fcn.004a33f0
mov ebx, eax
lea ecx, [ebx - 1]
cmp ecx, 6
ja 0x4a6f2a
cmp ebx, 7
jne 0x4a6f19
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ebx + 0x5252fc]
mov ebx, ecx
test ecx, ecx
je 0x4a6f7f
mov edi, dword [esp + 0x30]
lea esp, [esp]
dec ecx
mov byte [ecx + edi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4a6f00
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
jmp 0x4a6f7f
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ebx, 0xc
jb 0x4a6ee7
lea ecx, [ebx - 0xc]
shr ecx, 1
jmp 0x4a6eee
cmp ebx, 0xc
jb 0x4a6f7d
mov ebx, dword [esi + 0x18]
mov edi, dword [esp + 0x30]
push ebx
push dword [esi + 0x14]
push edi
call fcn.004e1370
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4a6f73
add ebx, dword [esi]
mov eax, dword [esp + 0xe4]
cmp ebx, eax
jbe 0x4a6f5d
mov ebx, eax
mov ecx, dword [esi + 0x18]
mov eax, ebx
sub eax, ecx
push eax
push 0
lea eax, [edi + ecx]
push eax
call fcn.004e1ab0
add esp, 0xc
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
jmp 0x4a6f7f
xor ebx, ebx
add esi, 0x28
add edi, ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x68]
jbe 0x4a6eb0
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x18], eax
mov eax, 0x410
mov word [ebx + 0x1c], ax
mov dword [ebx + 0x20], 0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4a6fc4
mov dword [ebx], eax
mov eax, 0x4410
mov word [ebx + 0x1c], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x1f], 1
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4a6ffc
lea edx, [esp + 0x38]
call fcn.0049fc20
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x4a700c
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, 4
mov ebx, dword [esp + 0x18]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], ecx
jmp 0x4a4f07
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
mov ebx, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x30], edx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x3c], ebx
test edx, edx
jne 0x4a7172
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x90], edx
jg 0x4aae95
test ebx, ebx
jne 0x4a706a
xor eax, eax
jmp 0x4a707e
cmp byte [ebx], 0
mov eax, ebx
je 0x4a7077
inc eax
cmp byte [eax], 0
jne 0x4a7071
sub eax, ebx
and eax, 0x3fffffff
mov ebx, dword [esp + 0x18]
lea edx, [eax + 0x19]
mov dword [esp + 0x40], eax
cmp byte [ebx + 0x1e], 0
je 0x4a70a0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x4a4f03
cmp byte [ebx + 0xe2], 0
je 0x4a70e7
movzx eax, word [ebx + 0xe0]
cmp edx, eax
ja 0x4a70e7
mov ecx, dword [ebx + 0xec]
test ecx, ecx
je 0x4a70e7
mov eax, dword [ecx]
mov dword [ebx + 0xec], eax
mov eax, dword [ebx + 0xe4]
inc eax
mov dword [ebx + 0xe4], eax
cmp eax, dword [ebx + 0xe8]
jle 0x4a70e1
mov dword [ebx + 0xe8], eax
mov dword [esp + 0x44], ecx
jmp 0x4a7106
push edx
call fcn.00491390
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a70fa
mov byte [ebx + 0x1e], 1
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x4a58f8
lea eax, [ecx + 0x18]
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
inc eax
push eax
mov eax, dword [esp + 0x48]
push dword [esp + 0x40]
push dword [eax]
call fcn.004e1370
add esp, 0xc
cmp byte [ebx + 0x1c], 0
je 0x4a7136
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1cc], 1
jmp 0x4a713c
inc dword [ebx + 0x1c4]
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x1c0]
mov dword [eax + 0x10], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx + 0x1d0]
mov edx, dword [ebx + 0x1d4]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov esi, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x48], edi
test edi, edi
je 0x4aaee3
mov edi, edi
mov esi, dword [edi]
mov edx, ebx
mov bl, byte [esi]
test bl, bl
je 0x4a71c1
mov al, bl
sub esi, edx
mov edi, edi
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5265d8]
cmp al, byte [ecx + 0x5265d8]
jne 0x4a71c1
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4a71a0
movzx eax, bl
movzx ecx, byte [eax + 0x5265d8]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5265d8]
sub ecx, eax
je 0x4a71f7
inc dword [esp + 0x50]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x48], edi
test eax, eax
je 0x4aaee3
mov ebx, dword [esp + 0xe4]
jmp 0x4a7190
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x18]
test edi, edi
je 0x4aaee3
cmp dword [esi + 0x90], 0
jg 0x4a741f
cmp edx, 2
jne 0x4a722a
cmp dword [esi + 0x8c], 1
jg 0x4a7424
cmp dword [edi + 0x10], 0
jne 0x4a726c
cmp byte [esi + 0x1cc], 0
je 0x4a726c
mov ebx, 1
cmp edx, ebx
jne 0x4a726e
mov edi, dword [esp + 0x14]
mov ecx, edi
mov byte [esi + 0x1c], bl
call fcn.004a2be0
cmp eax, 5
je 0x4aaec5
mov byte [esi + 0x1cc], 0
mov eax, dword [edi + 0x64]
mov dword [esp + 0x10], eax
jmp 0x4a7324
xor ebx, ebx
mov eax, dword [esi + 0x1c4]
xor esi, esi
sub eax, ecx
mov dword [esp + 0x54], esi
dec eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], esi
jle 0x4a72f5
lea ebx, [ebx]
mov eax, dword [eax + 8]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
xor ecx, ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x4a72db
cmp byte [eax + 8], 2
jne 0x4a72db
mov esi, dword [eax + 4]
push dword [esp + 0x50]
mov ecx, dword [esi]
call fcn.0049ad10
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a72d3
mov ecx, esi
call fcn.0049beb0
mov ecx, eax
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x54]
test ecx, ecx
jne 0x4aafea
mov eax, dword [esp + 0x18]
inc esi
mov dword [esp + 0x54], esi
cmp esi, dword [eax + 4]
jl 0x4a7290
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x18]
cmp edx, 2
jne 0x4a732c
test byte [esi + 0xc], 0x10
je 0x4a732c
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a731b
mov edi, edi
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a7310
xor edx, edx
mov ecx, esi
call fcn.004b6140
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov eax, dword [esi + 0x1c0]
cmp eax, edi
je 0x4a739c
jmp 0x4a7340
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4a737b
cmp ecx, dword [esi + 0xf0]
jb 0x4a737b
cmp ecx, dword [esi + 0xf4]
jae 0x4a737b
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x4a7384
push ecx
call fcn.00491400
add esp, 4
dec dword [esi + 0x1c4]
mov eax, dword [esi + 0x1c0]
mov edi, dword [esp + 0x48]
cmp eax, edi
jne 0x4a7340
mov edx, dword [esp + 0x38]
cmp edx, 1
jne 0x4a7400
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4a73d8
cmp ecx, dword [esi + 0xf0]
jb 0x4a73d8
cmp ecx, dword [esi + 0xf4]
jae 0x4a73d8
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x4a73e1
push ecx
call fcn.00491400
add esp, 4
mov eax, dword [esp + 0x10]
test ebx, ebx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
jne 0x4a73f7
dec dword [esi + 0x1c4]
mov esi, dword [esp + 0x1c]
jmp 0x4a4f07
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x1d0], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x1d4], ecx
mov esi, dword [esp + 0x1c]
jmp 0x4a4eff
cmp edx, 2
jne 0x4a742b
mov eax, str.rollback
jmp 0x4a7430
mov eax, str.release
push eax
mov eax, dword [esp + 0x18]
push str.cannot__s_savepoint___SQL_statements_in_progress
add eax, 0x68
push esi
push eax
call fcn.00491840
add esp, 0x10
mov dword [esp + 0x10], 5
mov eax, 5
jmp 0x4a4efb
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
mov ecx, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x4a74b3
cmp byte [ebx + 0x1c], 0
jne 0x4a74b3
mov dword [esp + 0x40], 1
test ecx, ecx
je 0x4a749b
cmp dword [ebx + 0x8c], 1
jle 0x4a74bb
mov dword [esp + 0x10], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4a74e8
cmp dword [ebx + 0x90], 0
jle 0x4a74bb
mov dword [esp + 0x10], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4a74e8
mov dword [esp + 0x40], 0
movzx eax, byte [ebx + 0x1c]
cmp edx, eax
jne 0x4aaf1d
test edx, edx
jne 0x4a74d2
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4a74e0
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x4a74e0
mov eax, str.cannot_commit___no_transaction_is_active
mov dword [esp + 0x10], 1
mov edx, dword [esp + 0x14]
mov ecx, ebx
push eax
push ecx
lea eax, [edx + 0x68]
push eax
call fcn.00491840
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a4f03
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + ebx*4 + 4]
add ecx, ecx
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x4a4bc6
mov edx, dword [edi + ebx*4 + 8]
call fcn.0049bf60
mov dword [esp + 0x10], eax
cmp eax, 5
je 0x4aaf85
test eax, eax
jne 0x4aafea
cmp dword [edi + ebx*4 + 8], eax
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
je 0x4a4f07
cmp byte [edx + 0x71], al
je 0x4a4f07
cmp byte [ebx + 0x1c], al
je 0x4a756d
cmp dword [ebx + 0x8c], 1
jle 0x4a4f07
mov edx, dword [edx + 0xd8]
test edx, edx
jne 0x4a7593
mov edx, dword [ebx + 0x1c4]
mov eax, dword [esp + 0x14]
inc dword [ebx + 0x1c8]
add edx, dword [ebx + 0x1c8]
mov dword [eax + 0xd8], edx
mov eax, dword [esp + 0x38]
cmp byte [eax + 8], 2
jne 0x4a75b3
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4a75b3
mov ecx, dword [ecx]
call fcn.0049abb0
mov dword [esp + 0x10], eax
jmp 0x4a75bb
mov dword [esp + 0x10], 2
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x1d0]
mov ecx, dword [ebx + 0x1d4]
mov dword [edx + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0xd4], ecx
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x3c], ecx
add ecx, ecx
mov edx, dword [edi + ebx*4 + 0xc]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x40], edx
mov eax, dword [ebx + 8]
mov eax, dword [eax + ecx*8 + 4]
mov edi, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x40]
movzx eax, byte [ecx + edx*4 + 0x24]
movzx esi, byte [ecx + edx*4 + 0x25]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x26]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + edx*4 + 0x27]
shl esi, 8
or esi, eax
mov dword [esp + 0x38], esi
cmp edx, 4
jne 0x4a763e
test esi, esi
je 0x4a763e
mov byte [edi + 0x10], 1
mov esi, dword [esp + 0x38]
mov eax, esi
mov ecx, 0xbf04
mov esi, dword [esp + 0x1c]
cdq
mov dword [esi], eax
mov ax, word [esi + 0x1c]
and ax, cx
mov dword [esi + 4], edx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov eax, dword [edi + ebx*4 + 4]
mov edx, dword [esp + 0x18]
shl eax, 4
add eax, dword [edx + 8]
mov dword [esp + 0x38], eax
call fcn.004a04b0
mov ebx, eax
mov eax, dword [esp + 0x34]
mov cx, word [eax + 0x1c]
mov dword [eax + 4], edx
mov edx, 0xbf04
and cx, dx
mov dword [eax], ebx
mov edx, dword [esp + 0x30]
or cx, 4
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x38]
mov esi, dword [edi + edx*4 + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov edi, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x44]
call fcn.0049a7e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a76e4
mov eax, ebx
mov byte [edi + esi*4 + 0x27], bl
shr eax, 0x18
mov byte [edi + esi*4 + 0x24], al
mov eax, ebx
shr eax, 0x10
mov byte [edi + esi*4 + 0x25], al
mov eax, ebx
shr eax, 8
mov byte [edi + esi*4 + 0x26], al
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov eax, dword [ebx + edx*4 + 8]
cmp eax, 1
jne 0x4a770e
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x18]
or dword [eax + 0xc], 0x10
jmp 0x4a7723
cmp eax, 2
jne 0x4a7723
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x34]
mov al, byte [eax]
mov byte [ecx + 0x48], al
cmp dword [ebx + edx*4 + 4], 1
mov ebx, dword [esp + 0x18]
jne 0x4a58f4
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a774b
lea esp, [esp]
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a7740
mov edx, dword [esp + 0x14]
mov byte [edx + 0x6e], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov edx, dword [esp + 0x18]
mov ecx, dword [edi + ebx*4 + 4]
add ecx, ecx
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a77a3
mov eax, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x40]
movzx edx, byte [ecx + 0x28]
movzx eax, byte [ecx + 0x29]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2a]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0x2b]
shl edx, 8
or edx, eax
jmp 0x4a77a5
xor edx, edx
mov dword [esp + 0x38], edx
cmp edx, dword [edi + ebx*4 + 8]
je 0x4a4bfe
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4a77e8
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0xf0]
jb 0x4a77e8
cmp ecx, dword [edx + 0xf4]
jae 0x4a77e8
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a77f5
push ecx
call fcn.00491400
mov edx, dword [esp + 0x1c]
add esp, 4
mov eax, str.database_schema_has_changed
lea ebx, [ebx]
inc eax
cmp byte [eax], 0
jne 0x4a7800
sub eax, str.database_schema_has_changed
and eax, 0x3fffffff
cmp byte [edx + 0x1e], 0
lea edi, [eax + 1]
je 0x4a781d
xor esi, esi
jmp 0x4a7879
cmp byte [edx + 0xe2], 0
je 0x4a78d1
movzx eax, word [edx + 0xe0]
cmp edi, eax
ja 0x4a78d1
mov esi, dword [edx + 0xec]
test esi, esi
je 0x4a78d1
mov eax, dword [esi]
mov dword [edx + 0xec], eax
mov eax, dword [edx + 0xe4]
inc eax
mov dword [edx + 0xe4], eax
cmp eax, dword [edx + 0xe8]
jle 0x4a786a
mov dword [edx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004e1370
add esp, 0xc
mov eax, dword [esp + 0x14]
mov dword [eax + 0x68], esi
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + ebx*4 + 4]
mov ecx, edx
mov ebx, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [ebx + 8]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x4a78a6
mov ecx, ebx
call fcn.004b6140
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a78bb
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a78b0
mov esi, dword [esp + 0x1c]
mov eax, 0x11
mov dword [esp + 0x10], 0x11
jmp 0x4a4f03
push edi
call fcn.00491390
mov esi, eax
add esp, 4
test esi, esi
jne 0x4a786a
mov edx, dword [esp + 0x18]
mov byte [edx + 0x1e], 1
jmp 0x4a7879
cmp byte [edx + 0x6e], 0
jne 0x4aafae
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
mov esi, dword [edi + ebx*4 + 8]
mov dword [esp + 0x40], esi
mov ecx, dword [edi + ebx*4 + 0xc]
mov dword [esp + 0x44], ecx
shl ecx, 4
add ecx, dword [eax + 8]
mov dword [esp + 0x54], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x4c], eax
cmp byte [edi + ebx*4], 0x27
jne 0x4a7945
mov dword [esp + 0x48], 1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + 0x48]
cmp al, byte [ecx + 0x6f]
jae 0x4a7949
mov byte [ecx + 0x6f], al
jmp 0x4a7949
mov dword [esp + 0x48], edx
cmp byte [edi + ebx*4 + 3], dl
je 0x4a79a4
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0xe0], eax
call fcn.004a04b0
mov ecx, dword [esp + 0xe0]
mov dword [ecx + 4], edx
mov edx, 0xbf04
mov dword [ecx], eax
mov cx, word [ecx + 0x1c]
and cx, dx
mov edx, dword [esp + 0xe0]
or cx, 4
mov word [edx + 0x1c], cx
mov dword [esp + 0x40], eax
cmp eax, 2
jl 0x4aafa3
mov edx, dword [esp + 0x38]
jmp 0x4a79a8
mov esi, dword [esp + 0x14]
mov al, byte [edi + ebx*4 + 1]
cmp al, 0xfa
jne 0x4a79d1
mov eax, dword [esi]
mov ecx, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x3c]
movzx edx, word [eax + 6]
inc edx
jmp 0x4a79d9
cmp al, 0xf2
jne 0x4a79dd
mov edx, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x38], edx
push 1
push dword [esp + 0x48]
mov ecx, esi
push edx
mov edx, dword [edi + ebx*4 + 4]
call fcn.004a4690
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
je 0x4ab240
mov byte [eax + 0x14], 1
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [eax]
mov dword [esp + 0xe8], edi
mov edi, dword [edi + 4]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x10], edx
test edx, edx
je 0x4a7a47
cmp byte [edi + 0x10], 0
je 0x4a7a47
mov dword [eax + 0x28], ecx
mov dword [esp + 0x10], 8
jmp 0x4a7ae2
cmp ebx, 1
jne 0x4a7a91
mov ecx, dword [edi]
lea edx, [esp + 0x118]
mov dword [esp + 0x118], 0xffffffff
call fcn.004990c0
cmp dword [esp + 0x118], 0
jne 0x4a7a86
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x50]
mov dword [eax], 0
jmp 0x4a7ada
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x10]
or eax, 0xffffffff
mov dword [esi + 0x14], ebx
mov word [esi + 0x5c], ax
mov eax, dword [esp + 0xe8]
mov dword [esi + 0x10], ecx
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], dl
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a7aba
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x28], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
cmp byte [eax + edx*4 + 1], 0xfa
mov eax, dword [esp + 0x50]
setne cl
mov byte [eax + 0x16], cl
mov ecx, dword [esp + 0x50]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edx, dword [edi + ebx*4 + 4]
mov ecx, dword [esp + 0x14]
push 1
push 0xffffffffffffffff
push dword [edi + ebx*4 + 8]
call fcn.004a4690
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
je 0x4ab240
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov byte [eax + 0x14], 1
mov esi, dword [esp + 0x38]
push 0x41e
mov eax, dword [ecx + 0xc]
add esi, 0x20
and eax, 0x1000
xor ecx, ecx
or eax, 0x800
shr eax, 0xb
push eax
push esi
call fcn.0049ba20
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a7dd3
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4a7ba9
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4a7ba9
push 0x1f4
push eax
call dword [0x541f34]
add esp, 8
jmp 0x4a7bb1
test ecx, ecx
jne 0x4a7dd3
mov ecx, dword [esp + 0x38]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.0049bf60
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4a7dd3
mov eax, dword [esp + 0x38]
cmp dword [edi + ebx*4 + 0x10], esi
je 0x4a7d3e
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x150]
push ecx
lea ecx, [esp + 0x158]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.0049d340
mov esi, eax
add esp, 0xc
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4a7d1b
mov esi, dword [esp + 0x150]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.0049b870
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a7c33
mov esi, dword [ecx + 0x10]
call fcn.00495ff0
mov ecx, esi
call fcn.0049a070
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x154]
mov eax, dword [edi + edx*4 + 0x10]
mov esi, dword [ecx]
mov dword [esp + 0xe4], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xe8], eax
mov edi, dword [eax + 4]
cmp byte [edi + 0x10], 0
je 0x4a7c6f
mov dword [esp + 0x10], 8
jmp 0x4a7cf3
cmp ebx, 1
jne 0x4a7ca8
mov ecx, dword [edi]
lea edx, [esp + 0x11c]
mov dword [esp + 0x11c], 0xffffffff
call fcn.004990c0
cmp dword [esp + 0x11c], 0
jne 0x4a7ca1
mov dword [esp + 0x10], 0x10
jmp 0x4a7cef
mov eax, dword [esp + 0xe8]
or ecx, 0xffffffff
mov dword [esi + 0x14], ebx
mov word [esi + 0x5c], cx
mov ecx, dword [esp + 0xe4]
mov dword [esi + 0x10], ecx
mov dword [esi], eax
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a7cd2
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x28]
mov al, byte [edx + 0x49]
mov byte [ecx + 4], al
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov byte [eax + 0x16], 0
mov ecx, dword [esp + 0x38]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ebx, dword [eax + 0x20]
mov esi, dword [eax]
mov edi, dword [ebx + 4]
cmp byte [edi + 0x10], 0
je 0x4a7d56
mov dword [esp + 0x10], 8
jmp 0x4a7dcf
mov ecx, dword [edi]
lea edx, [esp + 0x130]
mov dword [esp + 0x130], 0xffffffff
call fcn.004990c0
cmp dword [esp + 0x130], 0
jne 0x4a7d83
mov dword [esp + 0x10], 0x10
jmp 0x4a7dcb
or eax, 0xffffffff
mov dword [esi + 0x14], 1
mov word [esi + 0x5c], ax
mov dword [esi + 0x10], 0
mov dword [esi], ebx
mov dword [esi + 4], edi
mov byte [esi + 0x40], 1
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
test eax, eax
je 0x4a7dae
mov dword [eax + 0xc], esi
mov dword [edi + 8], esi
mov byte [esi + 0x43], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x16], 1
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
cmp byte [ecx + 0x16], 0
sete al
mov byte [ecx + 0x17], al
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov edx, dword [edi + ebx*4 + 4]
mov ecx, dword [esp + 0x14]
push 0
push 0xffffffffffffffff
push dword [edi + ebx*4 + 0xc]
call fcn.004a4690
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
je 0x4ab236
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x38]
mov byte [eax + 0x16], 1
mov eax, dword [esp + 0x38]
mov byte [eax + 0x17], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4a7e8c
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a7e5e
call fcn.0049bbb0
jmp 0x4a7e69
mov ecx, dword [esi]
test ecx, ecx
je 0x4a7e6d
call fcn.0049c250
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4a7e8c
mov eax, dword [esi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esp + 0x18]
add esp, 4
mov byte [edx + 0x70], 0
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x40], ecx
cmp dword [ecx], 0
je 0x4a5d05
movzx eax, byte [edi + ebx*4]
mov dword [esp + 0x3c], eax
mov byte [ecx + 0x14], 0
mov ecx, dword [esp + 0x40]
cmp byte [ecx + 0x16], 0
je 0x4a8161
mov ecx, dword [esp + 0x34]
call fcn.004a4790
mov ecx, dword [esp + 0x34]
call fcn.004a04b0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], edx
mov byte [eax + 0x11], 0
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a810c
test al, 8
jne 0x4a7f24
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
cmp dword [esp + 0x68], 0
jne 0x4a7f56
cmp dword [esp + 0x6c], 0x80000000
jne 0x4a7f56
fld qword [ecx + 8]
fld qword [esp + 0x1a0]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4a7fa7
fcomp qword [esp + 0x138]
fnstsw ax
test ah, 0x41
je 0x4a7fa9
mov eax, dword [esp + 0x3c]
cmp eax, 0x2b
je 0x4a80d8
cmp eax, 0x2d
je 0x4a80d8
fild qword [esp + 0x68]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x4a810c
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
add eax, 0xffffffff
mov dword [esp + 0x68], eax
adc ecx, 0xffffffff
mov dword [esp + 0x6c], ecx
jmp 0x4a8114
fstp st(0)
fld qword [esp + 0x138]
mov dword [esp + 0x38], 1
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x3c]
jne 0x4a8028
cmp eax, 0x2e
je 0x4a7fd4
cmp eax, 0x2d
jne 0x4a80be
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov ecx, esi
call fcn.0049c870
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a801d
cmp byte [esi + 0x43], al
jne 0x4a8001
xor esi, esi
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], esi
jmp 0x4a80b3
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.0049c9c0
mov esi, eax
mov dword [esp + 0x10], esi
test esi, esi
jmp 0x4a80a9
mov esi, dword [esp + 0x10]
test esi, esi
jmp 0x4a80a9
cmp eax, 0x2b
je 0x4a8036
cmp eax, 0x2c
jne 0x4a80be
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4a806a
cmp byte [esi + 0x41], 0
je 0x4a806a
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, esi
call fcn.0049c870
mov ecx, eax
mov dword [esp + 0x10], eax
test ecx, ecx
jne 0x4a80a3
cmp byte [esi + 0x43], al
jne 0x4a808a
mov dword [esp + 0x38], 1
jmp 0x4a80b3
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.0049caa0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4aafea
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
je 0x4a4efb
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
fild qword [esp + 0x68]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x4a810c
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
add eax, 1
mov dword [esp + 0x68], eax
adc ecx, 0
mov dword [esp + 0x6c], ecx
jmp 0x4a8114
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x38]
push edx
push 0
push ecx
mov ecx, dword [esp + 0x4c]
xor edx, edx
push eax
mov ecx, dword [ecx]
call fcn.0049cb80
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4aafea
cmp dword [esp + 0x38], eax
jne 0x4a81d8
mov eax, dword [esp + 0x40]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
jmp 0x4a81d8
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x48], eax
mov ax, word [esp + 0x60]
mov word [esp + 0x4c], ax
mov eax, dword [esp + 0x3c]
cmp eax, 0x2e
je 0x4a818c
cmp eax, 0x2c
je 0x4a818c
xor eax, eax
jmp 0x4a8191
mov eax, 8
mov word [esp + 0x4e], ax
mov eax, dword [edi + ebx*4 + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x58], eax
lea edx, [esp + 0x48]
mov ecx, dword [ecx]
lea eax, [esp + 0x38]
push eax
push 0
push 0
push 0
call fcn.0049cb80
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4aafea
mov eax, dword [esp + 0x40]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x40]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x3c]
cmp eax, 0x2d
je 0x4a8236
cmp eax, 0x2e
je 0x4a8236
mov ecx, dword [esp + 0x38]
test ecx, ecx
jg 0x4a821d
jne 0x4a8208
cmp eax, 0x2b
je 0x4a821d
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov eax, dword [eax]
cmp byte [eax + 0x43], 1
setne cl
mov dword [esp + 0x38], ecx
jmp 0x4a8282
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
mov ecx, dword [ecx]
call fcn.0049d1b0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jmp 0x4a8274
mov ecx, dword [esp + 0x38]
test ecx, ecx
js 0x4a825f
jne 0x4a8245
cmp eax, 0x2e
je 0x4a825f
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
inc eax
mov edx, dword [esp + 0x14]
jmp 0x4a49ed
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
mov ecx, dword [ecx]
call fcn.0049d040
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4aafea
mov eax, dword [esp + 0x40]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x38], 0
je 0x4a824d
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov edx, dword [esp + 0x14]
inc eax
jmp 0x4a49ed
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
cmp dword [eax], 0
je case.0x4a4b48.10
mov ecx, dword [esp + 0xe0]
mov byte [eax + 0x14], 0
call fcn.004a04b0
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x38], edx
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x3c], ecx
cmp dword [ecx], edx
je 0x4a83b0
mov eax, dword [esp + 0x34]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4a8324
mov ecx, eax
call fcn.004a01b0
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov ecx, dword [ecx + 0x28]
lea edx, [esp + 0x48]
push 0x97
push edx
push dword [eax + 0x14]
mov edx, dword [eax + 0x18]
call fcn.004a3780
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x4ab240
cmp byte [edi + ebx*4], 0x31
jne 0x4a835a
or word [eax + 6], 0x10
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x40]
mov edx, eax
push ecx
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0
mov ecx, dword [ecx]
call fcn.0049cb80
mov ecx, dword [esp + 0x54]
add esp, 0x10
mov dword [esp + 0x10], eax
call fcn.004a3960
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4a4eff
cmp dword [esp + 0x40], eax
sete al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x44], 0
mov edx, dword [esp + 0x38]
cmp byte [edi + ebx*4], 0x31
jne 0x4a83d8
test edx, edx
mov edx, dword [esp + 0x14]
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
test edx, edx
mov edx, dword [esp + 0x14]
jne case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0x10]
xor esi, esi
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x48], eax
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [eax + 0x40], 0
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x44], 0
mov ebx, dword [esp + 0x3c]
mov edi, dword [ebx]
mov dword [esp + 0x40], edi
mov eax, dword [ebx + 0x28]
movzx eax, word [eax + 6]
cmp si, ax
mov word [esp + 0x44], ax
mov esi, dword [esp + 0x48]
mov edx, eax
mov word [esp + 0x38], cx
jae 0x4a8472
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4a851c
inc cx
mov word [esp + 0x38], cx
cmp cx, dx
jb 0x4a8455
test edi, edi
je 0x4a4ef7
mov eax, dword [ebx + 0x28]
mov ebx, dword [esp + 0x34]
mov ecx, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x60], esi
mov word [esp + 0x54], ax
mov eax, 0x20
mov word [esp + 0x56], ax
call fcn.004a04b0
mov cx, word [ebx + 0x1c]
mov esi, 0xbf04
and cx, si
mov dword [ebx], eax
mov dword [ebx + 4], edx
or cx, 4
mov word [ebx + 0x1c], cx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
add eax, 0x40
mov dword [esp + 0x6c], edx
push eax
push 0
push 0
push 0
lea edx, [esp + 0x60]
call fcn.0049cb80
add esp, 0x10
mov dword [esp + 0x10], eax
test byte [esp + 0x56], 0x20
jne 0x4a9fe7
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x68]
jne 0x4a850a
cmp eax, dword [esp + 0x6c]
je 0x4a9fe7
mov esi, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x10]
mov dword [ebx], ecx
jmp 0x4a4eff
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov eax, dword [edx + eax*4 + 8]
dec eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4a85f0
mov eax, dword [esp + 0x34]
lea esi, [esp + 0x40]
push esi
mov dword [esp + 0x44], 0
push 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
push eax
mov dword [esp + 0x54], edx
push edx
xor edx, edx
mov dword [esp + 0x5c], eax
call fcn.0049cb80
mov dword [esp + 0x20], eax
add esp, 0x10
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x38]
sete cl
mov byte [eax + 0x11], cl
mov eax, dword [esp + 0x38]
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4a85e0
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x40], ecx
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ebx, dword [edi + ebx*4 + 8]
dec ebx
mov dword [eax + 0x40], 0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x18]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [esi + 4], eax
mov dword [esi], ecx
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
mov ecx, 0xbf04
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edx + 0x34]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], 0
mov ecx, dword [edi + ebx*4 + 4]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x40], ecx
cmp dword [ecx], 0
je 0x4a8915
mov dword [esp + 0x48], 0
cmp byte [ecx + 0x13], 0
jne 0x4a8827
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, esi
or eax, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
jne 0x4a874e
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4a86bd
cmp byte [esi + 0x41], al
jne 0x4a8725
mov ecx, esi
call fcn.0049c870
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a86f7
cmp byte [esi + 0x43], al
jne 0x4a86de
mov eax, 1
mov dword [esp + 0x44], eax
jmp 0x4a8709
mov ecx, esi
mov dword [esp + 0x44], 0
call fcn.0049caa0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov ebx, ecx
mov dword [esp + 0x10], ebx
test ecx, ecx
jne 0x4aafee
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a8725
mov esi, 1
xor edx, edx
mov dword [esp + 0x38], esi
add esi, esi
mov dword [esp + 0x3c], edx
adc edx, edx
jmp 0x4a8802
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov dword [esp + 0xe8], edx
cmp byte [edx + 0x43], 1
je 0x4a8770
xor esi, esi
xor edx, edx
mov dword [esp + 0x10], edx
add esi, 1
mov dword [esp + 0x38], esi
adc edx, 0
mov dword [esp + 0x3c], edx
cmp edx, 0x7fffffff
jg 0x4a87fe
jl 0x4a8765
cmp esi, 0xffffffff
jae 0x4a87fe
add esi, 1
adc edx, 0
jmp 0x4a8802
cmp word [edx + 0x3e], 0
jne 0x4a87be
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx eax, byte [esi + edi*2]
movzx edx, byte [esi + edi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov esi, dword [edx + 0x28]
mov edx, dword [edx + 0x2c]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x10], 0
cmp esi, 0xffffffff
jne 0x4a8740
cmp edx, 0x7fffffff
jne 0x4a8740
mov eax, dword [esp + 0x40]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x4a874e
xor esi, esi
xor edx, edx
mov eax, dword [esp + 0x40]
mov edi, dword [eax]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a8827
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4a8820
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a8812
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x13], 0
je 0x4a88f2
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
xor eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x48], eax
lea ecx, [ecx]
test eax, eax
jne 0x4a8874
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4a8874
cmp esi, edx
jne 0x4a8874
add ecx, 1
mov dword [esp + 0x38], ecx
adc edx, esi
mov dword [esp + 0x3c], edx
jmp 0x4a88a3
lea edx, [esp + 0x38]
mov ecx, 8
call fcn.00492f20
cmp dword [esp + 0x48], 5
mov ecx, dword [esp + 0x38]
jge 0x4a889f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jmp 0x4a88a3
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x44]
push eax
push 0
push edx
push ecx
mov ecx, dword [esp + 0x50]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0049cb80
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], eax
test ecx, ecx
jne 0x4a88f2
cmp eax, 0x64
jge 0x4a88e7
cmp dword [esp + 0x44], ecx
jne 0x4a88f2
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jmp 0x4a8850
cmp dword [esp + 0x44], 0
je 0x4aafc8
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x40]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x44], 0
mov ax, word [esi + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
jmp 0x4a7011
mov eax, dword [edi + ebx*4 + 8]
mov edx, dword [edx + 0x58]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [eax + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x48], ecx
cmp byte [edi + ebx*4], 0x36
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [esp + 0x10], ecx
jne 0x4a8974
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x3c], ecx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
jmp 0x4a8979
cdq
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
test byte [edi + ebx*4 + 3], 1
je 0x4a898b
mov eax, dword [esp + 0x14]
inc dword [eax + 0x74]
test byte [edi + ebx*4 + 3], 2
je 0x4a89b0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov dword [edx + 0x30], eax
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
test byte [esi + 0x1c], 1
je 0x4a89d4
mov dword [esi + 0x14], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x18], 0
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], ecx
test byte [edi + ebx*4 + 3], 0x10
je 0x4a89e0
mov ebx, dword [ecx + 0x40]
jmp 0x4a89e2
xor ebx, ebx
mov eax, 0x4000
mov dword [esp + 0x50], ebx
test word [esi + 0x1c], ax
je 0x4a89f5
mov edi, dword [esi]
jmp 0x4a89f7
xor edi, edi
mov dword [esp + 0x4c], edi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a8a36
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a8a1d
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a8a07
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
jmp 0x4a8a3a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
xor edx, edx
mov ecx, dword [ecx]
push ebx
mov ebx, dword [esp + 0x34]
movzx eax, byte [eax + ebx*4 + 3]
and eax, 8
push eax
push edi
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [esp + 0x58]
push dword [esp + 0x58]
call fcn.0049f420
mov esi, eax
add esp, 0x1c
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], esi
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x48]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x48]
mov dword [eax + 0x44], 0
test esi, esi
jne 0x4a4ef7
mov edx, dword [esp + 0x18]
cmp dword [edx + 0xb8], esi
je 0x4aadef
mov esi, dword [esp + 0x2c]
cmp dword [esi + ebx*4 + 0x10], 0
je 0x4aadef
mov eax, dword [esp + 0x48]
push dword [esp + 0x44]
push dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 8]
add ecx, ecx
mov edx, dword [eax + ecx*8]
mov dword [esp + 0x5c], edx
mov ecx, dword [esi + ebx*4 + 0x10]
mov dword [esp + 0x60], ecx
mov al, byte [esi + ebx*4 + 3]
mov ebx, dword [esp + 0x20]
and al, 4
movzx eax, al
neg eax
push ecx
sbb eax, eax
and eax, 5
add eax, 0x12
push edx
push eax
mov dword [esp + 0x70], eax
push dword [ebx + 0xb4]
mov eax, dword [ebx + 0xb8]
call eax
mov eax, dword [esp + 0x3c]
add esp, 0x18
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
jmp 0x4a49ed
mov eax, dword [edx + 0x34]
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov ecx, dword [edi + ebx*4 + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], esi
cmp dword [eax + 0xb8], 0
je 0x4a8b53
cmp dword [edi + ebx*4 + 0x10], 0
je 0x4a8b53
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
cmp byte [esi + 0x15], 0
je 0x4a8bc7
mov ecx, dword [esi]
lea eax, [esp + 0x12c]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.0049cb80
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4aafea
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x12c]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a8bba
mov ecx, dword [esi]
lea edx, [esp + 0x12c]
call fcn.0049d040
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4aafea
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a8c14
mov edi, dword [esi]
test edi, edi
je 0x4a8c10
cmp byte [edi + 0x43], 2
jb 0x4a8be6
mov ecx, edi
call fcn.0049af20
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4aafea
cmp byte [edi + 0x43], 1
jne 0x4a8bf6
cmp dword [edi + 0x50], 0
jne 0x4a8bf6
xor eax, eax
jmp 0x4a8bfb
mov eax, 1
mov edi, dword [esp + 0x2c]
test eax, eax
je 0x4a8c14
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a8c14
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a8c41
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a8c3a
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a8c24
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
call fcn.0049f6c0
mov esi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], esi
mov dword [eax + 0x44], 0
test esi, esi
jne 0x4a8c9c
mov esi, dword [esp + 0x18]
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4a8c9c
mov eax, dword [edi + ebx*4 + 0x10]
test eax, eax
je 0x4a8c9c
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 8]
add ecx, ecx
push dword [eax + ecx*8]
push 9
push dword [esi + 0xb4]
call edx
add esp, 0x18
test byte [edi + ebx*4 + 8], 1
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
je 0x4a4f07
inc dword [edx + 0x74]
jmp 0x4a4f07
mov ebx, dword [esp + 0x18]
mov eax, dword [edx + 0x74]
add dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x74], 0
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov ecx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x38], esi
mov eax, dword [esi]
mov dword [esp + 0x3c], eax
cmp byte [esi + 0x15], 0
je 0x4a8d72
mov ecx, dword [esi]
lea eax, [esp + 0x128]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.0049cb80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x128]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a8d6c
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.0049d040
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov byte [esi + 0x15], 0
jmp 0x4a8db0
mov edi, dword [esi]
test edi, edi
je 0x4a8db7
cmp byte [edi + 0x43], 2
jb 0x4a8d93
mov ecx, edi
call fcn.0049af20
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
cmp byte [edi + 0x43], 1
jne 0x4a8da3
cmp dword [edi + 0x50], 0
jne 0x4a8da3
xor eax, eax
jmp 0x4a8da8
mov eax, 1
test eax, eax
je 0x4a8db7
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xe8], edx
cmp byte [eax + 0x17], 0
je 0x4a8e58
cmp byte [edx + 0x43], 1
je 0x4a8ddc
xor ecx, ecx
xor esi, esi
jmp 0x4a8e30
cmp word [edx + 0x3e], 0
jne 0x4a8e2a
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx eax, byte [esi + edi*2]
movzx edx, byte [esi + edi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov ecx, dword [edx + 0x28]
mov esi, dword [edx + 0x2c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ecx
mov eax, dword [ebx + 0x48]
cdq
cmp esi, edx
jg 0x4ab075
jl 0x4a8e52
cmp ecx, eax
ja 0x4ab075
mov dword [esp + 0x40], ecx
jmp 0x4a8eba
cmp word [edx + 0x3e], 0
jne 0x4a8ea6
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx eax, byte [esi + edi*2]
movzx edx, byte [esi + edi*2 + 1]
shl eax, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov ebx, dword [esp + 0x18]
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x40], ecx
cmp ecx, dword [ebx + 0x48]
ja 0x4ab075
mov ebx, dword [esp + 0x1c]
mov edx, ecx
push 0
mov ecx, ebx
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4ab240
mov eax, dword [esp + 0x40]
mov ecx, 0xbf10
mov edi, dword [ebx + 0x14]
mov dword [ebx + 0x18], eax
mov ax, word [ebx + 0x1c]
and ax, cx
or ax, 0x10
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x17], 0
je 0x4a8f20
mov ecx, dword [esp + 0x3c]
xor edx, edx
push 0
push edi
push dword [esp + 0x48]
call fcn.0049c390
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [ebx + 0x1f], 1
mov esi, ebx
jmp 0x4a4eff
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov al, byte [esi + 0x43]
test al, al
jne 0x4a8f4a
mov ebx, dword [esp + 0x1c]
mov esi, ebx
mov dword [esp + 0x10], 4
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x1f], 1
jmp 0x4a4eff
cmp al, 2
jb 0x4a8f5d
mov ecx, esi
call fcn.0049af20
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a8f71
push 0
push edi
push ebx
xor edx, edx
mov ecx, esi
call fcn.0049c390
add esp, 0xc
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x1c]
mov esi, ebx
mov eax, dword [esp + 0x10]
mov byte [ebx + 0x1f], 1
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov dword [esp + 0x38], edx
cmp byte [esi + 0x14], 0
jne 0x4a4ef7
cmp byte [esi + 0x15], 0
je 0x4a8faf
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
jmp 0x4a9103
cmp dword [esi + 0x38], 0
je 0x4a903c
mov eax, dword [esi + 0x38]
lea ecx, [esp + 0x40]
push ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
push dword [esi + 0x38]
mov eax, dword [eax + 0x30]
call eax
mov dword [esp + 0x18], eax
add esp, 8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4a9011
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0xf0]
jb 0x4a9011
cmp ecx, dword [edx + 0xf4]
jae 0x4a9011
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a901a
push ecx
call fcn.00491400
add esp, 4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
jmp 0x4a910f
mov edi, dword [esi]
test edi, edi
je 0x4a907c
cmp byte [edi + 0x43], 2
jb 0x4a9061
mov ecx, edi
call fcn.0049af20
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov edx, dword [esp + 0x38]
cmp byte [edi + 0x43], 1
jne 0x4a906d
cmp dword [edi + 0x50], 0
je 0x4a907c
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
mov edx, dword [esp + 0x38]
cmp byte [edx + 0x11], 0
mov dword [esp + 0x10], 0
je 0x4a9092
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
jmp 0x4a9103
mov edx, dword [edx]
mov dword [esp + 0xe8], edx
cmp byte [edx + 0x43], 1
je 0x4a90a7
xor eax, eax
xor ecx, ecx
jmp 0x4a90fb
cmp word [edx + 0x3e], 0
jne 0x4a90f5
movsx eax, word [edx + 0x5c]
mov ebx, dword [edx + eax*4 + 0x60]
mov ecx, ebx
movzx edi, word [edx + eax*2 + 0xb0]
lea eax, [edx + 0x20]
push eax
movzx esi, word [ebx + 0xc]
add esi, dword [ebx + 0x40]
movzx edx, byte [esi + edi*2]
movzx eax, byte [esi + edi*2 + 1]
shl edx, 8
or edx, eax
movzx eax, word [ebx + 0x12]
and edx, eax
add edx, dword [ebx + 0x40]
call fcn.0049afe0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [esi], eax
mov ax, word [esi + 0x1c]
mov dword [esi + 4], ecx
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
test esi, esi
je 0x4a5227
push dword [esi + 0x44]
call fcn.00491400
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esi + 0x44], 0
mov byte [esi + 0x43], 0
mov esi, dword [esp + 0x1c]
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
mov esi, dword [ecx]
mov dword [esp + 0x3c], esi
test esi, esi
jne 0x4a91a6
mov dword [esp + 0x40], 1
jmp 0x4a91fd
cmp byte [esi + 0x43], 1
jne 0x4a91bc
cmp byte [esi + 0x41], 0
je 0x4a91bc
mov dword [esp + 0x10], 0
jmp 0x4a91fd
mov ecx, esi
call fcn.0049c870
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a91f5
cmp byte [esi + 0x43], al
jne 0x4a91da
mov dword [esp + 0x40], 1
jmp 0x4a91f5
mov ecx, esi
mov dword [esp + 0x40], 0
call fcn.0049caa0
test eax, eax
mov dword [esp + 0x10], eax
sete al
mov byte [esi + 0x41], al
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x40]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [edi + ebx*4 + 8]
test eax, eax
jle 0x4a5227
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
je 0x4a4cf1
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
inc dword [edx + 0xbc]
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x38], ecx
mov esi, dword [ecx]
mov dword [esp + 0x3c], esi
test esi, esi
je 0x4a92d5
mov ecx, esi
call fcn.0049c870
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a92a1
cmp byte [esi + 0x43], al
jne 0x4a928e
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], eax
jmp 0x4a92a1
mov ecx, esi
mov dword [esp + 0x40], 0
call fcn.0049c9c0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
sete cl
mov byte [eax + 0x12], cl
mov eax, dword [esp + 0x38]
mov byte [eax + 0x15], 0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x38]
jmp 0x4a92dd
mov dword [esp + 0x40], 1
mov al, byte [esp + 0x40]
mov esi, dword [esp + 0x1c]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x40], 0
je case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xd8], 0
jne 0x4ab1ee
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
test eax, eax
je case.0x4a4b48.10
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
test ecx, ecx
jne 0x4a934b
mov ebx, dword [esp + 0x18]
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov dword [esp + 0x40], 1
lea edx, [esp + 0x40]
cmp byte [edi + ebx*4], 0x42
jne 0x4a9364
call fcn.0049d040
jmp 0x4a9369
call fcn.0049d1b0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x40]
mov byte [ecx + 0x14], al
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
cmp dword [esp + 0x40], 0
jne 0x4a93a9
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov al, byte [edi + ebx*4 + 3]
test al, al
je 0x4a93a9
movzx eax, al
inc dword [edx + eax*4 + 0xb4]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
mov byte [eax + 0x11], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je case.0x4a4b48.10
mov edx, dword [esp + 0xe0]
mov esi, 0x4000
test word [edx + 0x1c], si
mov esi, dword [esp + 0x1c]
je 0x4a9412
mov ecx, edx
call fcn.004a01b0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a4eff
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xe0]
mov edx, dword [edx + 0x18]
mov dword [esp + 0x40], edx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x44], esi
test byte [edi + ebx*4 + 3], 0x10
je 0x4a9433
mov eax, dword [eax + 0x40]
jmp 0x4a9435
xor eax, eax
push eax
push dword [edi + ebx*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x51f88a
push edx
push eax
mov edx, esi
call fcn.0049f420
mov esi, dword [esp + 0x38]
add esp, 0x1c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je case.0x4a4b48.10
mov eax, dword [eax + 0x28]
mov dword [esp + 0x48], eax
mov ax, word [edi + ebx*4 + 0xc]
mov word [esp + 0x4c], ax
xor eax, eax
mov word [esp + 0x4e], ax
mov eax, dword [edi + ebx*4 + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + edx*8]
mov dword [esp + 0x58], eax
lea edx, [esp + 0x48]
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 0
call fcn.0049cb80
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a94e9
cmp dword [esp + 0x40], eax
jne 0x4a94e9
mov ecx, dword [esp + 0x3c]
call fcn.0049f6c0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x3c], esi
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a5227
cmp byte [esi + 0x15], 0
je 0x4a958a
mov ecx, dword [esi]
lea eax, [esp + 0x124]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.0049cb80
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x124]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a9584
mov ecx, dword [esi]
lea edx, [esp + 0x124]
call fcn.0049d040
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov byte [esi + 0x15], 0
jmp 0x4a95c8
mov edi, dword [esi]
test edi, edi
je 0x4a95cf
cmp byte [edi + 0x43], 2
jb 0x4a95ab
mov ecx, edi
call fcn.0049af20
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
cmp byte [edi + 0x43], 1
jne 0x4a95bb
cmp dword [edi + 0x50], 0
jne 0x4a95bb
xor eax, eax
jmp 0x4a95c0
mov eax, 1
test eax, eax
je 0x4a95cf
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], 0
cmp byte [eax + 0x14], 0
jne 0x4aade8
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x168]
mov ecx, esi
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
call fcn.0049c300
xor eax, eax
xor edx, edx
mov dword [esp + 0x178], eax
mov ecx, esi
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
lea eax, [esp + 0x178]
push eax
push 1
push dword [esp + 0x170]
call fcn.004a0ee0
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4aafee
mov ebx, dword [esp + 0x18c]
mov al, byte [ebx]
cmp al, 0x80
jae 0x4a9699
movzx esi, al
mov dword [esp + 0x134], esi
jmp 0x4a96ae
lea edx, [esp + 0x134]
mov ecx, ebx
call fcn.00494200
mov esi, dword [esp + 0x134]
cmp esi, 3
jb 0x4aafd3
mov edi, dword [esp + 0x190]
cmp esi, edi
jg 0x4aafd3
lea ecx, [ebx - 1]
add ecx, esi
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a96dd
movzx edx, al
mov dword [esp + 0x120], edx
jmp 0x4a96f0
lea edx, [esp + 0x120]
call fcn.00494200
mov edx, dword [esp + 0x120]
lea eax, [edx - 1]
cmp eax, 8
ja 0x4aafd3
cmp edx, 7
je 0x4aafd3
cmp edx, 0xc
jb 0x4a9711
lea ecx, [edx - 0xc]
shr ecx, 1
jmp 0x4a9718
movzx ecx, byte [edx + 0x5252fc]
lea eax, [ecx + esi]
cmp edi, eax
jb 0x4aafd3
sub edi, ecx
lea eax, [esp + 0x1d8]
push eax
lea ecx, [ebx + edi]
call fcn.004a34d0
mov ecx, dword [esp + 0x1e0]
add esp, 4
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x178]
mov dword [esp + 0x40], eax
call fcn.004a03f0
mov esi, dword [esp + 0x1c]
mov ecx, 0xbf04
mov dword [esp + 0x10], 0
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esi], eax
xor eax, eax
mov dword [esi + 4], ecx
jmp 0x4a4eff
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x38], esi
cmp dword [esi], 0
je 0x4a5227
mov eax, dword [esi + 0x28]
mov dword [esp + 0x40], eax
mov ax, word [edi + ebx*4 + 0x10]
mov word [esp + 0x44], ax
mov eax, 0xc
cmp byte [edi + ebx*4 + 3], 0
jne 0x4a97c7
mov eax, 4
mov word [esp + 0x46], ax
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edx, [esp + 0x140]
lea eax, [eax + ecx*8]
mov dword [esp + 0x50], eax
mov ecx, dword [esi]
call fcn.0049c300
mov edx, dword [esp + 0x140]
mov ecx, edx
mov eax, dword [esp + 0x144]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4a98d5
jb 0x4a982d
cmp ecx, 0x7ffffffe
ja 0x4a98d5
mov ecx, dword [esi]
xor eax, eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
lea eax, [esp + 0x1a8]
push eax
push 1
push edx
xor edx, edx
call fcn.004a0ee0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x10], esi
test esi, esi
je 0x4a989c
mov eax, dword [esp + 0x3c]
jmp 0x4a98e3
mov edx, dword [esp + 0x1bc]
lea eax, [esp + 0x40]
mov ecx, dword [esp + 0x1c0]
push eax
call fcn.004a39d0
add esp, 4
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x1a8]
call fcn.004a03f0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], 0
jmp 0x4a98e3
xor eax, eax
mov dword [esp + 0x10], 0xb
mov dword [esp + 0x3c], eax
cmp byte [edi + ebx*4], 0x48
jne 0x4a98ed
neg eax
jmp 0x4a98ee
inc eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
test eax, eax
jle case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x3c], edx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4a9960
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4a994a
cmp byte [ecx + 0x70], 2
jae 0x4a994a
cmp dword [ecx + 0x60], 0
jl 0x4a994a
inc edx
mov dword [esp + 0x3c], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x40], ecx
test eax, eax
jne 0x4a9930
cmp edx, 1
jg 0x4ab04b
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x38]
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [esp + 0x44], eax
add eax, eax
push ecx
mov ecx, dword [edx + 8]
mov edx, dword [edi + ebx*4 + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0049fb20
mov dword [esp + 0x14], eax
mov ecx, 0xbf04
mov ax, word [esi + 0x1c]
add esp, 4
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x38]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edx
jmp 0x4a4eff
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
mov esi, dword [edi + ebx*4 + 0xc]
mov ebx, dword [edi + ebx*4 + 4]
neg esi
sbb esi, esi
and esi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [edi + eax*4 + 8]
mov eax, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 4]
mov edi, dword [eax + 4]
mov eax, dword [edi + 8]
test eax, eax
je 0x4a9a01
lea ebx, [ebx]
cmp byte [eax + 0x54], 0
je 0x4a99fa
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a99f0
push 0
mov edx, ebx
mov ecx, edi
call fcn.0049ade0
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a9a2b
push esi
push eax
mov edx, ebx
mov ecx, edi
call fcn.0049f980
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
cmp dword [edx + ecx*4 + 0xc], 0
je 0x4a4ef7
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
add dword [ebx + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4a4ef7
lea esi, [ecx + ecx*4]
cdq
mov ecx, dword [ebx + 0x58]
add dword [ecx + esi*8], eax
mov eax, dword [esp + 0x10]
adc dword [ecx + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
jmp 0x4a4eff
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], 0
mov ecx, dword [edi + ebx*4 + 4]
xor ebx, ebx
mov eax, dword [eax + 8]
shl ecx, 4
add eax, ecx
mov dword [esp + 0x40], eax
cmp byte [edi + edx*4], 0x61
lea edx, [esp + 0x158]
push ecx
setne bl
lea ecx, [esp + 0x160]
dec ebx
and ebx, 3
add ebx, 2
mov dword [esp + 0x40], ebx
mov eax, dword [eax + 4]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.0049d340
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a9ad8
mov eax, dword [esp + 0x38]
cdq
mov dword [esi], eax
jmp 0x4a5543
mov esi, dword [esp + 0x158]
or ebx, 8
mov edx, ebx
mov ecx, esi
call fcn.0049b870
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a9b01
mov esi, dword [ecx + 0x10]
call fcn.00495ff0
mov ecx, esi
call fcn.0049a070
mov eax, dword [esp + 0x15c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cdq
mov dword [esp + 0x10], 0
mov dword [esi], eax
jmp 0x4a5543
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
cmp dword [edi + ebx*4 + 8], 0
jne 0x4a9b48
mov eax, dword [esp + 0x18]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 0xc]
test byte [eax + 0x4a], 1
je 0x4a9c11
mov eax, dword [esp + 0x18]
add edx, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], str.sqlite_master
mov eax, dword [edi + ebx*4 + 4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
add eax, 0x68
mov dword [esp + 0x4c], eax
push dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x1c]
push str.sqlite_master
mov eax, dword [ebx + 8]
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push ebx
call fcn.00492bb0
add esp, 0x14
mov dword [esp + 0x40], eax
test eax, eax
je 0x4ab244
push 0
lea eax, [esp + 0x48]
mov byte [ebx + 0x7c], 1
mov edx, dword [esp + 0x44]
mov ecx, ebx
push eax
push fcn.004c5720
mov dword [esp + 0x5c], 0
call fcn.004c22f0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a9bd0
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4a9c02
cmp ecx, dword [ebx + 0xf0]
jb 0x4a9c02
cmp ecx, dword [ebx + 0xf4]
jae 0x4a9c02
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
mov byte [ebx + 0x7c], 0
jmp 0x4a9c15
push ecx
call fcn.00491400
add esp, 4
mov byte [ebx + 0x7c], 0
jmp 0x4a9c15
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp eax, 7
je 0x4ab248
jmp 0x4a4f07
mov edx, dword [edi + ebx*4 + 0x10]
mov eax, edx
mov ecx, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x18]
shl ecx, 4
add ecx, dword [ebx + 8]
test edx, edx
je 0x4a9c55
cmp byte [edx], 0
je 0x4a9c4e
inc eax
cmp byte [eax], 0
jne 0x4a9c48
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.00494560
add esp, 8
mov ecx, eax
call fcn.004b64f0
or dword [ebx + 0xc], 0x10
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov edx, dword [edi + ebx*4 + 0x10]
mov ecx, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x18]
add ecx, ecx
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*8 + 0xc]
mov eax, edx
add ecx, 0x14
test edx, edx
je 0x4a9cad
cmp byte [edx], 0
je 0x4a9ca6
lea ecx, [ecx]
inc eax
cmp byte [eax], 0
jne 0x4a9ca0
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.00494560
mov esi, eax
add esp, 8
test esi, esi
je 0x4a9cef
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, esi
jne 0x4a9cd0
mov eax, dword [esi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4a9ce8
test ecx, ecx
je 0x4a9ce8
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, esi
je 0x4a9ce3
test ecx, ecx
jne 0x4a9cd4
jmp 0x4a9ce8
mov eax, dword [esi + 0x20]
mov dword [edx], eax
mov ecx, esi
call fcn.004b60a0
or dword [ebx + 0xc], 0x10
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov eax, dword [edi + ebx*4 + 4]
mov edx, dword [edx + 0x58]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov dword [esp + 0x38], ecx
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x3c], eax
test byte [ecx + 0x1c], 0x20
jne 0x4a9d3c
call fcn.004a07e0
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x1c], 0x20
je 0x4ab240
mov eax, dword [esp + 0x3c]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.00497080
mov eax, dword [esp + 0x18]
add esp, 8
jmp 0x4a4eff
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xd8], 0
jne 0x4ab1ee
mov eax, dword [edi + ebx*4 + 4]
mov ecx, dword [edx + 0x58]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x38], edx
test byte [edx + 0x1c], 0x20
mov eax, dword [edi + ebx*4 + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov dword [esp + 0x1c], esi
je 0x4a9df3
mov esi, dword [edx]
mov ecx, esi
call fcn.004973a0
mov edx, dword [esi + 8]
test edx, edx
je 0x4a9deb
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x4a9dbb
mov ecx, esi
call fcn.00497010
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
call fcn.004a03f0
mov dword [ebx], esi
mov eax, 4
mov esi, ebx
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x10]
mov dword [esi + 4], edi
mov byte [esi + 0x1e], 1
jmp 0x4a4eff
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov ecx, edx
call fcn.004a06e0
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov esi, dword [esp + 0x28]
mov edi, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x38], edi
test byte [esi + 0x1c], 0x20
jne 0x4a9e33
mov ecx, esi
call fcn.004a07e0
test byte [esi + 0x1c], 0x20
je 0x4ab240
mov edi, dword [esp + 0x38]
test edi, edi
je 0x4a9fb9
js 0x4a9e44
mov eax, edi
and eax, 0xf
jmp 0x4a9e49
mov eax, 0xff
mov ecx, dword [esp + 0x34]
mov esi, dword [esi]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], esi
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x160], ebx
mov dword [esp + 0xf0], ecx
cmp al, byte [esi + 0x1b]
je 0x4a9f78
cmp dword [esi + 8], 0
je 0x4a9f71
mov ecx, esi
call fcn.004973a0
mov edi, dword [esi + 8]
mov ebx, 1
mov dword [esp + 0xec], edi
mov eax, dword [edi + 8]
mov dword [esp + 0xec], eax
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov eax, dword [esp + 0xec]
test eax, eax
je 0x4a9f52
mov ecx, edi
mov edi, eax
mov eax, dword [edi + 8]
mov dword [esp + 0xec], eax
mov dword [edi + 0xc], ecx
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x4a9f38
cmp ebx, 1
jne 0x4a9efb
mov eax, dword [ecx + 8]
mov dword [esp + 0xec], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4a9f38
lea edx, [ebx - 1]
lea ecx, [esp + 0xec]
call fcn.00497340
mov esi, dword [esp + 0xec]
mov ecx, eax
test esi, esi
je 0x4a9f38
mov eax, dword [esi + 8]
lea edx, [ebx - 1]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0xec]
mov dword [esp + 0xec], eax
call fcn.00497340
mov dword [esi + 8], eax
mov ecx, esi
mov dword [edi + 8], ecx
inc ebx
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x4a9ec0
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0xe4]
mov ebx, dword [esp + 0x160]
mov dword [esi + 0x14], edi
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x1b], al
mov edi, dword [esp + 0x38]
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4a9fab
mov esi, dword [esp + 0xf0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, esi
jg 0x4a9fa4
jl 0x4a9f95
cmp edx, ebx
jae 0x4a9f9a
mov eax, dword [eax + 8]
jmp 0x4a9fa7
cmp ecx, esi
jl 0x4a9fdf
jg 0x4a9fa4
cmp edx, ebx
jbe 0x4a9fdf
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a9f86
mov esi, dword [esp + 0x28]
test edi, edi
mov dword [esp + 0x3c], 0
js 0x4a4ef7
mov eax, dword [esp + 0x34]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.00497080
mov esi, dword [esp + 0x24]
add esp, 8
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov eax, dword [edx + eax*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], 0
jl case.0x4a4b48.10
jg 0x4a5d05
cmp dword [ecx], 0
jbe case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], 0
jg case.0x4a4b48.10
jl 0x4a5d05
cmp dword [ecx], 0
jae case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
movzx edx, byte [edi + ebx*4 + 3]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], edx
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x88], esi
lea ecx, [eax + ecx*8]
xor eax, eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], eax
test edx, edx
je 0x4aa119
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4aa0d7
mov byte [ecx + 0x1e], 5
jmp 0x4aa0f6
test al, 4
je 0x4aa0e1
mov byte [ecx + 0x1e], 1
jmp 0x4aa0f6
test al, 8
je 0x4aa0eb
mov byte [ecx + 0x1e], 2
jmp 0x4aa0f6
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
inc eax
add ecx, 0x28
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], ecx
cmp eax, dword [esp + 0x38]
jge 0x4aa119
mov esi, dword [esp + 0x88]
jmp 0x4aa0c2
mov eax, dword [edi + ebx*4 + 0x10]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x48], eax
mov eax, dword [edi + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x78], eax
inc dword [eax + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x48]
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x64], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
test byte [ecx + 3], 8
je 0x4aa18f
mov eax, dword [edi + ebx*4 - 4]
mov dword [esp + 0x80], eax
push dword [esp + 0x88]
lea eax, [esp + 0x4c]
push dword [esp + 0x3c]
push eax
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x7c], 0
je 0x4aa1f1
mov dl, 1
lea ecx, [esp + 0x50]
call fcn.004a1090
mov ebx, dword [esp + 0x18]
push eax
push 0x51fca8
lea eax, [esi + 0x68]
push ebx
push eax
call fcn.00491840
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x60]
add esp, 0x10
mov dword [esp + 0x10], eax
call fcn.004a03f0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov ebx, dword [esp + 0x18]
lea ecx, [esp + 0x50]
call fcn.004a03f0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov eax, dword [edi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x38], ecx
mov edx, dword [edi + ebx*4 + 0x10]
call fcn.004a02c0
mov dword [esp + 0x10], eax
test eax, eax
je 0x4aa255
mov ecx, dword [esp + 0x38]
mov dl, 1
call fcn.004a1090
mov ebx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push 0x51fca8
add eax, 0x68
push ebx
push eax
call fcn.00491840
add esp, 0x10
jmp 0x4aa259
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
test byte [eax + 0x1c], 2
je 0x4aa279
mov cl, byte [esp + 0x23]
cmp byte [eax + 0x1f], cl
je 0x4aa279
mov dl, cl
mov ecx, eax
call fcn.004930e0
mov eax, dword [esp + 0x38]
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a58f8
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4aa293
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ab075
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
cmp dword [edi + ebx*4 + 4], 0
mov ebx, dword [esp + 0x18]
jne 0x4aa2d5
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a4cf1
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4aa2c1
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [esp + 0x10]
mov byte [edx + 0x6e], 1
jmp 0x4a4f07
mov esi, dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x38], esi
mov dword [esp + 0x10], 0
mov edx, dword [ebx + 0x11c]
test edx, edx
jle 0x4aa313
cmp dword [ebx + 0x118], 0
jne 0x4aa313
mov dword [esp + 0x10], 6
jmp 0x4aa366
test esi, esi
jne 0x4aa321
mov dword [esp + 0x10], 0
jmp 0x4aa366
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x4aa366
xor ecx, ecx
test edx, edx
jle 0x4aa344
mov eax, dword [ebx + 0x118]
cmp dword [eax], esi
je 0x4aa317
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4aa338
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4aa366
mov edx, esi
mov ecx, ebx
call fcn.004d23a0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x14]
je 0x4a7753
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x4aa3a2
cmp ecx, dword [ebx + 0xf0]
jb 0x4aa3a2
cmp ecx, dword [ebx + 0xf4]
jae 0x4aa3a2
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4aa3af
push ecx
call fcn.00491400
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [edx + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov esi, dword [esp + 0x18]
lea edi, [edx + 0x68]
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 8]
mov ecx, dword [edx + ebx*4 + 4]
mov edx, dword [edx + ebx*4 + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, esi
call fcn.004b5e90
mov ebx, eax
add esp, 4
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx]
mov ecx, esi
test esi, esi
je 0x4aa41e
cmp byte [esi], 0
je 0x4aa416
lea ebx, [ebx]
inc ecx
cmp byte [ecx], 0
jne 0x4aa410
sub ecx, esi
and ecx, 0x3fffffff
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, esi
lea ecx, [ecx + 0x104]
call fcn.004944e0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4aa463
mov ebx, dword [esp + 0x18]
push esi
push str.no_such_module:__s
push ebx
call fcn.00492bb0
mov esi, dword [esp + 0x28]
add esp, 0xc
mov dword [edi], eax
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov eax, dword [ecx]
mov edx, ebx
push edi
mov edi, dword [esp + 0x1c]
push dword [eax + 4]
push ecx
mov ecx, edi
call fcn.004d1ef0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4aa49b
mov eax, dword [ebx + 0x30]
test eax, eax
je 0x4aa49b
jmp 0x4aa490
cmp dword [eax], edi
je 0x4aa4aa
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4aa490
mov esi, dword [esp + 0x1c]
mov ebx, edi
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov edx, dword [ebx + 0x30]
mov ebx, edi
nop
cmp dword [edx], ebx
je 0x4aa4bb
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4aa4b0
mov ecx, ebx
call fcn.004d23a0
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
jmp 0x4a4f03
mov eax, dword [esp + 0x18]
mov byte [edx + 0x70], 2
mov ecx, dword [edi + ebx*4 + 4]
mov edx, dword [edi + ebx*4 + 0x10]
add ecx, ecx
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], 0
push dword [eax + ecx*8]
mov ecx, ebx
call fcn.004b5e90
mov edi, eax
add esp, 4
test edi, edi
je 0x4aa59c
cmp dword [edi + 0x30], 0
je 0x4aa59c
mov edx, edi
mov ecx, ebx
call fcn.004d1780
mov esi, eax
mov ecx, dword [esi + 4]
push dword [esi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4aa59c
mov dword [esi + 8], eax
mov dword [edi + 0x30], eax
add dword [esi + 0xc], 0xffffffff
mov edi, dword [esi]
jne 0x4aa59c
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4aa556
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
test edi, edi
je 0x4aa593
cmp esi, dword [edi + 0xf0]
jb 0x4aa593
cmp esi, dword [edi + 0xf4]
jae 0x4aa593
mov eax, dword [edi + 0xec]
mov edx, dword [esp + 0x14]
mov dword [esi], eax
dec dword [edi + 0xe4]
mov eax, dword [esp + 0x10]
mov dword [edi + 0xec], esi
mov esi, dword [esp + 0x1c]
mov byte [edx + 0x70], 0
jmp 0x4a4f07
push esi
call fcn.00491400
add esp, 4
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov byte [edx + 0x70], 0
jmp 0x4a4f07
mov dword [esp + 0x38], 0
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], 0
mov eax, dword [edi + ebx*4 + 0x10]
push edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x18], eax
add esp, 8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4aa619
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0xf0]
jb 0x4aa619
cmp ecx, dword [edx + 0xf4]
jae 0x4aa619
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4aa622
push ecx
call fcn.00491400
add esp, 4
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], 0
test eax, eax
jne 0x4a4c15
mov eax, dword [esp + 0x3c]
xor esi, esi
mov ecx, dword [esp + 0x40]
mov dword [eax], ecx
mov edx, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x14]
lea edi, [ebx + 0x34]
mov dword [esp + 0xe4], edx
mov eax, dword [ebx + 0x54]
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x4aa6dd
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4aa6c1
call fcn.0049bbb0
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x4aa6af
mov eax, dword [ebx + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0x18]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [edi]
mov ebx, dword [esp + 0xe4]
mov edi, dword [esp + 0x30]
mov dword [eax + ebx*4], esi
jmp 0x4aa6e4
mov ecx, dword [ebx]
mov dword [esp + 0x30], edi
test ecx, ecx
je 0x4aa68c
call fcn.0049c250
mov edx, dword [esp + 0x14]
lea eax, [edx + 0x34]
mov dword [esp + 0x30], eax
jmp 0x4aa690
mov ebx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x2c]
mov edx, 0x58
push 0
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4aa724
mov ecx, dword [esp + 0x2c]
mov eax, dword [edi]
push 0x58
push 0
mov esi, dword [ecx + 0x14]
mov dword [eax + ebx*4], esi
push dword [ecx + 0x14]
call fcn.004e1ab0
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [esp + 0x38], esi
test esi, esi
je 0x4aa758
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [esp + 0x38]
mov dword [eax + 0x3c], ecx
mov eax, dword [esp + 0x24]
inc eax
jmp 0x4a49ed
mov ebx, dword [esp + 0x18]
mov byte [ebx + 0x1e], 1
mov eax, dword [esp + 0x44]
push dword [esp + 0x3c]
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0x28]
add esp, 4
mov esi, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x14]
jmp 0x4a49ed
mov eax, dword [edi + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea edx, [eax + ecx*8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], edx
lea esi, [edx + 0x28]
mov dword [esp + 0x48], esi
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x54], eax
mov edi, dword [eax + 0x38]
mov dword [esp + 0x4c], edi
mov eax, dword [edi]
mov dword [esp + 0x50], eax
mov ebx, dword [eax]
mov dword [esp + 0x40], ebx
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov ecx, dword [edx]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], 0
mov edx, dword [ecx + 0x24]
xor ecx, ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ecx
test eax, eax
jle 0x4aa85d
nop
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + eax*4]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4aa815
mov byte [ecx + 0x1e], 5
jmp 0x4aa834
test al, 4
je 0x4aa81f
mov byte [ecx + 0x1e], 1
jmp 0x4aa834
test al, 8
je 0x4aa829
mov byte [ecx + 0x1e], 2
jmp 0x4aa834
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x38]
inc ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x5c], ecx
cmp ecx, eax
jge 0x4aa84f
mov esi, dword [esp + 0x48]
jmp 0x4aa7f0
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
jmp 0x4aa864
mov ecx, dword [esp + 0xf0]
mov esi, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x34]
mov byte [esi + 0x70], 1
mov esi, dword [esp + 0x38]
push dword [eax + esi*4 + 0x10]
mov eax, dword [ebx + 0x20]
push ecx
push edi
call eax
mov edx, dword [esp + 0x28]
add esp, 0x14
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 0x68]
mov byte [edx + 0x70], 0
test ecx, ecx
je 0x4aa8c1
cmp ecx, dword [ebx + 0xf0]
jb 0x4aa8c1
cmp ecx, dword [ebx + 0xf4]
jae 0x4aa8c1
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4aa8ce
push ecx
call fcn.00491400
mov edx, dword [esp + 0x18]
add esp, 4
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4aa900
mov eax, dword [esp + 0x40]
push dword [esp + 0x4c]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x58], eax
jmp 0x4aa904
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4aa915
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + esi*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
mov byte [eax + 0x14], 0
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [edi + ebx*4 + 0xc]
mov dword [esp + 0xf0], edx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x40], ecx
cmp byte [edx + 0x14], 0
je 0x4aa964
call fcn.004a06e0
mov eax, dword [esp + 0x10]
jmp 0x4a4eff
mov eax, dword [edx + 0x38]
push 0x40
push 0
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x50]
push eax
call fcn.004e1ab0
mov ebx, dword [esp + 0x4c]
lea ecx, [esp + 0x5c]
add esp, 0xc
call fcn.004a03f0
mov edx, dword [esp + 0x2c]
lea edi, [esp + 0x50]
mov ecx, 0xa
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x20], 0
mov eax, 1
mov word [ebx + 0x1c], ax
mov dword [ebx + 0x24], 0
mov eax, dword [esp + 0x6c]
and eax, 0xbf01
or eax, 1
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x30]
push dword [edx + eax*4 + 8]
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0xf8]
push dword [eax + 0x38]
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x2c]
call eax
mov esi, dword [esp + 0x20]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x4aaa26
cmp ecx, dword [ebx + 0xf0]
jb 0x4aaa26
cmp ecx, dword [ebx + 0xf4]
jae 0x4aaa26
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4aaa2f
push ecx
call fcn.00491400
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [esi + 0x68], eax
mov dword [ecx + 8], 0
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x4aaa4c
mov dword [esp + 0x10], eax
test byte [esp + 0x6c], 2
je 0x4aaa68
mov al, byte [esp + 0x23]
cmp byte [esp + 0x6f], al
je 0x4aaa68
mov dl, al
lea ecx, [esp + 0x50]
call fcn.004930e0
mov edi, dword [esp + 0x40]
mov ecx, edi
call fcn.004a03f0
mov ecx, 0xa
lea esi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov eax, 1
mov dword [esp + 0x70], 0
mov word [esp + 0x6c], ax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x74], 0
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a58f4
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4aaab6
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4ab075
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov eax, dword [edx + 0x34]
mov dword [esp + 0x40], 0
mov ecx, dword [edi + ebx*4 + 4]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x44], ecx
cmp byte [ecx + 0x14], 0
jne case.0x4a4b48.10
mov eax, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov byte [edx + 0x70], 1
push dword [ecx + 0x38]
mov eax, dword [eax + 0x24]
call eax
mov dword [esp + 0x14], eax
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x68]
mov byte [eax + 0x70], 0
test ecx, ecx
je 0x4aab4a
mov edx, dword [esp + 0x18]
cmp ecx, dword [edx + 0xf0]
jb 0x4aab4a
cmp ecx, dword [edx + 0xf4]
jae 0x4aab4a
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4aab53
push ecx
call fcn.00491400
add esp, 4
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4aab8c
mov eax, dword [esp + 0x44]
push dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x28]
call eax
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x4aab90
mov eax, dword [esp + 0x40]
test eax, eax
jne case.0x4a4b48.10
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov eax, dword [edi + ebx*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0x3c], eax
mov ecx, dword [edx]
push dword [eax + 0x14]
push edx
mov eax, dword [ecx + 0x4c]
call eax
mov edx, dword [esp + 0x1c]
add esp, 8
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x4aac15
cmp ecx, dword [ebx + 0xf0]
jb 0x4aac15
cmp ecx, dword [ebx + 0xf4]
jae 0x4aac15
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4aac22
push ecx
call fcn.00491400
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], 0
jmp 0x4a4f07
mov eax, dword [edi + ebx*4 + 0x10]
mov ecx, dword [esp + 0x2c]
mov esi, dword [eax + 8]
mov dword [esp + 0x38], esi
mov edi, dword [esi]
mov dword [esp + 0x3c], edi
mov edx, dword [ecx + ebx*4 + 8]
mov dword [esp + 0x40], edx
cmp dword [edi + 0x34], 0
je 0x4a4ef7
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x24]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ebx
mov eax, dword [ecx + eax*4 + 0xc]
mov dword [esp + 0x44], 0
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x54], ecx
test edx, edx
jle 0x4aacf7
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4aaca1
mov byte [ecx + 0x1e], 5
jmp 0x4aacc0
test al, 4
je 0x4aacab
mov byte [ecx + 0x1e], 1
jmp 0x4aacc0
test al, 8
je 0x4aacb5
mov byte [ecx + 0x1e], 2
jmp 0x4aacc0
and al, 2
neg al
sbb al, al
add al, 4
mov byte [ecx + 0x1e], al
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
inc eax
mov edx, dword [esp + 0x40]
add ecx, 0x28
mov dword [esp + 0x54], ecx
mov dword [esp + 0x44], eax
cmp eax, edx
jl 0x4aac93
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x48]
push eax
mov eax, dword [edi + 0x34]
push ebx
push edx
push esi
call eax
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ebx, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x10], esi
mov ecx, dword [edx + 0x68]
test ecx, ecx
je 0x4aad42
cmp ecx, dword [ebx + 0xf0]
jb 0x4aad42
cmp ecx, dword [ebx + 0xf4]
jae 0x4aad42
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4aad4f
push ecx
call fcn.00491400
mov edx, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
test esi, esi
jne 0x4aad84
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp dword [edx + eax*4 + 4], esi
mov edx, dword [esp + 0x14]
je 0x4aad84
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], ecx
inc dword [edx + 0x74]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
jmp 0x4a4f07
mov ecx, dword [edi + ebx*4 + 4]
lea edx, [esp + 0x3c]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
add ecx, ecx
mov eax, dword [ebx + 8]
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
call fcn.004990c0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a4f03
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x3c]
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 4], edx
inc eax
mov edx, dword [esp + 0x14]
jmp 0x4a49ed
xor eax, eax
jmp 0x4a4efb
mov esi, dword [esp + 0x1c]
mov ebx, edx
mov eax, dword [esp + 0x10]
jmp 0x4a4f03
mov edi, dword [esp + 0x2c]
mov dword [edx + 0x64], eax
mov al, byte [edi + ebx*4 + 8]
mov byte [edx + 0x38], al
mov eax, dword [esp + 0x24]
mov dword [edx + 0x60], eax
mov eax, dword [edi + ebx*4 + 0x10]
test eax, eax
je 0x4aae35
push eax
push 0x51fca8
push dword [esp + 0x20]
lea eax, [edx + 0x68]
push eax
call fcn.00491840
mov edx, dword [esp + 0x24]
add esp, 0x10
mov ecx, edx
call fcn.004a2be0
cmp eax, 5
mov eax, dword [esp + 0x14]
je 0x4aaf90
mov eax, dword [eax + 0x64]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x48]
call fcn.004a03f0
mov ebx, edi
jmp 0x4ab244
mov ebx, 0x14
mov dword [esp + 0x10], ebx
jmp 0x4aafee
mov ecx, edi
mov dword [edi + 0x64], 0xb
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
push str.cannot_open_savepoint___SQL_statements_in_progress
push eax
lea eax, [ebx + 0x68]
push eax
call fcn.00491840
add esp, 0xc
mov dword [ebx + 0x64], 5
mov ecx, ebx
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
mov dword [edi + 0x60], eax
mov eax, 5
mov byte [esi + 0x1c], 0
mov dword [edi + 0x64], 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0xe4]
mov ebx, dword [esp + 0x18]
push str.no_such_savepoint:__s
push dword [esp + 0x20]
lea eax, [ebx + 0x68]
push eax
call fcn.00491840
add esp, 0x10
mov dword [ebx + 0x64], 1
mov ecx, ebx
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4aaf4b
mov ecx, ebx
call fcn.004dd230
mov esi, dword [esp + 0x14]
mov byte [ebx + 0x1c], 1
mov ecx, ebx
call fcn.004dcd90
mov eax, dword [esi + 0x64]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esp + 0x38]
mov esi, dword [esp + 0x14]
mov ecx, esi
mov byte [ebx + 0x1c], al
call fcn.004a2be0
cmp eax, 5
jne 0x4aaf30
mov eax, dword [esp + 0x24]
mov dword [esi + 0x60], eax
mov al, 1
sub al, byte [esp + 0x38]
mov byte [ebx + 0x1c], al
mov eax, 5
mov dword [esi + 0x64], 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], 5
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 0xb
mov dword [esp + 0x10], ebx
jmp 0x4aaff2
mov ecx, edx
mov dword [edx + 0x64], 4
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, 0xd
mov dword [esp + 0x10], ebx
jmp 0x4aafee
lea ecx, [esp + 0x178]
call fcn.004a03f0
mov ebx, 0xb
mov dword [esp + 0x10], ebx
jmp 0x4aafee
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x1e], 0
je 0x4ab00b
mov dword [esp + 0x10], 7
mov eax, 7
jmp 0x4ab01f
cmp ebx, 0xc0a
je 0x4ab042
movzx eax, bl
mov dword [esp + 0x10], ebx
cmp eax, 0x1b
jae 0x4ab02a
mov eax, dword [eax*4 + 0x525318]
test eax, eax
jne 0x4ab02f
mov eax, str.unknown_error
push eax
push 0x51fca8
lea eax, [esi + 0x68]
push edi
push eax
call fcn.00491840
add esp, 0x10
mov esi, dword [esp + 0x10]
jmp 0x4ab1bc
mov eax, dword [esp + 0x14]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
jmp 0x4ab075
mov ebx, edx
push str.string_or_blob_too_big
push ebx
mov ebx, dword [esp + 0x1c]
lea eax, [ebx + 0x68]
push eax
call fcn.00491840
add esp, 0xc
mov dword [ebx + 0x64], 0x12
mov ecx, ebx
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x14]
mov edx, 1
call fcn.004a2ac0
mov esi, eax
test esi, esi
jne 0x4ab1b8
mov esi, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esi + 0x5c]
add eax, 2
or eax, 1
mov dword [esi + 0x5c], eax
mov eax, dword [edi + ebx*4 + 4]
mov dword [esp + 0x3c], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov dword [esi + 0x2c], eax
mov dword [esp + 0x38], eax
cmp dword [edi + ebx*4 + 8], edx
jle 0x4ab192
mov eax, dword [esp + 0x38]
lea ecx, [edx + edx*4]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
test eax, 0x200
jne 0x4ab142
test al, 2
je 0x4ab142
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.0049ff50
add esp, 4
test eax, eax
jne 0x4ab13e
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x18]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 0x1c], ax
mov edx, dword [esp + 0x3c]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x38]
movzx eax, word [edx + ecx*8 + 0x1c]
test al, 1
je 0x4ab159
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4ab17b
test al, 4
je 0x4ab164
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4ab17b
test al, 8
je 0x4ab16f
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4ab17b
and al, 2
neg al
sbb al, al
add al, 4
mov byte [edx + ecx*8 + 0x1e], al
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
cmp edx, dword [edi + ebx*4 + 8]
jl 0x4ab0f1
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
cmp byte [ebx + 0x1e], 0
jne 0x4ab244
mov eax, dword [esp + 0x24]
inc eax
mov dword [esi + 0x60], eax
mov eax, 0x64
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dword [eax + 0x64], esi
call fcn.004a2be0
cmp esi, 0xc0a
jne 0x4ab270
mov byte [edi + 0x1e], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, edx
mov edx, dword [esp + 0x14]
jmp 0x4ab1f0
mov ebx, eax
mov eax, dword [str.interrupted]
mov dword [edx + 0x64], 9
test eax, eax
jne 0x4ab205
mov eax, str.unknown_error
push eax
push 0x51fca8
lea eax, [edx + 0x68]
push ebx
push eax
call fcn.00491840
add esp, 0x10
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
jmp 0x4ab248
mov ebx, edx
jmp 0x4ab244
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push str.out_of_memory
lea eax, [edx + 0x68]
mov byte [ebx + 0x1e], 1
push ebx
push eax
call fcn.00491840
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, eax
mov dword [eax + 0x64], 7
call fcn.004a2be0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret