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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1ec
mov edx, ecx
mov dword [esp + 4], 0
push ebx
push esi
xor esi, esi
mov dword [esp + 0x14], edx
mov ebx, dword [edx]
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], 0
mov eax, dword [ebx + 8]
mov dword [esp + 0xe4], 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 0x4a9f41
mov dword [edx + 0x64], eax
mov dword [edx + 0x2c], eax
mov dword [ebx + 0x198], eax
cmp dword [ebx + 0xd8], eax
jne 0x4a9eef
mov eax, dword [edx + 0x60]
fldz
fstp qword [esp + 0x138]
fld qword [0x526a70]
fstp qword [esp + 0x198]
fld qword [0x526a28]
fstp qword [esp + 0x1c8]
mov dword [esp + 0x24], eax
cmp byte [ebx + 0x1e], 0
jne 0x4a9f41
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edi, dword [edx + 0x14]
mov dword [esp + 0x30], edi
lea ebx, [ebx + ebx*4]
mov eax, dword [ecx + 0xf8]
mov dword [esp + 0x2c], ebx
test eax, eax
je 0x4a39bb
mov esi, dword [esp + 0xfc]
cmp dword [ecx + 0x100], esi
mov esi, dword [esp + 0x1c]
jne 0x4a39ac
push dword [ecx + 0xfc]
call eax
add esp, 4
test eax, eax
jne 0x4a9f17
mov edx, dword [esp + 0x18]
jmp 0x4a39b3
mov eax, dword [esp + 0xfc]
inc eax
mov dword [esp + 0xfc], eax
movzx eax, byte [edi + ebx*4]
mov cl, byte [eax + 0x521ed0]
test cl, 2
je 0x4a3a50
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 0x4a3a3e
test eax, 0x2000
je 0x4a3a03
mov edx, dword [esi]
mov ecx, esi
call fcn.0049f050
mov ecx, esi
call fcn.0049f180
jmp 0x4a3a3a
test eax, 0x400
je 0x4a3a22
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a3a22
push dword [esi + 0x14]
call ecx
add esp, 4
mov dword [esi + 0x20], 0
jmp 0x4a3a3a
test al, 0x20
je 0x4a3a2f
mov ecx, dword [esi]
call fcn.00495d40
jmp 0x4a3a3a
test al, 0x40
je 0x4a3a3e
mov ecx, esi
call fcn.0049f470
mov edx, dword [esp + 0x18]
mov eax, 1
mov dword [esi + 0x18], 0
mov word [esi + 0x1c], ax
jmp 0x4a3a96
mov dl, cl
and dl, 8
test cl, 4
je 0x4a3ad5
mov eax, dword [esp + 0x18]
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 0x4a3ab8
mov eax, dword [edi + ebx*4 + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0xe4], 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 + 0x18]
mov ecx, dword [esp + 0x34]
movzx eax, byte [edi + ebx*4]
dec eax
cmp eax, 0x90
ja case.0x4a3ab1.10
movzx eax, byte [eax + 0x4aa108]
jmp dword [eax*4 + 0x4a9f78]
mov edx, dword [esp + 0x18]
test cl, 0x10
je 0x4a3b0f
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 0x4a3a9a
test dl, dl
je 0x4a3af3
mov eax, dword [edi + ebx*4 + 8]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea eax, [eax + ecx*8]
mov dword [esp + 0xe4], eax
jmp 0x4a3a96
test cl, 0x10
je 0x4a3a92
mov eax, dword [edi + ebx*4 + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x34], ecx
jmp 0x4a3a9a
mov esi, dword [esp + 0x1c]
jmp 0x4a3a96
mov edx, dword [esp + 0x14]
cmp dword [edx + 0xd8], 0
je 0x4a4bd4
mov ebx, edx
mov edx, dword [esp + 0x18]
jmp 0x4a9eef
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 [esp + 0x28], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4a4bd4
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
jmp 0x4a4bd9
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 edx, dword [esp + 0x38]
jmp 0x4a4bd9
test byte [ecx + 0x1c], 1
je case.0x4a3ab1.10
mov eax, dword [edi + ebx*4 + 4]
test eax, eax
jne 0x4a9afb
mov edi, dword [edx + 0xdc]
test edi, edi
je 0x4a9af7
mov eax, dword [edi + 0x3c]
dec dword [edx + 0xe0]
mov ecx, dword [esp + 0x14]
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 + 0x30]
mov eax, dword [edi + 0x38]
mov dword [esi + 0x74], eax
mov esi, dword [edi + 4]
cmp dword [edx + ebx*4 + 8], 4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
jne 0x4a3c30
mov eax, dword [esp + 0x18]
lea ecx, [esi + esi*4]
mov eax, dword [eax + 0x14]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x4a3ab1.10
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi], ecx
mov dword [esi + 4], eax
jmp case.0x4a3ab1.10
mov eax, 8
mov word [esi + 0x1c], ax
mov eax, dword [edi + ebx*4 + 0x10]
fld qword [eax]
fstp qword [esi + 8]
jmp case.0x4a3ab1.10
mov byte [edi + ebx*4], 9
mov ebx, dword [edi + ebx*4 + 0x10]
mov eax, ebx
test ebx, ebx
je 0x4a3cad
cmp byte [ebx], 0
je 0x4a3ca6
jmp 0x4a3ca0
inc eax
cmp byte [eax], 0
jne 0x4a3ca0
sub eax, ebx
and eax, 0x3fffffff
cmp byte [esp + 0x23], 1
mov edx, dword [esp + 0x2c]
mov dword [edi + edx*4 + 4], eax
je 0x4a3dd2
test ebx, ebx
jne 0x4a3ccd
mov ecx, esi
call fcn.0049f470
jmp 0x4a3d20
mov edi, dword [esi + 0x10]
xor esi, esi
test edi, edi
je 0x4a3cdf
mov edi, dword [edi + 0x48]
test edi, edi
js 0x4a3cef
jmp 0x4a3ce4
mov edi, 0x3b9aca00
cmp byte [esi + ebx], 0
je 0x4a3cef
inc esi
cmp esi, edi
jle 0x4a3ce4
mov ecx, dword [esp + 0x1c]
call fcn.0049f180
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 0x4a9d6a
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
test byte [esi + 0x1c], 2
mov dword [esp + 0x10], 0
je 0x4a3d48
mov al, byte [esp + 0x23]
cmp byte [esi + 0x1f], al
je 0x4a3d48
mov dl, al
mov ecx, esi
call fcn.00491e30
test eax, eax
jne 0x4a9f39
mov ax, word [esi + 0x1c]
mov ecx, 0xfbff
mov ebx, dword [esp + 0x2c]
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 0x4a3dbd
mov ecx, dword [edi + ebx*4 + 0x10]
test ecx, ecx
je 0x4a3dac
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0xf0]
jb 0x4a3dac
cmp ecx, dword [edx + 0xf4]
jae 0x4a3dac
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 0x4a3dbd
push ecx
call fcn.00490120
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 0x4a3dd6
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + 0x48]
jg 0x4a9d76
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
jmp case.0x4a3ab1.10
mov edx, dword [esp + 0x30]
mov edi, dword [edi + ebx*4 + 0x10]
mov esi, dword [edx + ebx*4 + 4]
test edi, edi
jne 0x4a3e2f
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.0049f470
mov al, byte [esp + 0x23]
mov esi, ebx
mov byte [ebx + 0x1f], al
jmp case.0x4a3ab1.10
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4a3e3f
mov ecx, dword [ecx + 0x48]
jmp 0x4a3e44
mov ecx, 0x3b9aca00
mov ebx, 0x10
test esi, esi
jns 0x4a3e6c
xor esi, esi
test ecx, ecx
js 0x4a3e67
mov al, byte [esi + edi + 1]
or al, byte [esi + edi]
je 0x4a3e63
add esi, 2
cmp esi, ecx
jle 0x4a3e53
mov eax, dword [esp + 0x1c]
mov ebx, 0x210
mov ecx, eax
call fcn.0049f180
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, dword [esp + 0x1c]
mov dword [eax + 0x18], esi
mov al, byte [esp + 0x23]
mov byte [ebx + 0x1e], 4
mov byte [ebx + 0x1f], al
mov esi, dword [esp + 0x1c]
jmp case.0x4a3ab1.10
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 0x4a3fd5
mov edi, dword [esp + 0x18]
lea ecx, [edx + edx*4]
dec eax
inc edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edx
mov eax, dword [edi + 0x48]
lea eax, [eax + ecx*8]
mov dword [esp + 0x44], eax
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a3f00
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a3ef4
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a9d70
mov eax, dword [edi + 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 0x4a3f6d
test eax, 0x2000
je 0x4a3f36
mov edx, dword [edi]
mov ecx, edi
call fcn.0049f050
mov ecx, edi
call fcn.0049f180
jmp 0x4a3f6d
test eax, 0x400
je 0x4a3f55
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4a3f55
push dword [edi + 0x14]
call ecx
add esp, 4
mov dword [edi + 0x20], 0
jmp 0x4a3f6d
test al, 0x20
je 0x4a3f62
mov ecx, dword [edi]
call fcn.00495d40
jmp 0x4a3f6d
test al, 0x40
je 0x4a3f6d
mov ecx, edi
call fcn.0049f470
mov eax, 1
mov ecx, edi
mov word [edi + 0x1c], ax
mov ebx, dword [esp + 0x44]
call fcn.0049f120
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 0x4a3fa8
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x24]
jne 0x4a3fc0
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 0x4a3fd5
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
jmp 0x4a3ec3
mov esi, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x40], eax
jmp case.0x4a3ab1.10
mov esi, dword [edi + ebx*4 + 0xc]
mov ecx, dword [esp + 0x18]
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 0x4a407d
lea ebx, [ebx]
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.0049f180
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 0x4a4020
mov dword [esp + 0x1c], ebx
dec esi
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x1c]
jmp case.0x4a3ab1.10
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.0049f120
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 0x4a40ce
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a40e6
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 0x4a3e9d
test eax, 0x4000
je 0x4a4103
mov ecx, ebx
call fcn.0049ef40
test byte [ebx + 0x1c], 0x12
je 0x4a3e9d
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebx + 0x24]
je 0x4a3e9d
mov edx, dword [ebx + 0x18]
mov ecx, ebx
push 1
add edx, 2
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a9f39
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov esi, dword [esp + 0x1c]
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
jmp case.0x4a3ab1.10
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.0049f120
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 0x4a41a1
mov eax, dword [edi + 0x14]
cmp eax, dword [edi + 0x24]
jne 0x4a3e9d
mov ax, word [ebx + 0x1c]
mov ecx, 0xf3ff
mov esi, dword [esp + 0x1c]
and ax, cx
mov ecx, 0x1000
or ax, cx
mov word [ebx + 0x1c], ax
jmp case.0x4a3ab1.10
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0xe4]
movzx ecx, word [edi + 0x1c]
mov al, byte [ebx + 0x1c]
or al, cl
test al, 1
je 0x4a41e6
mov ecx, esi
call fcn.0049f470
jmp case.0x4a3ab1.10
test ecx, 0x4000
je 0x4a423e
mov edx, dword [edi]
add edx, dword [edi + 0x18]
test edx, edx
jg 0x4a41fc
mov edx, 1
push 1
mov ecx, edi
call fcn.0049ece0
add esp, 4
test eax, eax
je 0x4a4213
mov eax, 7
jmp 0x4a4236
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004e14f0
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 0x4a9f39
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x4a4258
mov ecx, ebx
call fcn.0049ef40
test eax, eax
jne 0x4a9f39
test byte [edi + 0x1c], 0x12
movzx esi, byte [esp + 0x23]
jne 0x4a4274
mov edx, esi
mov ecx, edi
call fcn.0049efa0
test eax, eax
jne 0x4a9f39
test byte [ebx + 0x1c], 0x12
jne 0x4a428b
mov edx, esi
mov ecx, ebx
call fcn.0049efa0
test eax, eax
jne 0x4a9f39
mov ecx, dword [ebx + 0x18]
add ecx, dword [edi + 0x18]
mov ebx, dword [esp + 0x14]
mov eax, ecx
cdq
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp ecx, dword [ebx + 0x48]
jg 0x4a9d78
mov ebx, dword [esp + 0x1c]
mov ecx, 0xbf02
mov esi, dword [esp + 0xe4]
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.0049ece0
add esp, 4
test eax, eax
jne 0x4a9f39
cmp ebx, esi
je 0x4a42fe
push dword [esi + 0x18]
push dword [esi + 0x14]
push dword [ebx + 0x14]
call fcn.004e0f70
add esp, 0xc
push dword [edi + 0x18]
mov eax, dword [ebx + 0x14]
push dword [edi + 0x14]
add eax, dword [esi + 0x18]
push eax
call fcn.004e0f70
mov eax, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [ebx + 0x14]
mov esi, dword [esp + 0x1c]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [ebx + 0x1c], ax
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x18], eax
mov al, byte [esp + 0x23]
mov byte [ebx + 0x1f], al
jmp case.0x4a3ab1.10
mov ecx, dword [esp + 0x28]
call fcn.004a3700
mov ecx, dword [esp + 0xe4]
call fcn.004a3700
mov eax, dword [esp + 0xe4]
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 0x4a45b5
mov ecx, dword [esp + 0xe4]
mov al, byte [edx + 0x1c]
and al, byte [ecx + 0x1c]
test al, 4
je 0x4a4470
mov esi, dword [edx]
mov eax, ecx
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 + 0x30]
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.0x4a43c2
jmp dword [eax*4 + 0x4aa19c]
add ecx, esi
adc edx, edi
jmp 0x4a4446
sub ecx, esi
sbb edx, edi
jmp 0x4a4446
push edx
push ecx
push edi
push esi
call fcn.004dfc80
jmp 0x4a4444
mov eax, esi
or eax, edi
je 0x4a45a1
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a440e
test ecx, ecx
jne 0x4a440e
cmp edx, 0x80000000
jne 0x4a440e
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.00504a10
jmp 0x4a4444
mov eax, esi
or eax, edi
je 0x4a45a1
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a443b
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.00504b00
mov ecx, eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esi], ecx
mov dword [esi + 4], edx
mov ax, word [esi + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [esi + 0x1c], ax
jmp case.0x4a3ab1.10
mov ecx, edx
call fcn.0049f330
mov ecx, dword [esp + 0xe4]
fstp qword [esp + 0x50]
call fcn.0049f330
fst qword [esp + 0x58]
movzx eax, byte [edi + ebx*4]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x4a4497
jmp dword [eax*4 + 0x4aa1ac]
fadd qword [esp + 0x50]
jmp 0x4a4539
fsub qword [esp + 0x50]
jmp 0x4a4539
fmul qword [esp + 0x50]
jmp 0x4a4539
fld qword [esp + 0x50]
fld qword [esp + 0x138]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x4a45b1
fdivp st(1)
jmp 0x4a4539
fld qword [esp + 0x50]
call fcn.00504c50
mov esi, eax
mov edi, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
call fcn.00504c50
mov ecx, eax
mov dword [esp + 0x4c], edx
mov eax, esi
mov dword [esp + 0x48], ecx
or eax, edi
je 0x4a45a1
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a451b
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.00504b00
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], edx
fild qword [esp + 0x168]
fst qword [esp + 0x58]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fstp qword [esp + 0x158]
fld qword [esp + 0xf0]
fld qword [esp + 0x158]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4a45a1
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 0x4a3e9d
mov ecx, ebx
call fcn.0049f3e0
mov esi, ebx
jmp case.0x4a3ab1.10
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0049f470
jmp case.0x4a3ab1.10
fstp st(0)
fstp st(0)
mov ecx, esi
call fcn.0049f470
jmp case.0x4a3ab1.10
mov cl, byte [edi + ebx*4 + 3]
mov esi, dword [edx + 0x24]
mov edi, dword [edx + 0x58]
movzx eax, cl
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
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 cl, cl
je 0x4a4661
jmp 0x4a4600
mov dword [esi + eax*4], edx
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a4615
mov byte [ecx + 0x1e], 5
jmp 0x4a4634
test al, 4
je 0x4a461f
mov byte [ecx + 0x1e], 1
jmp 0x4a4634
test al, 8
je 0x4a4629
mov byte [ecx + 0x1e], 2
jmp 0x4a4634
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 0x4a465a
mov esi, dword [esp + 0x80]
jmp 0x4a4600
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x58]
mov ecx, dword [esp + 0x30]
cmp byte [ecx + ebx*4 + 1], 0xfb
mov eax, dword [ecx + ebx*4 + 0x10]
jne 0x4a467a
mov dword [esp + 0x44], 0
jmp 0x4a4680
mov dword [esp + 0x44], eax
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
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.0049f180
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 + 0x30]
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 0x4a4713
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 + 0x20]
add esp, 0xc
cmp byte [edi + 0x1e], 0
jne 0x4a9b56
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4a475a
mov edx, dword [esi + ebx*4 + 4]
call fcn.004a1f20
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 0x4a478e
mov dl, 1
lea ecx, [esp + 0x48]
call fcn.0049fe00
push eax
mov eax, dword [esp + 0x1c]
push 0x5227b8
add eax, 0x68
push edi
push eax
call fcn.00490560
mov eax, dword [esp + 0x84]
add esp, 0x10
mov dword [esp + 0x10], eax
test byte [esp + 0x64], 2
je 0x4a47aa
mov al, byte [esp + 0x23]
cmp byte [esp + 0x67], al
je 0x4a47aa
mov dl, al
lea ecx, [esp + 0x48]
call fcn.00491e30
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.0049f180
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 0x4a3e9d
mov ecx, dword [ebx + 0x18]
test eax, 0x4000
je 0x4a47f4
add ecx, dword [ebx]
mov eax, dword [ebx + 0x10]
mov ebx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x48]
jg 0x4a9d78
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov edx, dword [esp + 0xe4]
mov ecx, dword [esp + 0x28]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
je 0x4a4832
mov ecx, esi
call fcn.0049f470
jmp case.0x4a3ab1.10
mov ecx, edx
call fcn.0049f240
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.0049f240
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 0x4a48bc
sub eax, 1
je 0x4a48a1
sub eax, 1
mov eax, dword [esp + 0x38]
je 0x4a4889
call fcn.00505040
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a4454
call fcn.00504ac0
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], eax
mov dword [esi], eax
jmp 0x4a4454
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 0x4a4454
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 0x4a4454
mov ecx, dword [esp + 0x28]
call fcn.0049f240
mov ecx, dword [esp + 0x28]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [edi + ebx*4 + 8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x4a3ab1.10
mov ecx, dword [esp + 0x28]
call fcn.004a3700
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x1c], 8
je 0x4a4928
call fcn.0049f3e0
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x1c]
test al, 4
jne 0x4a4944
mov eax, dword [edi + ebx*4 + 8]
test eax, eax
je 0x4a9b66
lea edx, [eax - 1]
jmp 0x4a4bd9
and eax, 0xbf04
or eax, 4
mov word [ecx + 0x1c], ax
jmp case.0x4a3ab1.10
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 4
je case.0x4a3ab1.10
mov ecx, edi
call fcn.0049f330
mov ax, word [edi + 0x1c]
mov ecx, 0xbf08
and ax, cx
or ax, 8
fstp qword [edi + 8]
mov word [edi + 0x1c], ax
jmp case.0x4a3ab1.10
mov edi, dword [esp + 0x28]
movzx ecx, word [edi + 0x1c]
test cl, 1
jne case.0x4a3ab1.10
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [edi + 0x1c], ax
test al, 2
jne 0x4a49b9
test al, 0xc
je 0x4a49b9
movzx edx, byte [esp + 0x23]
mov ecx, edi
call fcn.0049efa0
mov eax, 0xfff3
and word [edi + 0x1c], ax
mov ax, word [edi + 0x1c]
test eax, 0x4000
je 0x4a4a35
mov edx, dword [edi]
add edx, dword [edi + 0x18]
test edx, edx
jg 0x4a49db
mov edx, 1
push 1
mov ecx, edi
call fcn.0049ece0
add esp, 4
test eax, eax
je 0x4a4a0d
movzx eax, word [edi + 0x1c]
mov edx, 7
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0x10], 7
mov word [edi + 0x1c], ax
jmp 0x4a4be1
push dword [edi]
mov eax, dword [edi + 0x14]
add eax, dword [edi + 0x18]
push 0
push eax
call fcn.004e14f0
mov eax, dword [edi]
add esp, 0xc
add dword [edi + 0x18], eax
mov eax, 0xbdff
and ax, word [edi + 0x1c]
mov word [edi + 0x1c], ax
movzx eax, ax
xor edx, edx
movzx eax, ax
and eax, 0xbfe3
mov dword [esp + 0x10], edx
mov word [edi + 0x1c], ax
jmp 0x4a4be1
mov edi, dword [esp + 0x28]
movzx eax, word [edi + 0x1c]
test al, 1
jne case.0x4a3ab1.10
test al, 0x10
jne 0x4a4a8d
test al, 2
jne 0x4a4a74
test al, 0xc
je 0x4a4a74
movzx edx, byte [esp + 0x23]
mov ecx, edi
call fcn.0049efa0
mov ax, word [edi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
jmp case.0x4a3ab1.10
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x4a3ab1.10
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 0xd
jne case.0x4a3ab1.10
mov ecx, edi
call fcn.0049f330
fld qword [esp + 0x198]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4a4ad8
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], connect
jmp 0x4a4b15
fld qword [esp + 0x1c8]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x4a4b00
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], connect
jmp 0x4a4b15
fld st(0)
call fcn.00504c50
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 0x4a496a
fstp st(0)
mov ecx, edi
call fcn.0049f240
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
jmp case.0x4a3ab1.10
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 1
jne case.0x4a3ab1.10
jmp 0x4a4b39
mov edi, dword [esp + 0x28]
test byte [edi + 0x1c], 1
jne case.0x4a3ab1.10
jmp 0x4a4963
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 0x4a4bfa
test al, al
jns 0x4a4ba1
and ecx, edx
not ecx
and ecx, 1
jmp 0x4a4d33
test al, 0x10
je 0x4a4bd0
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 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
jmp case.0x4a3ab1.10
test al, 8
je case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 8]
dec edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
inc dword [esp + 0x24]
test edx, edx
jne 0x4a9ebd
mov edx, dword [esp + 0x18]
jmp 0x4a3956
and al, 0x67
mov byte [esp + 0x3c], al
je 0x4a4cae
cmp al, 0x61
jne 0x4a4c33
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x1c]
test al, 2
jne 0x4a4c28
test al, 0xc
je 0x4a4c28
movzx edx, byte [esp + 0x23]
call fcn.0049efa0
mov ecx, dword [esp + 0x28]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
jmp 0x4a4c51
cmp al, 0x62
je 0x4a4c51
mov ecx, dword [esp + 0x28]
call fcn.004a3700
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 8
je 0x4a4c51
mov ecx, eax
call fcn.0049f3e0
cmp byte [esp + 0x3c], 0x61
jne 0x4a4c81
mov ecx, dword [esp + 0x34]
movzx eax, word [ecx + 0x1c]
test al, 2
jne 0x4a4c76
test al, 0xc
je 0x4a4c76
movzx edx, byte [esp + 0x23]
call fcn.0049efa0
mov ecx, dword [esp + 0x34]
mov eax, 0xfff3
and word [ecx + 0x1c], ax
jmp 0x4a4ca0
cmp byte [esp + 0x3c], 0x62
je 0x4a4ca0
mov ecx, dword [esp + 0x34]
call fcn.004a3700
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 8
je 0x4a4ca0
call fcn.0049f3e0
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x1e], 0
jne 0x4a9f35
mov ecx, dword [esp + 0x28]
mov edx, 0xe
mov ax, word [ecx + 0x1c]
bt ax, dx
jae 0x4a4d05
mov edx, dword [ecx]
add edx, dword [ecx + 0x18]
test edx, edx
jg 0x4a4ccf
mov edx, 1
push 1
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a4d05
mov ecx, dword [esp + 0x28]
push dword [ecx]
push eax
mov eax, dword [ecx + 0x14]
add eax, dword [ecx + 0x18]
push eax
call fcn.004e14f0
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 0x4a4d1f
mov ecx, eax
call fcn.0049ef40
mov eax, dword [esp + 0x34]
push dword [edi + ebx*4 + 0x10]
mov edx, dword [esp + 0x2c]
mov ecx, eax
call fcn.0049fa00
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.0x4a4d43
jmp dword [eax*4 + 0x4aa1bc]
xor eax, eax
test ecx, ecx
sete al
jmp 0x4a4d79
xor eax, eax
test ecx, ecx
setne al
jmp 0x4a4d79
mov eax, ecx
jmp 0x4a4d76
xor eax, eax
test ecx, ecx
setle al
jmp 0x4a4d79
xor eax, eax
test ecx, ecx
setg al
jmp 0x4a4d79
mov eax, ecx
not eax
shr eax, 0x1f
mov dword [esp + 0x38], eax
test byte [edi + ebx*4 + 3], 0x10
je 0x4a508f
mov eax, dword [edi + ebx*4 + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
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 dword [esi + 4], edx
jmp case.0x4a3ab1.10
mov eax, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x100], eax
jmp case.0x4a3ab1.10
mov eax, dword [edi + ebx*4 + 0xc]
mov edx, dword [esp + 0x2c]
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 + 0x2c], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], edx
test eax, eax
jle 0x4a4e9a
jmp 0x4a4e10
mov eax, dword [esp + 0x100]
test eax, eax
je 0x4a4e20
mov edi, dword [eax + edx*4]
jmp 0x4a4e22
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 + 0x1c]
mov esi, dword [eax + 0x58]
mov eax, dword [esp + 0x30]
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.0049fa00
add esp, 4
mov dword [esp + 0x104], eax
test eax, eax
jne 0x4a4e8a
mov edx, dword [esp + 0x3c]
inc edx
mov dword [esp + 0x3c], edx
cmp edx, dword [esp + 0x38]
jge 0x4a4e9a
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x2c], ecx
jmp 0x4a4e10
cmp dword [esp + 0x54], 0
je 0x4a4e9a
neg eax
mov dword [esp + 0x104], eax
mov esi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x100], eax
jmp case.0x4a3ab1.10
mov ecx, dword [esp + 0x104]
test ecx, ecx
jns 0x4a4ec3
mov eax, dword [edi + ebx*4 + 4]
lea edx, [eax - 1]
jmp 0x4a4bd9
jne 0x4a4ed1
mov eax, dword [edi + ebx*4 + 8]
lea edx, [eax - 1]
jmp 0x4a4bd9
mov eax, dword [edi + ebx*4 + 0xc]
lea edx, [eax - 1]
jmp 0x4a4bd9
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
je 0x4a4eee
mov ecx, 2
jmp 0x4a4f02
mov ecx, eax
call fcn.0049f240
or eax, edx
je 0x4a4f00
mov ecx, 1
jmp 0x4a4f02
xor ecx, ecx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x38], ecx
test byte [eax + 0x1c], 1
je 0x4a4f1a
mov eax, 2
jmp 0x4a4f32
mov ecx, eax
call fcn.0049f240
or eax, edx
mov ecx, dword [esp + 0x38]
je 0x4a4f30
mov eax, 1
jmp 0x4a4f32
xor eax, eax
mov dword [esp + 0x3c], eax
lea eax, [eax + ecx*2]
cmp byte [edi + ebx*4], 0x45
jne 0x4a4f49
movzx eax, byte [ecx + eax + 0x51ffd0]
jmp 0x4a4f51
movzx eax, byte [ecx + eax + 0x51f540]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cmp eax, 2
jne 0x4a4f7c
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf01
and ax, cx
mov esi, ebx
or ax, 1
movzx eax, ax
mov word [ebx + 0x1c], ax
jmp case.0x4a3ab1.10
mov esi, dword [esp + 0x1c]
mov ecx, 0xbf04
cdq
mov dword [ebx], eax
mov ax, word [ebx + 0x1c]
and ax, cx
mov dword [ebx + 4], edx
or ax, 4
movzx eax, ax
mov word [ebx + 0x1c], ax
jmp case.0x4a3ab1.10
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 0x4a4fcb
mov ecx, ebx
call fcn.0049f470
mov esi, ebx
jmp case.0x4a3ab1.10
mov ecx, edi
call fcn.0049f240
or eax, edx
jne 0x4a4fdb
lea esi, [eax + 1]
jmp 0x4a4fdd
xor esi, esi
mov ecx, ebx
call fcn.0049f180
mov dword [ebx + 4], 0
mov dword [ebx], esi
mov eax, 4
mov esi, dword [esp + 0x1c]
mov word [ebx + 0x1c], ax
mov byte [ebx + 0x1e], 1
jmp case.0x4a3ab1.10
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 0x4a502c
mov ecx, ebx
call fcn.0049f470
mov esi, ebx
jmp case.0x4a3ab1.10
mov ecx, edi
call fcn.0049f240
mov esi, eax
mov edi, edx
mov ecx, ebx
not esi
not edi
call fcn.0049f180
mov dword [ebx + 4], edi
jmp 0x4a4feb
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x1c], 1
je 0x4a5060
mov eax, dword [edi + ebx*4 + 0xc]
test eax, eax
mov dword [esp + 0x38], eax
jmp 0x4a4bd2
call fcn.0049f330
fld qword [esp + 0x138]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4a507c
mov eax, 1
jmp 0x4a507e
xor eax, eax
mov dword [esp + 0x38], eax
cmp byte [edi + ebx*4], 0x1b
jne 0x4a508f
xor eax, 1
mov dword [esp + 0x38], eax
test eax, eax
jmp 0x4a4bd2
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
jmp 0x4a4bd2
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 1
jne case.0x4a3ab1.10
jmp 0x4a4bd4
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 0x4a536e
cmp byte [esi + 0x15], 0
je 0x4a51cc
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.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
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 0x4a51c6
mov ecx, dword [esi]
lea edx, [esp + 0x114]
call fcn.0049bd90
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov byte [esi + 0x15], 0
jmp 0x4a520e
mov edi, dword [esi]
test edi, edi
je 0x4a5219
cmp byte [edi + 0x43], 2
jb 0x4a51f1
mov ecx, edi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov ecx, dword [esp + 0x50]
cmp byte [edi + 0x43], 1
jne 0x4a5201
cmp dword [edi + 0x50], 0
jne 0x4a5201
xor eax, eax
jmp 0x4a5206
mov eax, 1
test eax, eax
je 0x4a5219
mov byte [esi + 0x14], 1
mov dword [esi + 0x44], 0
mov ecx, dword [esp + 0x50]
xor edi, edi
cmp byte [ecx + 0x14], 0
mov dword [esp + 0x10], edi
je 0x4a523e
inc dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edi
jmp 0x4a3956
mov esi, dword [esp + 0x18]
mov eax, dword [ecx + 0x44]
cmp eax, dword [esi + 0x5c]
jne 0x4a5265
mov edx, dword [ecx + 0x48]
mov dword [esp + 0x38], edx
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x4a53b0
cmp byte [ecx + 0x17], 0
mov edx, dword [esp + 0x58]
je 0x4a5305
cmp byte [edx + 0x43], 1
mov dword [esp + 0x10], edx
je 0x4a5294
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x38], edx
jmp 0x4a53b0
cmp word [edx + 0x3e], di
jne 0x4a52e2
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.00499ce0
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 0x4a53b0
mov dword [esp + 0xe0], edx
cmp word [edx + 0x3e], di
jne 0x4a535d
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.00499ce0
mov edx, dword [esp + 0xe4]
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 0x4a53b0
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x4a5905
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 0x4a53a2
xor eax, eax
jmp 0x4a53a5
mov eax, dword [edx + 0x5c]
mov dword [esi + 0x44], eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
test edx, edx
je 0x4a3c30
mov edi, dword [esp + 0x18]
cmp edx, dword [ebx + 0x48]
ja 0x4a9d7c
mov edx, dword [ecx + 0x2c]
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 0x4a53eb
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x60], eax
jmp 0x4a5719
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 0x4a5426
mov dword [esp + 0x70], ecx
jmp 0x4a54e7
mov esi, dword [esp + 0x50]
cmp byte [esi + 0x17], 0
je 0x4a54ac
mov edx, dword [esp + 0x58]
xor ecx, ecx
mov dword [esp + 0xe0], edx
cmp byte [edx + 0x43], 1
jne 0x4a54c2
cmp word [edx + 0x3e], cx
jne 0x4a5498
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.00499ce0
mov esi, dword [esp + 0x54]
add esp, 4
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0x18]
movzx ecx, word [edx + 0x38]
movzx eax, word [edx + 0x3a]
add ecx, dword [edx + 0x20]
mov dword [esp + 0xbc], eax
jmp 0x4a54c2
mov ecx, dword [esp + 0x58]
lea edx, [esp + 0xbc]
call fcn.0049b460
mov esi, dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x70], ecx
cmp eax, dword [esp + 0xbc]
ja 0x4a54dc
mov dword [esp + 0x54], ecx
mov dword [esi + 0x54], ecx
jmp 0x4a54e3
mov dword [esi + 0x54], 0
mov ecx, dword [esp + 0x70]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a54fb
movzx edx, al
mov al, 1
mov dword [esp + 0xa8], edx
jmp 0x4a5512
lea edx, [esp + 0xa8]
call fcn.00492f70
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x70]
movzx ebx, al
mov dword [esp + 0xb8], ebx
cmp edx, 0x18003
ja 0x4a9b74
mov edi, dword [esp + 0x64]
lea esi, [edi*4 + 3]
add esi, edi
mov dword [esp + 0x68], esi
cmp esi, edx
jle 0x4a5543
mov esi, edx
mov dword [esp + 0x68], esi
cmp dword [esp + 0x54], 0
jne 0x4a55b0
cmp dword [esp + 0xbc], esi
jge 0x4a55b0
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.0049fc70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a58ea
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 0x4a56b5
cmp esi, eax
mov eax, dword [esp + 0x60]
jae 0x4a5685
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0xa0]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a5612
mov ecx, dword [esp + 0x6c]
movzx edx, al
mov eax, dword [esp + 0x5c]
mov dword [eax + ecx*4], edx
mov al, 1
jmp 0x4a5622
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
lea edx, [eax + edx*4]
call fcn.00492f70
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 0x4a5664
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 0x4a569e
mov edx, dword [esp + 0xb0]
movzx eax, byte [eax + 0x51f2e8]
add edx, eax
mov dword [esp + 0xb0], edx
adc dword [esp + 0xb4], 0
jmp 0x4a569e
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 0x4a56b5
mov eax, dword [esp + 0xa4]
jmp 0x4a55e4
lea ecx, [esp + 0x78]
call fcn.0049f180
mov edx, dword [esp + 0xa0]
mov eax, 1
mov esi, dword [esp + 0xa4]
mov word [esp + 0x94], ax
cmp edx, esi
ja 0x4a58f3
mov edi, dword [esp + 0xb4]
mov ecx, dword [esp + 0x38]
test edi, edi
ja 0x4a58f3
mov eax, dword [esp + 0xb0]
jb 0x4a5705
cmp eax, ecx
ja 0x4a58f3
cmp edx, esi
jne 0x4a5719
cmp eax, ecx
jne 0x4a58f3
test edi, edi
jne 0x4a58f3
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
cmp dword [eax + ecx*4], 0
je 0x4a5877
cmp dword [esp + 0x54], 0
je 0x4a57c5
mov edi, dword [esp + 0x74]
movzx eax, word [edi + 0x1c]
test eax, 0x2460
je 0x4a5799
test eax, 0x2000
je 0x4a575e
mov edx, dword [edi]
mov ecx, edi
call fcn.0049f050
mov ecx, edi
call fcn.0049f180
jmp 0x4a5795
test eax, 0x400
je 0x4a577d
mov ecx, dword [edi + 0x20]
test ecx, ecx
je 0x4a577d
push dword [edi + 0x14]
call ecx
add esp, 4
mov dword [edi + 0x20], 0
jmp 0x4a5795
test al, 0x20
je 0x4a578a
mov ecx, dword [edi]
call fcn.00495d40
jmp 0x4a5795
test al, 0x40
je 0x4a5799
mov ecx, edi
call fcn.0049f470
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.004a2370
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0x27]
mov byte [eax + 0x1f], cl
jmp 0x4a5898
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + ecx*4]
cmp eax, 0xc
jb 0x4a57d8
add eax, 0xfffffff4
shr eax, 1
jmp 0x4a57df
movzx eax, byte [eax + 0x51f2e8]
mov ebx, dword [esp + 0x74]
lea ecx, [esp + 0x78]
mov dword [esp + 0x68], eax
call fcn.0049f180
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.0049fc70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a58ea
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.004a2370
mov eax, dword [esp + 0x78]
mov cl, byte [esp + 0x27]
mov byte [eax + 0x1f], cl
jmp 0x4a5898
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
cmp byte [ecx + eax*4 + 1], 0xf8
jne 0x4a589b
mov edx, dword [ecx + eax*4 + 0x10]
mov ecx, dword [esp + 0x74]
push 0x800
call fcn.0049f680
add esp, 4
cmp dword [esp + 0x9c], 0
je 0x4a58db
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.0049eee0
mov edx, eax
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x1c]
jmp 0x4a4be1
mov esi, dword [esp + 0x1c]
mov edx, 0xb
mov dword [esp + 0x10], edx
jmp 0x4a4be1
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], 0
jmp case.0x4a3ab1.10
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 0x4a3e9d
mov dword [esp + 0x44], esi
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a5966
mov ecx, esi
call fcn.0049ef40
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 0x4a59ab
movzx eax, word [esi + 0x1c]
test al, 2
jne 0x4a59a0
test al, 0xc
je 0x4a59a0
movzx edx, byte [esp + 0x23]
mov ecx, esi
call fcn.0049efa0
mov eax, 0xfff3
and word [esi + 0x1c], ax
jmp 0x4a59c3
cmp al, 0x62
je 0x4a59c7
mov ecx, esi
call fcn.004a3700
test byte [esi + 0x1c], 8
je 0x4a59c3
mov ecx, esi
call fcn.0049f3e0
mov esi, dword [esp + 0x44]
add esi, 0x28
mov dword [esp + 0x44], esi
cmp esi, dword [esp + 0x40]
jbe 0x4a5950
mov esi, dword [esp + 0x1c]
jmp case.0x4a3ab1.10
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 0x4a5b5f
mov dword [esp + 0x3c], esi
jmp 0x4a5a60
mov edi, dword [esp + 0x70]
test edi, edi
je 0x4a5ac5
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 0x4a5aa9
movzx eax, word [esi + 0x1c]
test al, 2
jne 0x4a5a9e
test al, 0xc
je 0x4a5a9e
movzx edx, byte [esp + 0x23]
mov ecx, esi
call fcn.0049efa0
mov eax, 0xfff3
and word [esi + 0x1c], ax
jmp 0x4a5ac1
cmp al, 0x62
je 0x4a5ac5
mov ecx, esi
call fcn.004a3700
test byte [esi + 0x1c], 8
je 0x4a5ac1
mov ecx, esi
call fcn.0049f3e0
mov esi, dword [esp + 0x3c]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a5ae1
cmp dword [esi + 0x18], 0
jle 0x4a5ae1
mov ecx, esi
call fcn.0049ef40
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.004a2290
mov edx, eax
mov dword [esp + 0x60], edx
cmp edx, 0xc
jb 0x4a5afe
lea edi, [edx - 0xc]
shr edi, 1
jmp 0x4a5b05
movzx edi, byte [edx + 0x51f2e8]
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 0x4a5b29
cmp ebx, 9
jl 0x4a5b16
add dword [esp + 0x48], ebx
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x4a5b40
mov eax, dword [esi]
add dword [esp + 0x58], eax
jmp 0x4a5b4a
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 0x4a5a60
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x48]
xor edi, edi
cdq
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a5b7b
cmp edi, 9
jl 0x4a5b68
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
mov edi, edi
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x4a5ba3
cmp esi, 9
jl 0x4a5b90
cmp edi, esi
jge 0x4a5bab
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 + 0x14]
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 0x4a9d6a
jl 0x4a5be7
cmp esi, eax
ja 0x4a9d6a
mov eax, dword [esp + 0x30]
mov edx, esi
push 0
mov eax, dword [eax + ebx*4 + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x58]
lea ebx, [eax + ecx*8]
mov ecx, ebx
mov dword [esp + 0x20], ebx
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a9f39
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x38], edx
cmp ecx, 0x80
jae 0x4a5c34
mov al, cl
mov byte [edx], al
mov eax, 1
jmp 0x4a5c5f
test ecx, 0xffffc000
jne 0x4a5c52
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 0x4a5c5f
push 0
push ecx
mov ecx, edx
call fcn.00492cf0
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 0x4a5cfc
jmp 0x4a5c80
mov edx, dword [esp + 0x74]
mov ecx, esi
call fcn.004a2290
mov ecx, eax
mov dword [esp + 0x60], ecx
cmp ecx, 0x80
jae 0x4a5ca9
mov cl, al
mov eax, dword [esp + 0x38]
mov byte [edi + eax], cl
mov eax, 1
jmp 0x4a5cda
mov edx, dword [esp + 0x38]
add edx, edi
test ecx, 0xffffc000
jne 0x4a5ccd
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 0x4a5cda
push 0
push ecx
mov ecx, edx
call fcn.00492cf0
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 0x4a5c80
mov esi, dword [esp + 0x64]
mov dword [esp + 0x3c], esi
cmp esi, dword [esp + 0x68]
ja 0x4a5dfa
lea ebx, [ebx]
mov eax, dword [esp + 0x50]
mov ecx, esi
mov edx, dword [esp + 0x74]
sub eax, edi
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x38]
add eax, edi
mov dword [esp + 0x2c], eax
call fcn.004a2290
mov ebx, eax
lea ecx, [ebx - 1]
cmp ecx, 6
ja 0x4a5d8a
cmp ebx, 7
jne 0x4a5d79
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
movzx ecx, byte [ebx + 0x51f2e8]
mov ebx, ecx
test ecx, ecx
je 0x4a5ddf
mov edi, dword [esp + 0x2c]
lea esp, [esp]
dec ecx
mov byte [ecx + edi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x4a5d60
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
jmp 0x4a5ddf
mov edx, dword [esi]
mov eax, dword [esi + 4]
cmp ebx, 0xc
jb 0x4a5d47
lea ecx, [ebx - 0xc]
shr ecx, 1
jmp 0x4a5d4e
cmp ebx, 0xc
jb 0x4a5ddd
mov ebx, dword [esi + 0x18]
mov edi, dword [esp + 0x2c]
push ebx
push dword [esi + 0x14]
push edi
call fcn.004e0f70
mov eax, 0x4000
add esp, 0xc
test word [esi + 0x1c], ax
je 0x4a5dd3
add ebx, dword [esi]
mov eax, dword [esp + 0xe0]
cmp ebx, eax
jbe 0x4a5dbd
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.004e14f0
add esp, 0xc
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
jmp 0x4a5ddf
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 0x4a5d10
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 0x4a5e24
mov dword [ebx], eax
mov eax, 0x4410
mov word [ebx + 0x1c], ax
mov esi, dword [esp + 0x1c]
mov byte [ebx + 0x1f], 1
jmp case.0x4a3ab1.10
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 0x4a5e54
lea edx, [esp + 0x38]
call fcn.0049e9a0
mov dword [esp + 0x10], eax
jmp 0x4a5e64
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
mov ebx, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0x3c], ebx
test edx, edx
jne 0x4a5fc2
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x90], edx
jg 0x4a9b8e
test ebx, ebx
jne 0x4a5eba
xor eax, eax
jmp 0x4a5ece
cmp byte [ebx], 0
mov eax, ebx
je 0x4a5ec7
inc eax
cmp byte [eax], 0
jne 0x4a5ec1
sub eax, ebx
and eax, 0x3fffffff
mov ebx, dword [esp + 0x14]
lea edx, [eax + 0x19]
mov dword [esp + 0x40], eax
cmp byte [ebx + 0x1e], 0
je 0x4a5ef0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], 0
jmp 0x4a4be5
cmp byte [ebx + 0xe2], 0
je 0x4a5f37
movzx eax, word [ebx + 0xe0]
cmp edx, eax
ja 0x4a5f37
mov ecx, dword [ebx + 0xec]
test ecx, ecx
je 0x4a5f37
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 0x4a5f31
mov dword [ebx + 0xe8], eax
mov dword [esp + 0x44], ecx
jmp 0x4a5f56
push edx
call fcn.004900b0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a5f4a
mov byte [ebx + 0x1e], 1
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x4a3c34
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.004e0f70
add esp, 0xc
cmp byte [ebx + 0x1c], 0
je 0x4a5f86
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1cc], 1
jmp 0x4a5f8c
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 edx, dword [ebx + 0x1d4]
mov ecx, dword [ebx + 0x1d0]
mov dword [ebx + 0x1c0], eax
mov eax, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov edi, dword [esi + 0x1c0]
mov dword [esp + 0x48], edi
test edi, edi
je 0x4a9bdc
mov edi, edi
mov esi, dword [edi]
mov edx, ebx
mov bl, byte [esi]
test bl, bl
je 0x4a6011
mov al, bl
sub esi, edx
mov edi, edi
movzx ecx, byte [edx]
mov bl, al
movzx eax, al
mov al, byte [eax + 0x5205b0]
cmp al, byte [ecx + 0x5205b0]
jne 0x4a6011
mov al, byte [edx + esi + 1]
inc edx
mov bl, al
test al, al
jne 0x4a5ff0
movzx eax, bl
movzx ecx, byte [eax + 0x5205b0]
movzx eax, byte [edx]
movzx eax, byte [eax + 0x5205b0]
sub ecx, eax
je 0x4a6047
inc dword [esp + 0x50]
mov eax, dword [edi + 0x10]
mov edi, eax
mov dword [esp + 0x48], edi
test eax, eax
je 0x4a9bdc
mov ebx, dword [esp + 0xe0]
jmp 0x4a5fe0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
test edi, edi
je 0x4a9bdc
cmp dword [esi + 0x90], 0
jg 0x4a626b
cmp edx, 2
jne 0x4a607a
cmp dword [esi + 0x8c], 1
jg 0x4a6270
cmp dword [edi + 0x10], 0
jne 0x4a60bc
cmp byte [esi + 0x1cc], 0
je 0x4a60bc
mov ebx, 1
cmp edx, ebx
jne 0x4a60be
mov edi, dword [esp + 0x18]
mov ecx, edi
mov byte [esi + 0x1c], bl
call fcn.004a1a70
cmp eax, 5
je 0x4a9bbe
mov byte [esi + 0x1cc], 0
mov eax, dword [edi + 0x64]
mov dword [esp + 0x10], eax
jmp 0x4a6174
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 + 0x14]
cmp dword [eax + 4], esi
jle 0x4a6147
lea ebx, [ebx]
mov eax, dword [eax + 8]
mov ecx, esi
add ecx, ecx
xor edi, edi
mov dword [esp + 0x10], edi
mov eax, dword [eax + ecx*8 + 4]
test eax, eax
je 0x4a612d
cmp byte [eax + 8], 2
jne 0x4a612d
mov esi, dword [eax + 4]
push dword [esp + 0x50]
mov ecx, dword [esi]
call fcn.00499a10
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a6121
mov ecx, esi
call fcn.0049abc0
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x54]
test edi, edi
jne 0x4a9ce3
mov eax, dword [esp + 0x14]
inc esi
mov dword [esp + 0x54], esi
cmp esi, dword [eax + 4]
jl 0x4a60e0
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
cmp edx, 2
jne 0x4a617c
test byte [esi + 0xc], 0x10
je 0x4a617c
mov eax, dword [esi + 0x88]
test eax, eax
je 0x4a616b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a6160
xor edx, edx
mov ecx, esi
call fcn.004b4ec0
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x48]
mov eax, dword [esi + 0x1c0]
cmp eax, edi
je 0x4a61ec
jmp 0x4a6190
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x4a61cb
cmp ecx, dword [esi + 0xf0]
jb 0x4a61cb
cmp ecx, dword [esi + 0xf4]
jae 0x4a61cb
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x4a61d4
push ecx
call fcn.00490120
add esp, 4
dec dword [esi + 0x1c4]
mov eax, dword [esi + 0x1c0]
mov edi, dword [esp + 0x48]
cmp eax, edi
jne 0x4a6190
mov edx, dword [esp + 0x38]
cmp edx, 1
jne 0x4a6250
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1c0], eax
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4a6228
cmp ecx, dword [esi + 0xf0]
jb 0x4a6228
cmp ecx, dword [esi + 0xf4]
jae 0x4a6228
mov eax, dword [esi + 0xec]
mov dword [ecx], eax
dec dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
jmp 0x4a6231
push ecx
call fcn.00490120
add esp, 4
mov edx, dword [esp + 0x10]
test ebx, ebx
mov ebx, dword [esp + 0x14]
jne 0x4a6704
dec dword [esi + 0x1c4]
mov esi, dword [esp + 0x1c]
jmp 0x4a4be5
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [esi + 0x1d0], eax
mov dword [esi + 0x1d4], ecx
mov esi, dword [esp + 0x1c]
jmp case.0x4a3ab1.10
cmp edx, 2
jne 0x4a6277
mov eax, str.rollback
jmp 0x4a627c
mov eax, str.release
push eax
mov eax, dword [esp + 0x1c]
push str.cannot__s_savepoint___SQL_statements_in_progress
add eax, 0x68
push esi
push eax
call fcn.00490560
mov esi, dword [esp + 0x2c]
mov edx, 5
add esp, 0x10
mov dword [esp + 0x10], edx
jmp 0x4a4be1
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
mov ecx, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x4a62ff
cmp byte [ebx + 0x1c], 0
jne 0x4a62ff
mov dword [esp + 0x40], 1
test ecx, ecx
je 0x4a62e7
cmp dword [ebx + 0x8c], 1
jle 0x4a6307
mov dword [esp + 0x10], 5
mov eax, str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4a6334
cmp dword [ebx + 0x90], 0
jle 0x4a6307
mov dword [esp + 0x10], 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4a6334
mov dword [esp + 0x40], 0
movzx eax, byte [ebx + 0x1c]
cmp edx, eax
jne 0x4a9c16
test edx, edx
jne 0x4a631e
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4a632c
mov eax, str.cannot_rollback___no_transaction_is_active
test ecx, ecx
jne 0x4a632c
mov eax, str.cannot_commit___no_transaction_is_active
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x18]
push eax
push ebx
lea eax, [ecx + 0x68]
push eax
call fcn.00490560
mov edx, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4a4be5
mov edx, dword [esp + 0x14]
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 case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 8]
call fcn.0049ac70
mov edx, eax
mov dword [esp + 0x10], edx
cmp edx, 5
je 0x4a9c7e
test edx, edx
jne 0x4a9ce7
cmp dword [edi + ebx*4 + 8], eax
mov ebx, dword [esp + 0x14]
je 0x4a4be5
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x71], al
je 0x4a4be5
cmp byte [ebx + 0x1c], al
je 0x4a63b9
cmp dword [ebx + 0x8c], 1
jle 0x4a4be5
mov edx, dword [edi + 0xd8]
test edx, edx
jne 0x4a63db
mov edx, dword [ebx + 0x1c4]
inc dword [ebx + 0x1c8]
add edx, dword [ebx + 0x1c8]
mov dword [edi + 0xd8], edx
mov eax, dword [esp + 0x38]
cmp byte [eax + 8], 2
jne 0x4a63fb
mov ecx, dword [eax + 4]
cmp byte [ecx + 0x10], 0
jne 0x4a63fb
mov ecx, dword [ecx]
call fcn.004998b0
mov dword [esp + 0x10], eax
jmp 0x4a6403
mov dword [esp + 0x10], 2
mov eax, dword [ebx + 0x1d0]
mov ecx, dword [ebx + 0x1d4]
mov edx, dword [esp + 0x10]
mov dword [edi + 0xd0], eax
mov dword [edi + 0xd4], ecx
jmp 0x4a4be5
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 + 0x14]
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 0x4a6482
test esi, esi
je 0x4a6482
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
mov edx, dword [esp + 0x10]
or ax, 4
mov word [esi + 0x1c], ax
jmp 0x4a4be5
mov eax, dword [edi + ebx*4 + 4]
mov edx, dword [esp + 0x14]
shl eax, 4
add eax, dword [edx + 8]
mov dword [esp + 0x38], eax
call fcn.0049f240
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
mov ebx, dword [ecx]
and ax, dx
mov edx, dword [esp + 0x2c]
or ax, 4
mov word [ecx + 0x1c], ax
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.004994e0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a6528
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 + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + edx*4 + 8]
cmp eax, 1
jne 0x4a6552
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 + 0x14]
or dword [eax + 0xc], 0x10
jmp 0x4a6567
cmp eax, 2
jne 0x4a6567
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 + 0x14]
jne 0x4a3c30
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a658b
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a6580
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [eax + 0x6e], 0
jmp 0x4a4be5
mov edx, dword [esp + 0x14]
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 0x4a65e3
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 0x4a65e5
xor edx, edx
mov dword [esp + 0x38], edx
cmp edx, dword [edi + ebx*4 + 8]
je case.0x4a3ab1.10
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4a6628
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0xf0]
jb 0x4a6628
cmp ecx, dword [edx + 0xf4]
jae 0x4a6628
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a6635
push ecx
call fcn.00490120
mov edx, dword [esp + 0x18]
add esp, 4
mov eax, str.database_schema_has_changed
lea ebx, [ebx]
inc eax
cmp byte [eax], 0
jne 0x4a6640
sub eax, str.database_schema_has_changed
and eax, 0x3fffffff
cmp byte [edx + 0x1e], 0
lea edi, [eax + 1]
je 0x4a665d
xor esi, esi
jmp 0x4a66b9
cmp byte [edx + 0xe2], 0
je 0x4a670d
movzx eax, word [edx + 0xe0]
cmp edi, eax
ja 0x4a670d
mov esi, dword [edx + 0xec]
test esi, esi
je 0x4a670d
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 0x4a66aa
mov dword [edx + 0xe8], eax
push edi
push str.database_schema_has_changed
push esi
call fcn.004e0f70
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [eax + 0x68], esi
mov eax, dword [esp + 0x30]
mov edx, dword [eax + ebx*4 + 4]
mov ecx, edx
mov ebx, dword [esp + 0x14]
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 0x4a66e6
mov ecx, ebx
call fcn.004b4ec0
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a66fb
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a66f0
mov edx, 0x11
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x1c]
jmp 0x4a4be5
push edi
call fcn.004900b0
mov esi, eax
add esp, 4
test esi, esi
jne 0x4a66aa
mov edx, dword [esp + 0x14]
mov byte [edx + 0x1e], 1
jmp 0x4a66b9
cmp byte [edx + 0x6e], 0
jne 0x4a9ca7
mov eax, dword [esp + 0x14]
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 0x4a6781
mov dword [esp + 0x48], 1
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
mov al, byte [eax + 0x48]
cmp al, byte [ecx + 0x6f]
jae 0x4a6785
mov byte [ecx + 0x6f], al
jmp 0x4a6785
mov dword [esp + 0x48], edx
cmp byte [edi + ebx*4 + 3], dl
je 0x4a67db
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x58]
lea eax, [eax + ecx*8]
mov ecx, eax
mov dword [esp + 0xe4], eax
call fcn.0049f240
mov ecx, dword [esp + 0xe4]
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
mov eax, dword [ecx]
mov dword [esp + 0x40], eax
cmp eax, 2
jl 0x4a9c9c
mov edx, dword [esp + 0x38]
jmp 0x4a67df
mov esi, dword [esp + 0x18]
mov al, byte [edi + ebx*4 + 1]
cmp al, 0xfa
jne 0x4a6808
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 0x4a6810
cmp al, 0xf2
jne 0x4a6814
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.004a3600
add esp, 0xc
mov dword [esp + 0x50], eax
test eax, eax
je 0x4a9f39
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 + 0xe0], ecx
mov dword [esp + 0x10], edx
test edx, edx
je 0x4a687e
cmp byte [edi + 0x10], 0
je 0x4a687e
mov dword [eax + 0x28], ecx
mov dword [esp + 0x10], 8
jmp 0x4a6919
cmp ebx, 1
jne 0x4a68c8
mov ecx, dword [edi]
lea edx, [esp + 0x118]
mov dword [esp + 0x118], 0xffffffff
call fcn.00497dd0
cmp dword [esp + 0x118], 0
jne 0x4a68bd
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 0x4a6911
mov ecx, dword [esp + 0xe0]
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 0x4a68f1
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 + 0x30]
mov edx, dword [esp + 0x2c]
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
jmp case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 4]
mov ecx, dword [esp + 0x18]
push 1
push 0xffffffffffffffff
push dword [edi + ebx*4 + 8]
call fcn.004a3600
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a9f39
mov ecx, dword [esp + 0x14]
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.0049a730
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a6c01
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp dword [eax + 0x24], ecx
jne 0x4a69dc
mov eax, dword [eax]
mov eax, dword [eax + 0xa8]
mov dword [eax + 0x10], 0x1f4
mov eax, dword [eax + 0x28]
test eax, eax
je 0x4a69dc
push 0x1f4
push eax
call dword [0x534f84]
add esp, 8
jmp 0x4a69e4
test ecx, ecx
jne 0x4a6c01
mov ecx, dword [esp + 0x38]
mov edx, 1
mov ecx, dword [ecx + 0x20]
call fcn.0049ac70
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a6c01
cmp dword [edi + ebx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
je 0x4a6b6c
mov eax, dword [eax + 0x20]
lea edx, [esp + 0x148]
push ecx
lea ecx, [esp + 0x150]
push 1
push ecx
mov ecx, dword [eax + 4]
call fcn.0049c090
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4a6b4d
mov esi, dword [esp + 0x148]
lea edx, [eax + 0xa]
mov ecx, esi
call fcn.0049a580
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a6a65
mov esi, dword [ecx + 0x10]
call fcn.00494db0
mov ecx, esi
call fcn.00498d70
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x14c]
mov eax, dword [edi + edx*4 + 0x10]
mov esi, dword [ecx]
mov dword [esp + 0xe0], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0xe8], eax
mov edi, dword [eax + 4]
cmp byte [edi + 0x10], 0
je 0x4a6aa1
mov dword [esp + 0x10], 8
jmp 0x4a6b25
cmp ebx, 1
jne 0x4a6ada
mov ecx, dword [edi]
lea edx, [esp + 0x130]
mov dword [esp + 0x130], 0xffffffff
call fcn.00497dd0
cmp dword [esp + 0x130], 0
jne 0x4a6ad3
mov dword [esp + 0x10], 0x10
jmp 0x4a6b21
mov eax, dword [esp + 0xe8]
or ecx, 0xffffffff
mov dword [esi + 0x14], ebx
mov word [esi + 0x5c], cx
mov ecx, dword [esp + 0xe0]
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 0x4a6b04
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 + 0x30]
mov eax, dword [esp + 0x2c]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x18]
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
jmp case.0x4a3ab1.10
mov ebx, dword [eax + 0x20]
mov esi, dword [eax]
mov edi, dword [ebx + 4]
cmp byte [edi + 0x10], 0
je 0x4a6b84
mov dword [esp + 0x10], 8
jmp 0x4a6bfd
mov ecx, dword [edi]
lea edx, [esp + 0x12c]
mov dword [esp + 0x12c], 0xffffffff
call fcn.00497dd0
cmp dword [esp + 0x12c], 0
jne 0x4a6bb1
mov dword [esp + 0x10], 0x10
jmp 0x4a6bf9
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 0x4a6bdc
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
jmp case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 4]
mov ecx, dword [esp + 0x18]
push 0
push 0xffffffffffffffff
push dword [edi + ebx*4 + 0xc]
call fcn.004a3600
add esp, 0xc
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a9f39
mov byte [eax + 0x14], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [edi + ebx*4 + 8]
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
jmp case.0x4a3ab1.10
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4a6caa
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x4a6c7c
call fcn.0049a8c0
jmp 0x4a6c87
mov ecx, dword [esi]
test ecx, ecx
je 0x4a6c8b
call fcn.0049af60
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x38]
test ecx, ecx
je 0x4a6caa
mov eax, dword [esi + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov edx, dword [esp + 0x1c]
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 dword [eax + ecx*4], 0
jmp case.0x4a3ab1.10
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 0x4a4bd4
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 0x4a6f53
mov ecx, dword [esp + 0x34]
call fcn.004a3700
mov ecx, dword [esp + 0x34]
call fcn.0049f240
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 0x4a6efe
test al, 8
je 0x4a4bd4
cmp dword [esp + 0x68], 0
jne 0x4a6d5e
cmp dword [esp + 0x6c], 0x80000000
jne 0x4a6d5e
fld qword [ecx + 8]
fld qword [esp + 0x198]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x4a6daf
fcomp qword [esp + 0x138]
fnstsw ax
test ah, 0x41
je 0x4a6db1
mov eax, dword [esp + 0x3c]
cmp eax, 0x2b
je 0x4a6eca
cmp eax, 0x2d
je 0x4a6eca
fild qword [esp + 0x68]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x4a6efe
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 0x4a6f06
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 0x4a6e22
cmp eax, 0x2e
je 0x4a6ddc
cmp eax, 0x2d
jne 0x4a6eb4
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov ecx, esi
call fcn.0049b580
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
cmp byte [esi + 0x43], al
jne 0x4a6e0d
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], edx
jmp 0x4a6ea9
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.0049b6d0
mov edx, eax
test edx, edx
jmp 0x4a6e9f
cmp eax, 0x2b
je 0x4a6e30
cmp eax, 0x2c
jne 0x4a6eb4
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
cmp byte [esi + 0x43], 1
jne 0x4a6e60
cmp byte [esi + 0x41], 0
je 0x4a6e60
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0
mov edx, dword [eax + ebx*4 + 8]
dec edx
mov dword [esp + 0x24], edx
jmp case.0x4a3ab1.10
mov ecx, esi
call fcn.0049b580
mov ecx, eax
mov edx, ecx
mov dword [esp + 0x10], edx
test ecx, ecx
jne 0x4a6e9b
cmp byte [esi + 0x43], al
jne 0x4a6e82
mov dword [esp + 0x38], 1
jmp 0x4a6ea9
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.0049b7b0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
test ecx, ecx
mov dword [esp + 0x10], edx
jne 0x4a9ce7
cmp dword [esp + 0x38], 0
je 0x4a58ea
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [eax + ebx*4 + 8]
dec edx
mov dword [esp + 0x24], edx
jmp case.0x4a3ab1.10
fild qword [esp + 0x68]
fstp qword [esp + 0xf0]
fld qword [esp + 0xf0]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x4a6efe
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 0x4a6f06
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.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
cmp dword [esp + 0x38], eax
jne 0x4a6fcb
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 0x4a6fcb
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 0x4a6f7e
cmp eax, 0x2c
je 0x4a6f7e
xor eax, eax
jmp 0x4a6f83
mov eax, 8
mov word [esp + 0x4e], ax
mov eax, dword [edi + ebx*4 + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
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.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov eax, dword [esp + 0x40]
mov byte [eax + 0x11], dl
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 0x4a7021
cmp eax, 0x2e
je 0x4a7021
mov ecx, dword [esp + 0x38]
test ecx, ecx
jg 0x4a7010
jne 0x4a6ffb
cmp eax, 0x2b
je 0x4a7010
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 0x4a706f
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
mov ecx, dword [ecx]
call fcn.0049bf00
jmp 0x4a7059
mov ecx, dword [esp + 0x38]
test ecx, ecx
js 0x4a704a
jne 0x4a7030
cmp eax, 0x2e
je 0x4a704a
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
inc eax
mov edx, dword [esp + 0x18]
jmp 0x4a3952
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x38]
mov ecx, dword [ecx]
call fcn.0049bd90
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov eax, dword [esp + 0x40]
mov byte [eax + 0x11], 0
cmp dword [esp + 0x38], 0
je 0x4a7038
mov eax, dword [edi + ebx*4 + 8]
mov ebx, dword [esp + 0x14]
dec eax
mov edx, dword [esp + 0x18]
inc eax
jmp 0x4a3952
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.0x4a3ab1.10
mov ecx, dword [esp + 0xe4]
mov byte [eax + 0x14], 0
call fcn.0049f240
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
jmp case.0x4a3ab1.10
mov eax, dword [esp + 0x18]
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 0x4a7196
mov eax, dword [esp + 0x34]
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x4a710d
mov ecx, eax
call fcn.0049ef40
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.004a2620
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
je 0x4a9f39
cmp byte [edi + ebx*4], 0x31
jne 0x4a7143
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.0049b890
mov ecx, dword [esp + 0x54]
add esp, 0x10
mov dword [esp + 0x10], eax
call fcn.004a2800
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x4a4be1
xor eax, eax
cmp dword [esp + 0x40], eax
sete al
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov byte [eax + 0x15], dl
mov eax, dword [esp + 0x3c]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x38]
cmp byte [edi + ebx*4], 0x31
jne 0x4a71a3
test edx, edx
jmp 0x4a4bd2
test edx, edx
jne case.0x4a3ab1.10
jmp 0x4a4bd4
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 0x4a722d
jmp 0x4a7210
movzx eax, cx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x1c], 1
jne 0x4a72d7
inc cx
mov word [esp + 0x38], cx
cmp cx, dx
jb 0x4a7210
test edi, edi
je 0x4a3e9d
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.0049f240
mov dword [ebx], eax
mov ecx, 0xbf04
mov ax, word [ebx + 0x1c]
and ax, cx
mov dword [ebx + 4], edx
or ax, 4
mov ecx, edx
mov word [ebx + 0x1c], ax
lea edx, [esp + 0x50]
mov eax, dword [ebx]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
add eax, 0x40
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x40]
push eax
push 0
push 0
push 0
call fcn.0049b890
add esp, 0x10
mov dword [esp + 0x10], eax
test byte [esp + 0x56], 0x20
jne 0x4a8d33
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x68]
jne 0x4a72c9
cmp eax, dword [esp + 0x6c]
je 0x4a8d33
mov esi, dword [esp + 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
jmp case.0x4a3ab1.10
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [edx + eax*4 + 8]
dec edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x24], edx
jmp case.0x4a3ab1.10
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 0x4a73a3
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.0049b890
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 0x4a7397
mov eax, dword [edi + ebx*4 + 8]
dec eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x40], ecx
jmp case.0x4a3ab1.10
mov edx, dword [edi + ebx*4 + 8]
mov dword [eax + 0x40], 0
jmp 0x4a4bd8
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], ecx
mov dword [esi + 4], eax
mov ecx, dword [edi + ebx*4 + 4]
mov eax, dword [edx + 0x34]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x30], 1
adc dword [eax + 0x34], 0
jmp 0x4a4457
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 0x4a76a1
mov dword [esp + 0x48], 0
cmp byte [ecx + 0x13], 0
jne 0x4a75b5
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 0x4a74d8
mov esi, dword [ecx]
cmp byte [esi + 0x43], 1
jne 0x4a7447
cmp byte [esi + 0x41], al
jne 0x4a74af
mov ecx, esi
call fcn.0049b580
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a7481
cmp byte [esi + 0x43], al
jne 0x4a7468
mov eax, 1
mov dword [esp + 0x44], eax
jmp 0x4a7493
mov ecx, esi
mov dword [esp + 0x44], 0
call fcn.0049b7b0
mov ecx, eax
test ecx, ecx
sete al
mov byte [esi + 0x41], al
mov edx, ecx
mov dword [esp + 0x10], edx
test ecx, ecx
jne 0x4a9ce7
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4a74af
mov esi, 1
xor edx, edx
mov dword [esp + 0x38], esi
add esi, esi
mov dword [esp + 0x3c], edx
adc edx, edx
jmp 0x4a758c
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov dword [esp + 0xe8], edx
cmp byte [edx + 0x43], 1
je 0x4a74fa
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 0x4a7588
jl 0x4a74ef
cmp esi, 0xffffffff
jae 0x4a7588
add esi, 1
adc edx, 0
jmp 0x4a758c
cmp word [edx + 0x3e], 0
jne 0x4a7548
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.00499ce0
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 0x4a74ca
cmp edx, 0x7fffffff
jne 0x4a74ca
mov eax, dword [esp + 0x40]
mov byte [eax + 0x13], 1
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x4a74d8
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 0x4a75b5
lea esp, [esp]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edi + 0x14]
jne 0x4a75ae
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a75a0
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x13], 0
je 0x4a7682
mov eax, dword [esp + 0x14]
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
jmp 0x4a75e0
test eax, eax
jne 0x4a7604
mov eax, ecx
xor esi, esi
and eax, 0xffffff
cmp eax, ecx
jne 0x4a7604
cmp esi, edx
jne 0x4a7604
add ecx, 1
mov dword [esp + 0x38], ecx
adc edx, esi
mov dword [esp + 0x3c], edx
jmp 0x4a7633
lea edx, [esp + 0x38]
mov ecx, 8
call fcn.00491c70
cmp dword [esp + 0x48], 5
mov ecx, dword [esp + 0x38]
jge 0x4a762f
and ecx, 0xffffff
xor edx, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jmp 0x4a7633
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.0049b890
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 0x4a7682
cmp eax, 0x64
jge 0x4a7677
cmp dword [esp + 0x44], ecx
jne 0x4a7682
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
jmp 0x4a75e0
cmp dword [esp + 0x44], 0
je 0x4a9cc1
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x1c]
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 0x4a5e69
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 + 0x18]
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 0x4a7700
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 0x4a7705
cdq
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
test byte [edi + ebx*4 + 3], 1
je 0x4a7717
mov eax, dword [esp + 0x18]
inc dword [eax + 0x74]
test byte [edi + ebx*4 + 3], 2
je 0x4a773c
mov edx, dword [esp + 0x14]
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 0x4a7760
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 0x4a776c
mov ebx, dword [ecx + 0x40]
jmp 0x4a776e
xor ebx, ebx
mov eax, 0x4000
mov dword [esp + 0x50], ebx
test word [esi + 0x1c], ax
je 0x4a7781
mov edi, dword [esi]
jmp 0x4a7783
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 0x4a77c2
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a77a9
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a7793
mov ebx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x38]
jmp 0x4a77c6
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
xor edx, edx
mov ecx, dword [ecx]
push ebx
mov ebx, dword [esp + 0x30]
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.0049e190
mov dword [esp + 0x2c], eax
add esp, 0x1c
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
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 edx, edx
jne 0x4a58ea
mov edi, dword [esp + 0x14]
cmp dword [edi + 0xb8], edx
je 0x4a9aec
mov esi, dword [esp + 0x30]
cmp dword [esi + ebx*4 + 0x10], edx
je 0x4a9aec
mov eax, dword [esp + 0x48]
push dword [esp + 0x44]
push dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 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, edi
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 esi, dword [esp + 0x34]
add esp, 0x18
inc dword [esp + 0x24]
mov edx, dword [esp + 0x18]
jmp 0x4a3956
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 + 0x14]
mov dword [esp + 0x40], esi
cmp dword [eax + 0xb8], 0
je 0x4a78dd
cmp dword [edi + ebx*4 + 0x10], 0
je 0x4a78dd
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 0x4a7955
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.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
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 0x4a7948
mov ecx, dword [esi]
lea edx, [esp + 0x128]
call fcn.0049bd90
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov byte [esi + 0x15], 0
mov dword [esi + 0x44], 0
jmp 0x4a79a4
mov edi, dword [esi]
test edi, edi
je 0x4a79a0
cmp byte [edi + 0x43], 2
jb 0x4a7976
mov ecx, edi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
cmp byte [edi + 0x43], 1
jne 0x4a7986
cmp dword [edi + 0x50], 0
jne 0x4a7986
xor eax, eax
jmp 0x4a798b
mov eax, 1
mov edi, dword [esp + 0x30]
test eax, eax
je 0x4a79a4
mov dword [esi + 0x44], 0
mov byte [esi + 0x14], 1
jmp 0x4a79a4
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a79d1
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x14]
jne 0x4a79ca
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4a79b4
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
call fcn.0049e430
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x44], 0
test edx, edx
jne 0x4a7a32
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4a7a2e
mov eax, dword [edi + ebx*4 + 0x10]
test eax, eax
je 0x4a7a2e
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
mov edx, dword [esp + 0x10]
test byte [edi + ebx*4 + 8], 1
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
je 0x4a4be5
mov eax, dword [esp + 0x18]
inc dword [eax + 0x74]
jmp 0x4a4be5
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 0x74]
add dword [ebx + 0x40], eax
mov dword [ebx + 0x3c], eax
mov dword [edx + 0x74], 0
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
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 0x4a7b04
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.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
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 0x4a7afe
mov ecx, dword [esi]
lea edx, [esp + 0x124]
call fcn.0049bd90
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov byte [esi + 0x15], 0
jmp 0x4a7b42
mov edi, dword [esi]
test edi, edi
je 0x4a7b49
cmp byte [edi + 0x43], 2
jb 0x4a7b25
mov ecx, edi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
cmp byte [edi + 0x43], 1
jne 0x4a7b35
cmp dword [edi + 0x50], 0
jne 0x4a7b35
xor eax, eax
jmp 0x4a7b3a
mov eax, 1
test eax, eax
je 0x4a7b49
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 0x4a7bea
cmp byte [edx + 0x43], 1
je 0x4a7b6e
xor ecx, ecx
xor esi, esi
jmp 0x4a7bc2
cmp word [edx + 0x3e], 0
jne 0x4a7bbc
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.00499ce0
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 + 0x14]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ecx
mov eax, dword [ebx + 0x48]
cdq
cmp esi, edx
jg 0x4a9d78
jl 0x4a7be4
cmp ecx, eax
ja 0x4a9d78
mov dword [esp + 0x40], ecx
jmp 0x4a7c4c
cmp word [edx + 0x3e], 0
jne 0x4a7c38
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.00499ce0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx + 0x30]
mov dword [esp + 0x40], ecx
cmp ecx, dword [ebx + 0x48]
ja 0x4a9d78
mov ebx, dword [esp + 0x1c]
mov edx, ecx
push 0
mov ecx, ebx
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a9f39
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 0x4a7cb4
mov ecx, dword [esp + 0x3c]
xor edx, edx
push 0
push edi
push dword [esp + 0x48]
call fcn.0049b0a0
mov edx, eax
mov byte [ebx + 0x1f], 1
add esp, 0xc
mov dword [esp + 0x10], edx
mov esi, ebx
jmp 0x4a4be1
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov al, byte [esi + 0x43]
test al, al
jne 0x4a7cdf
mov ebx, dword [esp + 0x1c]
mov edx, 4
mov dword [esp + 0x10], 4
mov esi, ebx
mov byte [ebx + 0x1f], 1
jmp 0x4a4be1
cmp al, 2
jb 0x4a7cf4
mov ecx, esi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a7d0a
push 0
push edi
push ebx
xor edx, edx
mov ecx, esi
call fcn.0049b0a0
add esp, 0xc
mov dword [esp + 0x10], eax
mov edx, eax
mov ebx, dword [esp + 0x1c]
mov esi, ebx
mov byte [ebx + 0x1f], 1
jmp 0x4a4be1
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 0x4a3e9d
cmp byte [esi + 0x15], 0
je 0x4a7d48
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a7e9e
cmp dword [esi + 0x38], 0
je 0x4a7dd5
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 edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x4a7daa
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0xf0]
jb 0x4a7daa
cmp ecx, dword [edx + 0xf4]
jae 0x4a7daa
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a7db3
push ecx
call fcn.00490120
add esp, 4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
jmp 0x4a7ea6
mov edi, dword [esi]
test edi, edi
je 0x4a7e15
cmp byte [edi + 0x43], 2
jb 0x4a7dfa
mov ecx, edi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov edx, dword [esp + 0x38]
cmp byte [edi + 0x43], 1
jne 0x4a7e06
cmp dword [edi + 0x50], 0
je 0x4a7e15
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 0x4a7e2f
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x4a7e9e
mov edx, dword [edx]
mov dword [esp + 0xe8], edx
cmp byte [edx + 0x43], 1
je 0x4a7e44
xor eax, eax
xor ecx, ecx
jmp 0x4a7e98
cmp word [edx + 0x3e], 0
jne 0x4a7e92
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.00499ce0
mov edx, dword [esp + 0xec]
add esp, 4
mov byte [edx + 0x42], 1
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x1c]
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
jmp 0x4a4be1
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 0x4a3e9d
push dword [esi + 0x44]
call fcn.00490120
mov dword [esi + 0x44], 0
add esp, 4
mov byte [esi + 0x43], 0
mov esi, dword [esp + 0x1c]
jmp case.0x4a3ab1.10
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 0x4a7f31
mov dword [esp + 0x40], 1
jmp 0x4a7f84
cmp byte [esi + 0x43], 1
jne 0x4a7f47
cmp byte [esi + 0x41], 0
je 0x4a7f47
mov dword [esp + 0x10], 0
jmp 0x4a7f84
mov ecx, esi
call fcn.0049b580
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a7f80
cmp byte [esi + 0x43], al
jne 0x4a7f65
mov dword [esp + 0x40], 1
jmp 0x4a7f80
mov ecx, esi
mov dword [esp + 0x40], 0
call fcn.0049b7b0
test eax, eax
mov dword [esp + 0x10], eax
sete al
mov byte [esi + 0x41], al
mov ecx, dword [esp + 0x38]
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 0x4a3e9d
cmp dword [esp + 0x40], 0
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
je 0x4a3c34
lea edx, [eax - 1]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
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 0x4a806d
mov ecx, esi
call fcn.0049b580
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a802a
cmp byte [esi + 0x43], al
jne 0x4a8017
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], eax
jmp 0x4a802a
mov ecx, esi
mov dword [esp + 0x40], 0
call fcn.0049b6d0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
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]
mov al, byte [esp + 0x40]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x40], 0
jmp 0x4a4bd2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x40], 1
mov al, byte [esp + 0x40]
mov byte [ecx + 0x14], al
cmp dword [esp + 0x40], 0
jmp 0x4a4bd2
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xd8], 0
jne 0x4a9eed
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.0x4a3ab1.10
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
test ecx, ecx
jne 0x4a80c4
mov byte [eax + 0x14], 1
jmp case.0x4a3ab1.10
mov dword [esp + 0x40], 1
lea edx, [esp + 0x40]
cmp byte [edi + ebx*4], 0x42
jne 0x4a80dd
call fcn.0049bd90
jmp 0x4a80e2
call fcn.0049bf00
mov ecx, dword [esp + 0x38]
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 0x4a8122
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 0x4a8122
mov ecx, dword [esp + 0x18]
movzx eax, al
inc dword [ecx + eax*4 + 0xb4]
mov eax, dword [esp + 0x38]
mov byte [eax + 0x11], 0
jmp case.0x4a3ab1.10
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.0x4a3ab1.10
mov edx, dword [esp + 0xe4]
mov esi, 0x4000
test word [edx + 0x1c], si
mov esi, dword [esp + 0x1c]
je 0x4a8185
mov ecx, edx
call fcn.0049ef40
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a4be1
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe4]
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 0x4a81a6
mov eax, dword [eax + 0x40]
jmp 0x4a81a8
xor eax, eax
push eax
push dword [edi + ebx*4 + 0xc]
mov eax, edx
push 0
push 0
cdq
push 0x5222e8
push edx
push eax
mov edx, esi
call fcn.0049e190
mov esi, dword [esp + 0x38]
add esp, 0x1c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
jmp case.0x4a3ab1.10
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.0x4a3ab1.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 + 0x18]
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.0049b890
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a8258
cmp dword [esp + 0x40], eax
jne 0x4a8258
mov ecx, dword [esp + 0x3c]
call fcn.0049e430
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 0x44], 0
jmp case.0x4a3ab1.10
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 0x4a3e9d
cmp byte [esi + 0x15], 0
je 0x4a82f5
mov ecx, dword [esi]
lea eax, [esp + 0x134]
push eax
push 0
push dword [esi + 0x1c]
xor edx, edx
push dword [esi + 0x18]
call fcn.0049b890
mov edx, eax
add esp, 0x10
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x18]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x134]
test ecx, ecx
mov dword [esi + 8], eax
sete al
mov byte [esi + 0x11], al
test ecx, ecx
jns 0x4a82ef
mov ecx, dword [esi]
lea edx, [esp + 0x134]
call fcn.0049bd90
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov byte [esi + 0x15], 0
jmp 0x4a8333
mov edi, dword [esi]
test edi, edi
je 0x4a833a
cmp byte [edi + 0x43], 2
jb 0x4a8316
mov ecx, edi
call fcn.00499c20
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
cmp byte [edi + 0x43], 1
jne 0x4a8326
cmp dword [edi + 0x50], 0
jne 0x4a8326
xor eax, eax
jmp 0x4a832b
mov eax, 1
test eax, eax
je 0x4a833a
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 0x4a9ae1
mov esi, dword [esp + 0x38]
lea edx, [esp + 0x160]
mov ecx, esi
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call fcn.0049b010
xor eax, eax
xor edx, edx
mov dword [esp + 0x170], eax
mov ecx, esi
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], eax
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
lea eax, [esp + 0x170]
push eax
push 1
push dword [esp + 0x168]
call fcn.0049fc70
mov edx, eax
add esp, 0xc
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9ce7
mov ebx, dword [esp + 0x184]
mov al, byte [ebx]
cmp al, 0x80
jae 0x4a8404
movzx esi, al
mov dword [esp + 0x11c], esi
jmp 0x4a8419
lea edx, [esp + 0x11c]
mov ecx, ebx
call fcn.00492f70
mov esi, dword [esp + 0x11c]
cmp esi, 3
jb 0x4a9ccc
mov edi, dword [esp + 0x188]
cmp esi, edi
jg 0x4a9ccc
lea ecx, [ebx - 1]
add ecx, esi
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a8448
movzx edx, al
mov dword [esp + 0x120], edx
jmp 0x4a845b
lea edx, [esp + 0x120]
call fcn.00492f70
mov edx, dword [esp + 0x120]
lea eax, [edx - 1]
cmp eax, 8
ja 0x4a9ccc
cmp edx, 7
je 0x4a9ccc
cmp edx, 0xc
jb 0x4a847c
lea ecx, [edx - 0xc]
shr ecx, 1
jmp 0x4a8483
movzx ecx, byte [edx + 0x51f2e8]
lea eax, [ecx + esi]
cmp edi, eax
jb 0x4a9ccc
sub edi, ecx
lea eax, [esp + 0x1d0]
push eax
lea ecx, [ebx + edi]
call fcn.004a2370
mov ecx, dword [esp + 0x1d8]
add esp, 4
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x170]
mov dword [esp + 0x40], eax
call fcn.0049f180
mov esi, dword [esp + 0x1c]
mov ecx, 0xbf04
mov dword [esp + 0x10], 0
mov ax, word [esi + 0x1c]
and ax, cx
or ax, 4
xor edx, edx
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x4a4be1
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 0x4a3e9d
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 0x4a8532
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.0049b010
mov edx, dword [esp + 0x140]
mov ecx, edx
mov eax, dword [esp + 0x144]
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x4a8644
jb 0x4a8598
cmp ecx, 0x7ffffffe
ja 0x4a8644
mov ecx, dword [esi]
xor eax, eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], 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
lea eax, [esp + 0x1a0]
push eax
push 1
push edx
xor edx, edx
call fcn.0049fc70
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a8609
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
jmp 0x4a8653
mov edx, dword [esp + 0x1b4]
lea eax, [esp + 0x40]
mov ecx, dword [esp + 0x1b8]
push eax
call fcn.004a2870
add esp, 4
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x1a0]
call fcn.0049f180
mov eax, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x10], 0
jmp 0x4a8653
xor eax, eax
mov edx, 0xb
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], edx
cmp byte [edi + ebx*4], 0x48
jne 0x4a865d
neg eax
jmp 0x4a865e
inc eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x4a4be1
mov ebx, dword [edi + ebx*4 + 8]
dec ebx
mov dword [esp + 0x24], ebx
jmp 0x4a4be1
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x3c], edx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x4a86c4
cmp dword [ecx + 0x50], 0xbdf20da3
jne 0x4a86ae
cmp byte [ecx + 0x70], 2
jae 0x4a86ae
cmp dword [ecx + 0x60], 0
jl 0x4a86ae
inc edx
mov dword [esp + 0x3c], edx
mov eax, dword [ecx + 8]
mov ecx, eax
mov dword [esp + 0x40], ecx
test eax, eax
jne 0x4a8694
cmp edx, 1
jg 0x4a9d48
mov edx, dword [esp + 0x14]
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.0049e8a0
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 dword [esi + 4], edx
jmp case.0x4a3ab1.10
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 + 0x2c]
mov ecx, dword [edi + eax*4 + 8]
mov eax, dword [esp + 0x14]
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 0x4a8761
lea ebx, [ebx]
cmp byte [eax + 0x54], 0
je 0x4a875a
mov byte [eax + 0x43], 0
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a8750
push 0
mov edx, ebx
mov ecx, edi
call fcn.00499ae0
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a878b
push esi
push eax
mov edx, ebx
mov ecx, edi
call fcn.0049e700
add esp, 8
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
cmp dword [edx + ecx*4 + 0xc], 0
je 0x4a3e9d
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
add dword [edi + 0x74], eax
mov ecx, dword [edx + ecx*4 + 0xc]
test ecx, ecx
jle 0x4a3c30
lea esi, [ecx + ecx*4]
cdq
mov ecx, dword [edi + 0x58]
add dword [ecx + esi*8], eax
adc dword [ecx + esi*8 + 4], edx
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
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 + 0x150]
push ecx
setne bl
lea ecx, [esp + 0x158]
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.0049c090
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a883c
mov eax, dword [esp + 0x38]
cdq
mov dword [esi], eax
jmp 0x4a4454
mov esi, dword [esp + 0x150]
or ebx, 8
mov edx, ebx
mov ecx, esi
call fcn.0049a580
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x4a8865
mov esi, dword [ecx + 0x10]
call fcn.00494db0
mov ecx, esi
call fcn.00498d70
mov eax, dword [esp + 0x154]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
cdq
mov dword [esp + 0x10], 0
mov dword [esi], eax
jmp 0x4a4454
mov edx, dword [edi + ebx*4 + 4]
mov dword [esp + 0x38], edx
cmp dword [edi + ebx*4 + 8], 0
jne 0x4a88ac
mov eax, dword [esp + 0x14]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*8 + 0xc]
test byte [eax + 0x4a], 1
je 0x4a8975
mov eax, dword [esp + 0x14]
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 + 0x18]
add eax, 0x68
mov dword [esp + 0x4c], eax
push dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x18]
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.00491900
add esp, 0x14
mov dword [esp + 0x40], eax
test eax, eax
je 0x4a9f3d
push 0
lea eax, [esp + 0x48]
mov byte [ebx + 0x7c], 1
mov edx, dword [esp + 0x44]
mov ecx, ebx
push eax
push fcn.004c4850
mov dword [esp + 0x5c], 0
call fcn.004c1340
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4a8934
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4a8966
cmp ecx, dword [ebx + 0xf0]
jb 0x4a8966
cmp ecx, dword [ebx + 0xf4]
jae 0x4a8966
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
mov byte [ebx + 0x7c], 0
jmp 0x4a8979
push ecx
call fcn.00490120
add esp, 4
mov byte [ebx + 0x7c], 0
jmp 0x4a8979
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edx, 7
je 0x4a9f3d
jmp 0x4a4be5
mov edx, dword [edi + ebx*4 + 0x10]
mov eax, edx
mov ecx, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x14]
shl ecx, 4
add ecx, dword [ebx + 8]
test edx, edx
je 0x4a89b5
cmp byte [edx], 0
je 0x4a89ae
inc eax
cmp byte [eax], 0
jne 0x4a89a8
sub eax, edx
and eax, 0x3fffffff
mov ecx, dword [ecx + 0xc]
push 0
push eax
add ecx, 4
call fcn.00493430
add esp, 8
mov ecx, eax
call fcn.004b5250
or dword [ebx + 0xc], 0x10
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov edx, dword [edi + ebx*4 + 0x10]
mov ecx, dword [edi + ebx*4 + 4]
mov ebx, dword [esp + 0x14]
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 0x4a8a0d
cmp byte [edx], 0
je 0x4a8a06
lea ecx, [ecx]
inc eax
cmp byte [eax], 0
jne 0x4a8a00
sub eax, edx
and eax, 0x3fffffff
push 0
push eax
call fcn.00493430
mov esi, eax
add esp, 8
test esi, esi
je 0x4a8a4f
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 0x14]
cmp ecx, esi
jne 0x4a8a30
mov eax, dword [esi + 0x20]
mov dword [edx + 0x14], eax
jmp 0x4a8a48
test ecx, ecx
je 0x4a8a48
lea edx, [ecx + 0x20]
mov ecx, dword [edx]
cmp ecx, esi
je 0x4a8a43
test ecx, ecx
jne 0x4a8a34
jmp 0x4a8a48
mov eax, dword [esi + 0x20]
mov dword [edx], eax
mov ecx, esi
call fcn.004b4e20
or dword [ebx + 0xc], 0x10
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
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 0x4a8a9c
call fcn.0049f570
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x1c], 0x20
je 0x4a9f39
mov eax, dword [esp + 0x3c]
push dword [eax + 4]
mov ecx, dword [ecx]
push dword [eax]
call fcn.00495db0
add esp, 8
jmp case.0x4a3ab1.10
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xd8], 0
jne 0x4a9eed
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 0x4a8b4b
mov esi, dword [edx]
mov ecx, esi
call fcn.004960d0
mov edx, dword [esi + 8]
test edx, edx
je 0x4a8b43
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 0x4a8b17
mov ecx, esi
call fcn.00495d40
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
call fcn.0049f180
mov dword [ebx], esi
mov eax, 4
mov esi, ebx
mov dword [esi + 4], edi
mov word [esi + 0x1c], ax
mov byte [esi + 0x1e], 1
jmp case.0x4a3ab1.10
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov ecx, edx
call fcn.0049f470
jmp 0x4a4bd4
mov esi, dword [esp + 0x28]
mov edi, dword [edi + ebx*4 + 0x10]
mov dword [esp + 0x38], edi
test byte [esi + 0x1c], 0x20
jne 0x4a8b7e
mov ecx, esi
call fcn.0049f570
test byte [esi + 0x1c], 0x20
je 0x4a9f39
mov edi, dword [esp + 0x38]
test edi, edi
je 0x4a8d09
js 0x4a8b8f
mov eax, edi
and eax, 0xf
jmp 0x4a8b94
mov eax, 0xff
mov ecx, dword [esp + 0x34]
mov esi, dword [esi]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe8], esi
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x158], ebx
mov dword [esp + 0xf0], ecx
cmp al, byte [esi + 0x1b]
je 0x4a8cc8
cmp dword [esi + 8], 0
je 0x4a8cc1
mov ecx, esi
call fcn.004960d0
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 0x4a8ca2
jmp 0x4a8c10
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 0x4a8c88
cmp ebx, 1
jne 0x4a8c4b
mov eax, dword [ecx + 8]
mov dword [esp + 0xec], eax
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
jmp 0x4a8c88
lea edx, [ebx - 1]
lea ecx, [esp + 0xec]
call fcn.00496070
mov esi, dword [esp + 0xec]
mov ecx, eax
test esi, esi
je 0x4a8c88
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.00496070
mov dword [esi + 8], eax
mov ecx, esi
mov dword [edi + 8], ecx
inc ebx
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x4a8c10
mov esi, dword [esp + 0xe8]
mov eax, dword [esp + 0xe0]
mov ebx, dword [esp + 0x158]
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 0x4a8cfb
mov esi, dword [esp + 0xf0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
cmp ecx, esi
jg 0x4a8cf4
jl 0x4a8ce5
cmp edx, ebx
jae 0x4a8cea
mov eax, dword [eax + 8]
jmp 0x4a8cf7
cmp ecx, esi
jl 0x4a8d2b
jg 0x4a8cf4
cmp edx, ebx
jbe 0x4a8d2b
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4a8cd6
mov esi, dword [esp + 0x28]
test edi, edi
mov dword [esp + 0x3c], 0
js 0x4a3e9d
mov eax, dword [esp + 0x34]
mov ecx, dword [esi]
push dword [eax + 4]
push dword [eax]
call fcn.00495db0
mov esi, dword [esp + 0x24]
add esp, 8
jmp case.0x4a3ab1.10
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov edx, dword [edx + eax*4 + 8]
dec edx
mov dword [esp + 0x24], edx
jmp case.0x4a3ab1.10
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], 0
jl case.0x4a3ab1.10
jg 0x4a4bd4
cmp dword [ecx], 0
jbe case.0x4a3ab1.10
jmp 0x4a4bd4
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 4], 0
jg case.0x4a3ab1.10
jl 0x4a4bd4
cmp dword [ecx], 0
jae case.0x4a3ab1.10
jmp 0x4a4bd4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne case.0x4a3ab1.10
jmp 0x4a4bd4
mov dl, byte [edi + ebx*4 + 3]
mov esi, dword [esp + 0x18]
movzx eax, dl
mov dword [esp + 0x38], eax
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 dl, dl
je 0x4a8e37
lea esp, [esp]
mov dword [esi + eax*4], ecx
mov ecx, dword [esp + 0x44]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a8df5
mov byte [ecx + 0x1e], 5
jmp 0x4a8e14
test al, 4
je 0x4a8dff
mov byte [ecx + 0x1e], 1
jmp 0x4a8e14
test al, 8
je 0x4a8e09
mov byte [ecx + 0x1e], 2
jmp 0x4a8e14
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 0x4a8e37
mov esi, dword [esp + 0x88]
jmp 0x4a8de0
mov eax, dword [edi + ebx*4 + 0x10]
mov esi, dword [esp + 0x18]
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 + 0x14]
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 0x4a8ead
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 0x4a8f0f
mov dl, 1
lea ecx, [esp + 0x50]
call fcn.0049fe00
mov ebx, dword [esp + 0x14]
push eax
push 0x5227b8
lea eax, [esi + 0x68]
push ebx
push eax
call fcn.00490560
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x60]
add esp, 0x10
mov dword [esp + 0x10], eax
call fcn.0049f180
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov ebx, dword [esp + 0x14]
lea ecx, [esp + 0x50]
call fcn.0049f180
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
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.0049f050
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a8f73
mov ecx, dword [esp + 0x38]
mov dl, 1
call fcn.0049fe00
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
push eax
push 0x5227b8
lea eax, [edi + 0x68]
push ebx
push eax
call fcn.00490560
add esp, 0x10
jmp 0x4a8f7b
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
test byte [eax + 0x1c], 2
je 0x4a8f9b
mov cl, byte [esp + 0x23]
cmp byte [eax + 0x1f], cl
je 0x4a8f9b
mov dl, cl
mov ecx, eax
call fcn.00491e30
mov eax, dword [esp + 0x38]
movzx edx, word [eax + 0x1c]
test dl, 0x12
je 0x4a3c34
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a8fb5
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a9d7c
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
cmp dword [edi + ebx*4 + 4], 0
mov ebx, dword [esp + 0x14]
jne 0x4a8ff7
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4a3c34
mov byte [eax + 0x6e], 1
mov eax, dword [eax + 8]
test eax, eax
jne 0x4a8fe3
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov byte [edx + 0x6e], 1
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
mov esi, dword [edi + ebx*4 + 0x10]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x10], 0
mov edx, dword [ebx + 0x11c]
test edx, edx
jle 0x4a9036
cmp dword [ebx + 0x118], 0
jne 0x4a9036
mov edx, 6
mov dword [esp + 0x10], edx
jmp 0x4a90a1
test esi, esi
jne 0x4a9042
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x4a90a1
mov edi, dword [esi + 8]
mov eax, dword [edi]
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x4a9099
xor ecx, ecx
test edx, edx
jle 0x4a906c
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x118]
mov edi, edi
cmp dword [eax], esi
je 0x4a9091
inc ecx
add eax, 4
cmp ecx, edx
jl 0x4a9060
push edi
call ebx
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4a9099
mov ebx, dword [esp + 0x14]
mov edx, esi
mov ecx, ebx
call fcn.004d1a10
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x4a90a1
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x4a909d
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x38], 0
je 0x4a6704
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x4a90dd
cmp ecx, dword [ebx + 0xf0]
jb 0x4a90dd
cmp ecx, dword [ebx + 0xf4]
jae 0x4a90dd
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4a90e6
push ecx
call fcn.00490120
add esp, 4
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 8]
mov dword [edi + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [eax + 8], 0
jmp 0x4a4be5
mov esi, dword [esp + 0x14]
lea ebx, [edx + 0x68]
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 8]
mov ecx, dword [edi + edx*4 + 4]
mov edx, dword [edi + edx*4 + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, esi
call fcn.004b4c10
mov edi, eax
add esp, 4
mov ecx, dword [edi + 0x38]
mov esi, dword [ecx]
mov ecx, esi
test esi, esi
je 0x4a914f
cmp byte [esi], 0
je 0x4a9147
inc ecx
cmp byte [ecx], 0
jne 0x4a9141
sub ecx, esi
and ecx, 0x3fffffff
push ecx
mov ecx, dword [esp + 0x18]
mov edx, esi
lea ecx, [ecx + 0x104]
call fcn.004933b0
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x4a9194
push esi
push str.no_such_module:__s
push dword [esp + 0x1c]
call fcn.00491900
mov esi, dword [esp + 0x28]
mov edx, 1
mov dword [ebx], eax
add esp, 0xc
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
jmp 0x4a4be5
mov eax, dword [ecx]
mov edx, edi
push ebx
mov ebx, dword [esp + 0x18]
push dword [eax + 4]
push ecx
mov ecx, ebx
call fcn.004d1570
mov edx, eax
add esp, 0xc
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a91cf
mov edx, dword [edi + 0x30]
mov eax, edx
test eax, eax
je 0x4a91cb
mov edi, edi
cmp dword [eax], ebx
je 0x4a91d8
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4a91c0
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jmp 0x4a4be5
cmp dword [edx], ebx
je 0x4a91e3
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4a91d8
mov ecx, ebx
call fcn.004d1a10
mov esi, dword [esp + 0x1c]
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x4a4be5
mov eax, dword [esp + 0x14]
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 + 0x14]
mov dword [esp + 0x10], 0
push dword [eax + ecx*8]
mov ecx, ebx
call fcn.004b4c10
mov edi, eax
add esp, 4
test edi, edi
je 0x4a92c6
cmp dword [edi + 0x30], 0
je 0x4a92c6
mov edx, edi
mov ecx, ebx
call fcn.004d0e10
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 0x4a92c6
mov dword [esi + 8], eax
mov dword [edi + 0x30], eax
add dword [esi + 0xc], 0xffffffff
mov edi, dword [esi]
jne 0x4a92c6
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4a9280
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
test edi, edi
je 0x4a92bd
cmp esi, dword [edi + 0xf0]
jb 0x4a92bd
cmp esi, dword [edi + 0xf4]
jae 0x4a92bd
mov eax, dword [edi + 0xec]
mov edx, dword [esp + 0x10]
mov dword [esi], eax
mov eax, dword [esp + 0x18]
dec dword [edi + 0xe4]
mov dword [edi + 0xec], esi
mov esi, dword [esp + 0x1c]
mov byte [eax + 0x70], 0
jmp 0x4a4be5
push esi
call fcn.00490120
add esp, 4
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [eax + 0x70], 0
jmp 0x4a4be5
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 + 0x18]
mov ecx, dword [eax + 0x68]
test ecx, ecx
je 0x4a9343
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0xf0]
jb 0x4a9343
cmp ecx, dword [edx + 0xf4]
jae 0x4a9343
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a934c
push ecx
call fcn.00490120
add esp, 4
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov edx, dword [esp + 0x10]
mov dword [ecx + 8], 0
test edx, edx
jne 0x4a4be1
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 + 0x18]
lea edi, [ebx + 0x34]
mov dword [esp + 0xe0], 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 + 0x30], eax
mov eax, dword [edi]
mov ebx, dword [eax + edx*4]
test ebx, ebx
je 0x4a9407
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4a93eb
call fcn.0049a8c0
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x4a93d9
mov eax, dword [ebx + 0x3c]
mov byte [edx + 0x70], 1
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov eax, dword [esp + 0x1c]
add esp, 4
mov byte [eax + 0x70], 0
mov eax, dword [edi]
mov ebx, dword [esp + 0xe0]
mov edi, dword [esp + 0x2c]
mov dword [eax + ebx*4], esi
jmp 0x4a940e
mov ecx, dword [ebx]
mov dword [esp + 0x2c], edi
test ecx, ecx
je 0x4a93b6
call fcn.0049af60
mov edx, dword [esp + 0x18]
lea eax, [edx + 0x34]
mov dword [esp + 0x2c], eax
jmp 0x4a93ba
mov ebx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x30]
mov edx, 0x58
push 0
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a944e
mov ecx, dword [esp + 0x30]
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.004e14f0
add esp, 0xc
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x2c], 0
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], esi
test esi, esi
je 0x4a9481
mov eax, dword [esp + 0x3c]
inc dword [esp + 0x24]
mov edx, dword [esp + 0x18]
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
jmp 0x4a3956
mov byte [ebx + 0x1e], 1
mov eax, dword [esp + 0x44]
push dword [esp + 0x3c]
mov eax, dword [eax + 0x1c]
call eax
mov esi, dword [esp + 0x20]
add esp, 4
inc dword [esp + 0x24]
mov edx, dword [esp + 0x18]
jmp 0x4a3956
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 + 0x18]
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 + 0x18]
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 0x4a9580
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 0x4a9538
mov byte [ecx + 0x1e], 5
jmp 0x4a9557
test al, 4
je 0x4a9542
mov byte [ecx + 0x1e], 1
jmp 0x4a9557
test al, 8
je 0x4a954c
mov byte [ecx + 0x1e], 2
jmp 0x4a9557
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 0x4a9572
mov esi, dword [esp + 0x48]
jmp 0x4a9513
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
jmp 0x4a9587
mov ecx, dword [esp + 0xf0]
mov esi, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x38]
mov byte [esi + 0x70], 1
mov esi, dword [esp + 0x34]
push dword [eax + esi*4 + 0x10]
mov eax, dword [ebx + 0x20]
push ecx
push edi
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x14
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x68]
mov byte [edi + 0x70], 0
test ecx, ecx
je 0x4a95e4
cmp ecx, dword [ebx + 0xf0]
jb 0x4a95e4
cmp ecx, dword [ebx + 0xf4]
jae 0x4a95e4
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4a95ed
push ecx
call fcn.00490120
add esp, 4
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4a961b
mov eax, dword [esp + 0x40]
push dword [esp + 0x4c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x58], eax
jmp 0x4a961f
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4a9630
mov eax, dword [esp + 0x30]
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 edx, dword [esp + 0x10]
mov byte [eax + 0x14], 0
jmp 0x4a4be5
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 + 0x18]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x40], ecx
cmp byte [edx + 0x14], 0
je 0x4a967b
call fcn.0049f470
jmp case.0x4a3ab1.10
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.004e14f0
mov ebx, dword [esp + 0x4c]
lea ecx, [esp + 0x5c]
add esp, 0xc
call fcn.0049f180
mov edx, dword [esp + 0x30]
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 + 0x2c]
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 + 0x24]
add esp, 0xc
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x4a973d
cmp ecx, dword [ebx + 0xf0]
jb 0x4a973d
cmp ecx, dword [ebx + 0xf4]
jae 0x4a973d
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4a9746
push ecx
call fcn.00490120
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 0x4a9763
mov dword [esp + 0x10], eax
test byte [esp + 0x6c], 2
je 0x4a977f
mov al, byte [esp + 0x23]
cmp byte [esp + 0x6f], al
je 0x4a977f
mov dl, al
lea ecx, [esp + 0x50]
call fcn.00491e30
mov edi, dword [esp + 0x40]
mov ecx, edi
call fcn.0049f180
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 0x4a3c30
mov ecx, dword [eax + 0x18]
test edx, 0x4000
je 0x4a97cd
add ecx, dword [eax]
mov eax, dword [eax + 0x10]
cmp ecx, dword [eax + 0x48]
jg 0x4a9d78
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
jmp 0x4a4be5
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.0x4a3ab1.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 + 0x18]
mov ecx, dword [eax + 0x68]
mov byte [eax + 0x70], 0
test ecx, ecx
je 0x4a9861
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0xf0]
jb 0x4a9861
cmp ecx, dword [edx + 0xf4]
jae 0x4a9861
mov eax, dword [edx + 0xec]
mov dword [ecx], eax
dec dword [edx + 0xe4]
mov dword [edx + 0xec], ecx
jmp 0x4a986a
push ecx
call fcn.00490120
add esp, 4
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov dword [edx + 0x68], eax
mov dword [ecx + 8], 0
jne 0x4a989f
mov eax, dword [esp + 0x44]
push dword [eax + 0x38]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x4a98a3
mov eax, dword [esp + 0x40]
test eax, eax
jne case.0x4a3ab1.10
jmp 0x4a4bd4
mov eax, dword [edi + ebx*4 + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov eax, dword [edi + ebx*4 + 4]
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 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 ecx, dword [edi + 0x68]
add esp, 8
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x4a9913
cmp ecx, dword [ebx + 0xf0]
jb 0x4a9913
cmp ecx, dword [ebx + 0xf4]
jae 0x4a9913
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4a991c
push ecx
call fcn.00490120
add esp, 4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
jmp 0x4a4be5
mov eax, dword [edi + ebx*4 + 0x10]
mov ecx, dword [esp + 0x30]
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 0x4a3e9d
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x24]
mov eax, dword [esp + 0x2c]
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 + 0x18]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x54], ecx
test edx, edx
jle 0x4a99f4
lea ecx, [ecx]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x4a999e
mov byte [ecx + 0x1e], 5
jmp 0x4a99bd
test al, 4
je 0x4a99a8
mov byte [ecx + 0x1e], 1
jmp 0x4a99bd
test al, 8
je 0x4a99b2
mov byte [ecx + 0x1e], 2
jmp 0x4a99bd
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 0x4a9990
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 edi, dword [esp + 0x28]
add esp, 0x10
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x4a9a3d
cmp ecx, dword [ebx + 0xf0]
jb 0x4a9a3d
cmp ecx, dword [ebx + 0xf4]
jae 0x4a9a3d
mov eax, dword [ebx + 0xec]
mov dword [ecx], eax
dec dword [ebx + 0xe4]
mov dword [ebx + 0xec], ecx
jmp 0x4a9a46
push ecx
call fcn.00490120
add esp, 4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [edi + 0x68], eax
mov dword [ecx + 8], 0
test edx, edx
jne 0x4a9a80
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
cmp dword [edx + eax*4 + 4], 0
mov edx, dword [esp + 0x10]
je 0x4a9a80
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], ecx
inc dword [edi + 0x74]
mov esi, dword [esp + 0x1c]
jmp 0x4a4be5
mov ecx, dword [edi + ebx*4 + 4]
lea edx, [esp + 0x3c]
mov ebx, dword [esp + 0x14]
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.00497dd0
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a4be5
inc dword [esp + 0x24]
mov eax, 4
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x3c]
cdq
mov dword [esi + 4], edx
mov edx, dword [esp + 0x18]
mov dword [esi], eax
jmp 0x4a3956
mov esi, dword [esp + 0x1c]
xor edx, edx
jmp 0x4a4be1
mov esi, dword [esp + 0x1c]
mov ebx, edi
jmp 0x4a4be5
mov edi, dword [esp + 0x30]
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 0x4a9b2e
push eax
push 0x5227b8
push dword [esp + 0x1c]
lea eax, [edx + 0x68]
push eax
call fcn.00490560
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, edx
call fcn.004a1a70
cmp eax, 5
mov eax, dword [esp + 0x18]
je 0x4a9c89
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.0049f180
mov ebx, edi
jmp 0x4a9f3d
mov edx, 0x14
mov dword [esp + 0x10], edx
jmp 0x4a9ce7
mov ecx, edi
mov dword [edi + 0x64], 0xb
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x18]
push str.cannot_open_savepoint___SQL_statements_in_progress
push eax
lea eax, [ebx + 0x68]
push eax
call fcn.00490560
add esp, 0xc
mov dword [ebx + 0x64], 5
mov ecx, ebx
call fcn.004a1a70
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 + 0xe0]
mov ebx, dword [esp + 0x1c]
push str.no_such_savepoint:__s
push dword [esp + 0x1c]
lea eax, [ebx + 0x68]
push eax
call fcn.00490560
add esp, 0x10
mov dword [ebx + 0x64], 1
mov ecx, ebx
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x4a9c44
mov ecx, ebx
call fcn.004dca10
mov esi, dword [esp + 0x18]
mov byte [ebx + 0x1c], 1
mov ecx, ebx
call fcn.004dc570
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 + 0x18]
mov ecx, esi
mov byte [ebx + 0x1c], al
call fcn.004a1a70
cmp eax, 5
jne 0x4a9c29
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 + 0x18]
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 edx, 0xb
mov dword [esp + 0x10], edx
jmp 0x4a9ceb
mov ecx, edx
mov dword [edx + 0x64], 4
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 0xd
mov dword [esp + 0x10], edx
jmp 0x4a9ce7
lea ecx, [esp + 0x170]
call fcn.0049f180
mov edx, 0xb
mov dword [esp + 0x10], edx
jmp 0x4a9ce7
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp byte [ebx + 0x1e], 0
je 0x4a9d04
mov dword [esp + 0x10], 7
mov eax, 7
jmp 0x4a9d1c
cmp edx, 0xc0a
je 0x4a9ec1
movzx eax, dl
mov dword [esp + 0x10], edx
cmp eax, 0x1b
jae 0x4a9d27
mov eax, dword [eax*4 + 0x51f300]
test eax, eax
jne 0x4a9d2c
mov eax, str.unknown_error
push eax
push 0x5227b8
lea eax, [esi + 0x68]
push ebx
push eax
call fcn.00490560
mov edx, dword [esp + 0x20]
add esp, 0x10
jmp 0x4a9ec1
mov eax, dword [esp + 0x18]
mov ecx, eax
mov byte [eax + 0x38], 2
mov dword [eax + 0x64], 6
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
jmp 0x4a9d78
mov ebx, dword [esp + 0x14]
jmp 0x4a9d7c
mov ebx, edx
mov edi, dword [esp + 0x18]
push str.string_or_blob_too_big
lea eax, [edi + 0x68]
push ebx
push eax
call fcn.00490560
add esp, 0xc
mov dword [edi + 0x64], 0x12
mov ecx, edi
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x18]
mov edx, 1
mov ecx, esi
call fcn.004a1950
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jne 0x4a9eb7
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 0x4a9e95
mov eax, dword [esp + 0x38]
lea ecx, [edx + edx*4]
lea esi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
test eax, 0x200
jne 0x4a9e45
test al, 2
je 0x4a9e45
mov edx, dword [esi + 0x18]
mov ecx, esi
push 1
add edx, 2
call fcn.0049ece0
add esp, 4
test eax, eax
jne 0x4a9e41
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 0x4a9e5c
mov byte [edx + ecx*8 + 0x1e], 5
jmp 0x4a9e7e
test al, 4
je 0x4a9e67
mov byte [edx + ecx*8 + 0x1e], 1
jmp 0x4a9e7e
test al, 8
je 0x4a9e72
mov byte [edx + ecx*8 + 0x1e], 2
jmp 0x4a9e7e
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 0x4a9df4
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp byte [ebx + 0x1e], 0
jne 0x4a9f3d
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 ebx, dword [esp + 0x14]
jmp 0x4a9ec5
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, esi
mov dword [esi + 0x64], edx
call fcn.004a1a70
cmp dword [esp + 0x10], 0xc0a
jne 0x4a9f69
mov byte [ebx + 0x1e], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, eax
mov eax, dword [str.interrupted]
mov dword [edx + 0x64], 9
test eax, eax
jne 0x4a9f04
mov eax, str.unknown_error
push eax
push 0x5227b8
lea eax, [edx + 0x68]
push ebx
push eax
call fcn.00490560
add esp, 0x10
mov eax, dword [esp + 0x18]
mov ecx, eax
mov dword [eax + 0x64], 9
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, edx
jmp 0x4a9f3d
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push str.out_of_memory
lea eax, [edx + 0x68]
mov byte [ebx + 0x1e], 1
push ebx
push eax
call fcn.00490560
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, eax
mov dword [eax + 0x64], 7
call fcn.004a1a70
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret