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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x134
mov eax, dword [0x581094]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [esi]
mov ecx, dword [edi + 8]
mov edx, dword [ecx + 0xc]
mov cl, byte [edx + 0x39]
xor eax, eax
lea ebx, [esi + 0x88]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
mov byte [esp + 0x60], cl
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x7c], ebx
call fcn.0047aba0
cmp dword [esi + 0x64], 7
je 0x4b3206
xor eax, eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0xd0]
mov dword [edi + 0x194], eax
test edx, edx
jne 0x4b7f9e
mov eax, dword [esi + 0x60]
mov dword [esp + 0x50], eax
cmp byte [edi + 0x1e], 0
jne 0x4b3206
mov eax, dword [esp + 0x50]
mov edx, dword [esi + 0x14]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*4]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0xf8]
mov dword [esp + 0x58], edi
test eax, eax
je 0x4b2cc5
mov edx, dword [ecx + 0x100]
cmp edx, dword [esp + 0x6c]
jne 0x4b2cc1
mov ecx, dword [ecx + 0xfc]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x4b7e74
mov dword [esp + 0x6c], eax
inc dword [esp + 0x6c]
movzx edx, byte [edi]
mov cl, byte [edx + 0x54adb8]
test cl, 2
je 0x4b2d1e
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x4c]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [esp + 0x54], esi
call fcn.0047bf40
mov eax, 1
mov word [esi + 0x1c], ax
mov dword [esi + 0x18], 0
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
movzx eax, byte [edi]
mov ecx, dword [esp + 0x4c]
dec eax
cmp eax, 0x90
ja case.0x4b2d17.12
jmp dword [eax*4 + 0x4b7fd8]
test cl, 4
je 0x4b2d71
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x4c]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [esp + 0x4c], edx
test cl, 8
je 0x4b2d59
mov edx, dword [edi + 8]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [esp + 0x5c], edx
test cl, 0x20
je 0x4b2d00
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esp + 0x54], edx
jmp 0x4b2d00
mov ebx, dword [esp + 0x54]
test cl, 0x10
je 0x4b2d04
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esp + 0x64], edx
jmp 0x4b2d04
test cl, 8
je 0x4b2d8b
mov eax, dword [edi + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x5c], edx
jmp 0x4b2d00
mov ebx, dword [esp + 0x54]
test cl, 0x10
je 0x4b2d04
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x64], edx
jmp 0x4b2d04
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xd0]
test ecx, ecx
jne 0x4b7f9e
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x50]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [edi + 8]
dec eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
jmp case.0x4b2d17.12
mov ecx, dword [ecx]
mov dword [esp + 0x50], ecx
jmp case.0x4b2d17.12
mov eax, dword [ecx]
mov edx, 4
mov word [ecx + 0x1c], dx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x50]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x50], ecx
jmp case.0x4b2d17.12
mov edx, dword [esp + 0x64]
test byte [edx + 0x1c], 1
je case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x50]
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], ecx
mov dl, byte [edi + 8]
mov byte [esi + 0x38], dl
mov edi, dword [edi + 0x10]
test edi, edi
je 0x4b2e78
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
push edi
push 0x54dc64
add esi, 0x68
call fcn.0048fb40
mov esi, dword [esp + 0x48]
add esp, 8
push esi
call fcn.004b0a60
mov edi, 5
add esp, 4
cmp eax, edi
je 0x4b7eb3
mov edi, dword [esi + 0x64]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x4b392e
mov eax, 4
mov word [ebx + 0x1c], ax
mov eax, dword [edi + 4]
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x4b2d17.12
mov ecx, 4
mov word [ebx + 0x1c], cx
mov edi, dword [edi + 0x10]
mov edx, dword [edi]
mov dword [ebx], edx
mov eax, dword [edi + 4]
mov dword [ebx + 4], eax
jmp case.0x4b2d17.12
mov ecx, 8
mov word [ebx + 0x1c], cx
mov edx, dword [edi + 0x10]
fld qword [edx]
fstp qword [ebx + 8]
jmp case.0x4b2d17.12
mov ecx, dword [edi + 0x10]
mov byte [edi], 0x1c
mov dword [esp + 0x68], ecx
call fcn.00477560
cmp byte [esp + 0x60], 1
mov dword [edi + 4], eax
je 0x4b3028
test ecx, ecx
jne 0x4b2f37
test byte [ebx + 0x1c], 0x20
je 0x4b2f1a
mov edi, dword [ebx]
call fcn.00479ad0
mov edi, dword [esp + 0x58]
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf01
and ax, cx
or ax, 1
mov word [ebx + 0x1c], ax
mov byte [ebx + 0x1e], 5
jmp 0x4b2fca
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4b2f47
mov edx, dword [eax + 0x48]
mov dword [esp + 0x58], edx
jmp 0x4b2f4f
mov dword [esp + 0x58], 0x3b9aca00
mov eax, dword [esp + 0x58]
xor esi, esi
test eax, eax
jl 0x4b2f6b
mov ecx, dword [esp + 0x68]
lea ecx, [ecx]
cmp byte [esi + ecx], 0
je 0x4b2f6b
inc esi
cmp esi, eax
jle 0x4b2f60
xor eax, eax
mov dword [esp + 0x44], 0x202
push ebx
cmp eax, fcn.00477390
jne 0x4b2f8e
call fcn.0047bfa0
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x24], eax
jmp 0x4b2fa2
call fcn.0047bfa0
mov ecx, dword [esp + 0x6c]
mov dword [ebx + 0x14], ecx
mov dword [esp + 0x48], 0xa02
mov dx, word [esp + 0x48]
add esp, 4
cmp esi, dword [esp + 0x58]
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x18], esi
mov word [ebx + 0x1c], dx
mov byte [ebx + 0x1f], 1
mov byte [ebx + 0x1e], 3
jg 0x4b38e5
movzx ecx, byte [esp + 0x60]
mov eax, ebx
mov dword [esp + 0x44], 0
call fcn.00491230
test eax, eax
jne 0x4b3206
mov dword [ebx + 0x24], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xfbff
and ax, cx
mov edx, 0x800
or ax, dx
mov word [ebx + 0x1c], ax
cmp byte [edi + 1], 0xff
jne 0x4b3018
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x48]
push eax
push ecx
call fcn.00477390
add esp, 8
mov byte [edi + 1], 0xff
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x10], edx
mov eax, dword [ebx + 0x18]
mov dword [edi + 4], eax
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x48]
cmp ecx, dword [edx + 0x48]
jg 0x4b38e5
mov esi, dword [esp + 0x40]
mov eax, 0xa02
mov word [ebx + 0x1c], ax
mov ecx, dword [edi + 0x10]
mov al, byte [esp + 0x60]
mov dword [ebx + 0x14], ecx
mov edx, dword [edi + 4]
mov dword [ebx + 0x18], edx
mov byte [ebx + 0x1f], al
jmp case.0x4b2d17.12
mov ecx, dword [edi + 0x10]
push 0
push ecx
mov ecx, dword [edi + 4]
xor eax, eax
mov edx, ebx
call fcn.004914e0
mov dl, byte [esp + 0x68]
add esp, 8
mov byte [ebx + 0x1f], dl
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
dec eax
mov dword [esp + 0x90], eax
mov esi, dword [edi + 8]
mov dword [esp + 0x94], esi
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x4b3130
mov edi, dword [esp + 0x40]
jmp 0x4b30be
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov edx, dword [edi + 0x3c]
dec ecx
mov dword [esp + 0x98], ecx
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*8]
inc eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x90], eax
call fcn.0047c190
test eax, eax
jne 0x4b38e5
mov ecx, dword [edi + 0x4c]
lea eax, [esi + esi*4]
lea ebx, [ecx + eax*8]
inc esi
mov dword [esp + 0x94], esi
mov esi, ebx
mov dword [esp + 0x54], ebx
call fcn.0047bf40
mov edx, 1
mov word [ebx + 0x1c], dx
mov eax, dword [esp + 0x9c]
push 0x800
push eax
call fcn.0047c1c0
mov ecx, dword [esp + 0xa0]
add esp, 8
test ecx, ecx
jg 0x4b30b0
dec ecx
mov dword [esp + 0x98], ecx
jmp 0x4b7e58
mov eax, dword [edi + 0xc]
mov esi, dword [esi + 0x4c]
mov dword [esp + 0x94], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x98], ecx
mov edi, dword [edi + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [esi + ecx*8]
lea edx, [edi + edi*4]
lea esi, [esi + edx*8]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], esi
test eax, eax
je 0x4b31b9
dec eax
mov dword [esp + 0x94], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x90], eax
mov eax, esi
mov dword [esi + 0x24], 0
call fcn.0047c210
mov ecx, dword [esp + 0x90]
mov dword [ebx + 0x24], ecx
mov eax, dword [esp + 0x94]
add ebx, 0x28
add esi, 0x28
test eax, eax
jne 0x4b3176
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], ebx
dec eax
mov dword [esp + 0x94], eax
jmp 0x4b7e58
mov edi, dword [edi + 8]
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x4c]
lea edx, [edi + edi*4]
lea ebx, [eax + edx*8]
push 0x1000
push ecx
mov dword [esp + 0x5c], ebx
call fcn.0047c1c0
mov edx, 0x1000
add esp, 8
test word [ebx + 0x1c], dx
je case.0x4b2d17.12
mov eax, ebx
call fcn.0048a6b0
test eax, eax
je case.0x4b2d17.12
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
push 0x549dbc
add esi, 0x68
mov byte [eax + 0x1e], 1
call fcn.0048fb40
mov dword [esp + 0x48], 7
jmp 0x4b3902
mov edi, dword [edi + 8]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x4c]
lea eax, [edi + edi*4]
lea ebx, [ecx + eax*8]
push 0x1000
push edx
mov dword [esp + 0x5c], ebx
call fcn.0047c1c0
add esp, 8
jmp case.0x4b2d17.12
push 1
push esi
call fcn.00491a30
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne case.0x4b2d17.12
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
add eax, 2
or eax, 1
mov dword [esi + 0x50], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esi + 0x2c], eax
mov dword [esp + 0x90], eax
xor eax, eax
mov dword [esp + 0x94], eax
cmp dword [edi + 8], eax
jle 0x4b32d9
mov ecx, dword [esp + 0x90]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.00484270
mov eax, dword [esp + 0x94]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x90]
lea ecx, [eax + edx*8]
call fcn.0047cfa0
mov eax, dword [esp + 0x94]
inc eax
mov dword [esp + 0x94], eax
cmp eax, dword [edi + 8]
jl 0x4b329a
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 0x1e], 0
jne 0x4b3206
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x40]
inc edx
mov dword [eax + 0x60], edx
mov edi, 0x64
jmp 0x4b392e
movzx eax, word [ecx + 0x1c]
mov ecx, dword [esp + 0x5c]
mov dl, byte [ecx + 0x1c]
or dl, al
test dl, 1
jne 0x4b7e51
test eax, 0x4000
je 0x4b332b
mov eax, dword [esp + 0x4c]
call fcn.00484210
test eax, eax
jne 0x4b3206
mov eax, dword [esp + 0x5c]
mov ecx, 0x4000
test word [eax + 0x1c], cx
je 0x4b3347
call fcn.00484210
test eax, eax
jne 0x4b3206
mov edx, dword [esp + 0x4c]
test byte [edx + 0x1c], 0x12
jne 0x4b3365
movzx esi, byte [esp + 0x60]
mov eax, edx
call fcn.00491250
test eax, eax
jne 0x4b3206
mov ecx, dword [esp + 0x5c]
test byte [ecx + 0x1c], 0x12
jne 0x4b3387
movzx esi, byte [esp + 0x60]
mov eax, ecx
call fcn.00491250
test eax, eax
jne 0x4b3206
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x18]
add eax, dword [ecx + 0x18]
mov ebx, dword [esp + 0x54]
cdq
mov ecx, edx
mov edx, dword [esp + 0x48]
mov esi, eax
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ecx
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x4b38e5
jl 0x4b33c2
cmp esi, eax
ja 0x4b38e5
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf02
and ax, cx
or ax, 2
xor edx, edx
cmp ebx, dword [esp + 0x5c]
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x90]
sete dl
add eax, 2
push edx
call fcn.004840e0
add esp, 4
test eax, eax
jne 0x4b3206
mov esi, dword [esp + 0x5c]
cmp ebx, esi
je 0x4b3416
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov edx, dword [ebx + 0x14]
push eax
push ecx
push edx
call fcn.00503f50
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x14]
add eax, dword [esi + 0x18]
push ecx
push edx
push eax
call fcn.00503f50
mov edx, dword [esp + 0x9c]
mov ecx, dword [ebx + 0x14]
mov byte [edx + ecx], 0
mov ecx, dword [esp + 0x9c]
mov eax, dword [ebx + 0x14]
mov byte [eax + ecx + 1], 0
mov cl, byte [esp + 0x6c]
mov edx, 0x200
add esp, 0xc
or word [ebx + 0x1c], dx
mov eax, dword [esp + 0x90]
mov dword [ebx + 0x18], eax
mov byte [ebx + 0x1f], cl
jmp 0x4b7e58
mov edi, dword [esp + 0x4c]
call fcn.00491ea0
mov edi, dword [esp + 0x5c]
call fcn.00491ea0
mov esi, dword [esp + 0x4c]
movzx edx, word [esi + 0x1c]
movzx eax, word [edi + 0x1c]
or edx, eax
mov dword [esp + 0x90], edx
test dl, 1
jne 0x4b36fa
mov cl, byte [esi + 0x1c]
and cl, byte [edi + 0x1c]
test cl, 4
je 0x4b35ba
mov ecx, dword [esi]
mov dword [esp + 0x98], ecx
mov edx, dword [esi + 4]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x9c], edx
mov eax, dword [edi]
mov dword [esp + 0xa0], eax
mov edi, dword [edi + 4]
mov dword [esp + 0xa4], edi
movzx esi, byte [esi]
add esi, 0xffffffac
cmp esi, 3
ja case.default.0x4b34e1
jmp dword [esi*4 + 0x4b821c]
add eax, ecx
adc edi, edx
mov dword [esp + 0xa4], edi
jmp 0x4b358a
sub eax, ecx
sbb edi, edx
mov dword [esp + 0xa4], edi
jmp 0x4b358a
push edx
push ecx
push edi
push eax
call fcn.005048c0
jmp 0x4b3583
mov esi, ecx
or esi, edx
je 0x4b36fa
mov esi, ecx
and esi, edx
cmp esi, 0xffffffff
jne 0x4b3547
test eax, eax
jne 0x4b3547
cmp edi, 0x80000000
jne 0x4b3547
mov ecx, 1
xor edx, edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
push edx
push ecx
push edi
push eax
call fcn.005049c0
jmp 0x4b3583
mov esi, ecx
or esi, edx
je 0x4b36fa
mov esi, ecx
and esi, edx
cmp esi, 0xffffffff
jne 0x4b357a
mov ecx, 1
xor edx, edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
push edx
push ecx
push edi
push eax
call fcn.00504900
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xa0], eax
mov dword [ecx], eax
mov edx, dword [esp + 0xa4]
mov ax, word [ecx + 0x1c]
mov dword [ecx + 4], edx
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ecx + 0x1c], ax
jmp 0x4b7e58
call fcn.00491390
fstp qword [esp + 0xa8]
mov esi, edi
call fcn.00491390
fst qword [esp + 0xb0]
mov eax, dword [esp + 0x58]
movzx eax, byte [eax]
add eax, 0xffffffac
cmp eax, 3
ja case.default.0x4b35e3
jmp dword [eax*4 + 0x4b822c]
fadd qword [esp + 0xa8]
jmp 0x4b36a1
fsub qword [esp + 0xa8]
jmp 0x4b36a1
fmul qword [esp + 0xa8]
jmp 0x4b36a1
fldz
fld qword [esp + 0xa8]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x4b36f6
fdivp st(1)
jmp 0x4b36a1
fld qword [esp + 0xa8]
call fcn.005055c6
mov esi, eax
mov edi, edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], edi
call fcn.005055c6
mov ecx, esi
or ecx, edi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
je 0x4b36fa
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4b3683
mov esi, 1
xor edi, edi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], edi
push edi
push esi
push edx
push eax
call fcn.00504900
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
fild qword [esp + 0x80]
sub esp, 8
fst qword [esp + 0xb8]
fstp qword [esp]
call fcn.00477520
add esp, 8
test eax, eax
jne 0x4b36fa
mov eax, dword [esp + 0x54]
fld qword [esp + 0xb0]
mov dx, word [eax + 0x1c]
fstp qword [eax + 8]
mov ecx, 0xbf08
and dx, cx
or dx, 8
mov word [eax + 0x1c], dx
test byte [esp + 0x90], 8
jne 0x4b7e58
mov edi, eax
call fcn.0047c060
jmp 0x4b7e58
fstp st(0)
fstp st(0)
mov esi, dword [esp + 0x54]
jmp 0x4b7e53
movzx ecx, byte [edi + 3]
mov edx, dword [esi + 0x24]
mov dword [esp + 0xd8], edx
mov edx, dword [esi + 0x4c]
mov dword [esp + 0xdc], ecx
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x90], eax
test ecx, ecx
jle 0x4b3775
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xd8]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x94]
call fcn.0047cfa0
mov eax, dword [esp + 0x90]
add dword [esp + 0x94], 0x28
inc eax
cmp eax, dword [esp + 0xdc]
mov dword [esp + 0x90], eax
jl 0x4b3738
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 0x10]
jne 0x4b3790
xor ecx, ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
jmp 0x4b37a2
mov dword [esp + 0x9c], eax
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
xor ecx, ecx
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x4c]
lea esi, [eax + edx*8]
mov eax, dword [esp + 0x48]
mov edx, 1
mov dword [esp + 0xb0], eax
mov ebx, esi
lea eax, [esp + 0xa0]
mov dword [esp + 0x54], esi
mov word [esp + 0xbc], dx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
call fcn.0047c210
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0x98]
and ecx, 0xbf01
or ecx, 1
mov word [esp + 0xbc], cx
mov dword [esp + 0xcc], 0
test byte [eax + 3], 8
je 0x4b3824
mov edx, dword [edi - 4]
mov dword [esp + 0xd0], edx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
push ecx
push edx
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0xa0]
push ecx
call edx
mov eax, dword [esp + 0x54]
add esp, 0xc
cmp byte [eax + 0x1e], 0
jne 0x4b7e81
mov ebx, dword [esp + 0x9c]
test ebx, ebx
je 0x4b3877
mov ecx, dword [edi + 4]
push ecx
call fcn.0047c430
mov edx, dword [esp + 0xa0]
add esp, 4
mov dword [edi + 0x10], edx
mov byte [edi + 1], 0xf9
cmp dword [esp + 0xcc], 0
je 0x4b38b7
mov bl, 1
lea edi, [esp + 0xa0]
call fcn.00491690
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
push 0x54dc64
add esi, 0x68
call fcn.0048fb40
mov eax, dword [esp + 0xd4]
mov esi, dword [esp + 0x5c]
add esp, 8
mov dword [esp + 0x44], eax
movzx ecx, byte [esp + 0x60]
lea eax, [esp + 0xa0]
call fcn.00491230
lea ebx, [esp + 0xa0]
mov eax, esi
call fcn.0047c210
mov ecx, esi
call fcn.0047c190
test eax, eax
je 0x4b7e58
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
push str.string_or_blob_too_big
add esi, 0x68
call fcn.0048fb40
mov dword [esp + 0x48], 0x12
add esp, 4
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
push eax
mov dword [eax + 0x64], esi
call fcn.004b0a60
add esp, 4
cmp esi, 0xc0a
jne 0x4b3929
mov edx, dword [esp + 0x48]
mov byte [edx + 0x1e], 1
mov edi, 1
mov ebx, dword [esp + 0x7c]
call fcn.0047abf0
mov ecx, dword [esp + 0x13c]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00502c08
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x5c]
mov al, byte [edx + 0x1c]
or al, byte [ecx + 0x1c]
test al, 1
jne 0x4b7e51
mov esi, edx
call fcn.00491300
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
call fcn.00491300
mov ecx, eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], edx
movzx eax, byte [edi]
sub eax, 0x50
je 0x4b39e8
sub eax, 1
je 0x4b39d8
mov edx, dword [esp + 0x94]
sub eax, 1
mov eax, dword [esp + 0x90]
je 0x4b39c3
call fcn.00507940
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x4b39f6
call fcn.00507470
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x4b39f6
or dword [esp + 0x90], ecx
or dword [esp + 0x94], edx
jmp 0x4b39f6
and dword [esp + 0x90], ecx
and dword [esp + 0x94], edx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x90]
mov dword [eax], ecx
mov edx, dword [esp + 0x94]
mov cx, word [eax + 0x1c]
mov dword [eax + 4], edx
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
jmp 0x4b7e58
mov ebx, dword [esp + 0x4c]
mov eax, ebx
call fcn.00491400
mov eax, dword [edi + 8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp case.0x4b2d17.12
mov edi, dword [esp + 0x4c]
call fcn.00491ea0
test byte [edi + 0x1c], 8
je 0x4b3a53
call fcn.0047c060
movzx eax, word [edi + 0x1c]
test al, 4
jne 0x4b3a74
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 8]
test eax, eax
je 0x4b7e96
dec eax
mov dword [esp + 0x50], eax
jmp 0x4b7e58
and eax, 0xbf04
or eax, 4
mov word [edi + 0x1c], ax
jmp 0x4b7e58
test byte [ecx + 0x1c], 4
je 0x4b7e58
mov eax, dword [esp + 0x4c]
call fcn.00491430
jmp case.0x4b2d17.12
movzx edx, word [ecx + 0x1c]
test dl, 1
jne case.0x4b2d17.12
mov eax, edx
shr eax, 3
and eax, 2
or eax, edx
mov word [ecx + 0x1c], ax
test al, 2
jne 0x4b3ad6
test al, 0xc
je 0x4b3ad6
movzx esi, byte [esp + 0x60]
mov eax, dword [esp + 0x4c]
call fcn.00491250
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x4c]
mov edx, 0xfff3
and word [ecx + 0x1c], dx
movzx eax, word [ecx + 0x1c]
test eax, 0x4000
je 0x4b3b07
mov eax, edi
call fcn.00484210
mov dword [esp + 0x44], eax
mov eax, 0xbfe3
and word [edi + 0x1c], ax
jmp case.0x4b2d17.12
mov eax, 0xbfe3
and word [edi + 0x1c], ax
mov dword [esp + 0x44], 0
jmp case.0x4b2d17.12
movzx eax, word [ecx + 0x1c]
test al, 1
jne case.0x4b2d17.12
test al, 0x10
jne 0x4b3b64
test al, 2
jne 0x4b3b4b
test al, 0xc
je 0x4b3b4b
movzx esi, byte [esp + 0x60]
mov eax, dword [esp + 0x4c]
call fcn.00491250
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dx, word [ecx + 0x1c]
mov eax, 0xbf10
and dx, ax
or dx, 0x10
mov word [ecx + 0x1c], dx
jmp case.0x4b2d17.12
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 0xd
jne 0x4b7e58
mov eax, dword [esp + 0x4c]
call fcn.00491460
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 1
jne 0x4b7e58
mov eax, dword [esp + 0x4c]
call fcn.00491400
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 1
jne 0x4b7e58
mov eax, dword [esp + 0x4c]
call fcn.00491430
jmp case.0x4b2d17.12
mov edx, dword [esp + 0x64]
movzx eax, word [edx + 0x1c]
movzx ecx, word [ecx + 0x1c]
or eax, ecx
mov dword [esp + 0x90], eax
test byte [esp + 0x90], 1
mov al, byte [edi + 3]
je 0x4b3c1f
test al, 0x10
je 0x4b3c0a
mov edi, dword [edi + 8]
mov eax, dword [esi + 0x4c]
lea edx, [edi + edi*4]
mov cx, word [eax + edx*8 + 0x1c]
lea eax, [eax + edx*8]
mov edx, 0xbf01
and cx, dx
or cx, 1
mov dword [esp + 0x54], eax
mov word [eax + 0x1c], cx
jmp case.0x4b2d17.12
test al, 8
je 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
and al, 0x67
mov byte [esp + 0x98], al
je 0x4b3c5e
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x4c]
push esi
call fcn.00491f30
mov al, byte [esp + 0x9c]
mov ecx, dword [esp + 0x68]
push esi
call fcn.00491f30
mov eax, dword [esp + 0x50]
add esp, 8
cmp byte [eax + 0x1e], 0
jne 0x4b3206
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
mov ecx, 0x4000
test word [ebx + 0x1c], cx
je 0x4b3c74
mov eax, ebx
call fcn.00484210
mov ecx, dword [esp + 0x64]
mov edx, 0x4000
test word [ecx + 0x1c], dx
je 0x4b3c8e
mov eax, ecx
call fcn.00484210
mov ecx, dword [esp + 0x64]
mov eax, dword [edi + 0x10]
push eax
mov eax, ebx
call fcn.0049aa40
mov dword [esp + 0x98], eax
movzx ecx, byte [edi]
add ecx, 0xffffffb7
add esp, 4
cmp ecx, 4
ja case.default.0x4b3cae
jmp dword [ecx*4 + 0x4b823c]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x4b3cf1
xor edx, edx
test eax, eax
setne dl
jmp 0x4b3cef
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x4b3cf1
xor edx, edx
test eax, eax
setle dl
jmp 0x4b3cef
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x4b3cf1
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x94], eax
test byte [edi + 3], 0x10
je 0x4b5b76
mov edi, dword [edi + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
mov dx, word [ecx + eax*8 + 0x1c]
lea ecx, [ecx + eax*8]
mov eax, 0xbf04
and dx, ax
or dx, 4
mov word [ecx + 0x1c], dx
mov eax, dword [esp + 0x94]
cdq
mov dword [esp + 0x54], ecx
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x4b2d17.12
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x74], ecx
jmp case.0x4b2d17.12
mov edx, dword [edi + 0xc]
mov dword [esp + 0x90], edx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0xa0], ecx
mov eax, dword [edi + 4]
mov dword [esp + 0x98], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0x94], eax
test edx, edx
jle 0x4b3e2d
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
jmp 0x4b3d97
mov ecx, dword [esp + 0xa0]
test ebx, ebx
je 0x4b3da0
mov edx, dword [ebx + eax*4]
jmp 0x4b3da2
mov edx, eax
mov dword [esp + 0xa4], edx
mov esi, dword [ecx + eax*4 + 0xc]
mov dword [esp + 0xa8], esi
mov ecx, dword [ecx + 8]
movzx eax, byte [ecx + eax]
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x9c]
add eax, edx
push esi
mov esi, dword [esp + 0x9c]
add edx, esi
lea eax, [eax + eax*4]
lea edx, [edx + edx*4]
lea eax, [ecx + eax*8]
lea ecx, [ecx + edx*8]
call fcn.0049aa40
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
jne 0x4b3e19
mov eax, dword [esp + 0x94]
inc eax
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
jl 0x4b3d90
mov dword [esp + 0x74], 0
jmp 0x4b7e58
cmp dword [esp + 0xac], 0
je 0x4b3e2d
mov eax, dword [esp + 0x70]
neg eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
jmp 0x4b7e58
mov eax, dword [esp + 0x70]
test eax, eax
jge 0x4b3e4f
mov edi, dword [edi + 4]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
jne 0x4b3e5e
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov edi, dword [edi + 0xc]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 1
je 0x4b3e78
mov eax, 2
jmp 0x4b3e8e
mov esi, dword [esp + 0x4c]
call fcn.00491300
or eax, edx
je 0x4b3e8c
mov eax, 1
jmp 0x4b3e8e
xor eax, eax
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x90], eax
test byte [esi + 0x1c], 1
je 0x4b3ea6
mov edx, 2
jmp 0x4b3ebf
call fcn.00491300
or eax, edx
mov eax, dword [esp + 0x90]
je 0x4b3ebd
mov edx, 1
jmp 0x4b3ebf
xor edx, edx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x94], edx
cmp byte [edi], 0x43
lea edx, [edx + eax*2]
jne 0x4b3edc
movzx eax, byte [eax + edx + 0x54ad84]
jmp 0x4b3ee4
movzx eax, byte [eax + edx + 0x54ae4c]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x90], eax
cmp eax, 2
jne 0x4b3f0d
mov ax, word [ecx + 0x1c]
mov edx, 0xbf01
and ax, dx
or ax, 1
mov word [ecx + 0x1c], ax
jmp case.0x4b2d17.12
cdq
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
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 1
mov edi, dword [edi + 8]
mov edx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea edi, [edx + eax*8]
mov dword [esp + 0x54], edi
je 0x4b3f49
mov esi, edi
jmp 0x4b7e53
mov esi, dword [esp + 0x4c]
call fcn.00491300
or eax, edx
jne 0x4b3f6d
mov eax, 1
cdq
push edx
push eax
mov esi, edi
call fcn.0047c0f0
add esp, 8
jmp 0x4b7e58
xor eax, eax
cdq
push edx
push eax
mov esi, edi
call fcn.0047c0f0
add esp, 8
jmp 0x4b7e58
test byte [ecx + 0x1c], 1
mov edi, dword [edi + 8]
mov edx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea edi, [edx + eax*8]
mov dword [esp + 0x54], edi
je 0x4b3f9e
mov esi, edi
jmp 0x4b7e53
mov esi, dword [esp + 0x4c]
call fcn.00491300
not edx
not eax
push edx
push eax
mov esi, edi
call fcn.0047c0f0
add esp, 8
jmp 0x4b7e58
test byte [ecx + 0x1c], 1
je 0x4b3fc7
mov eax, dword [edi + 0xc]
jmp 0x4b3ffb
mov esi, dword [esp + 0x4c]
call fcn.00491390
fcomp qword [0x558c38]
fnstsw ax
test ah, 0x44
jnp 0x4b3fe4
mov eax, 1
jmp 0x4b3fe6
xor eax, eax
mov dword [esp + 0x90], eax
cmp byte [edi], 0x44
jne 0x4b4002
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov dword [esp + 0x90], eax
test eax, eax
je 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp 0x4b7e58
test byte [ecx + 0x1c], 1
je 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
test byte [ecx + 0x1c], 1
jne 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov dword [esp + 0xa0], edx
mov eax, dword [edi + 8]
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
xor edx, edx
mov dword [esp + 0xa8], edx
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + ecx*8]
mov dword [esp + 0xcc], eax
mov cx, word [eax + 0x1c]
mov ebx, 0xbf01
and cx, bx
or cx, 1
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0xa0]
mov eax, dword [esi + 0x34]
mov dword [esp + 0xac], edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xa8], eax
mov ecx, dword [eax]
mov dword [esp + 0xb0], ecx
cmp ecx, edx
je 0x4b41de
mov esi, eax
call fcn.004aa690
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov eax, dword [esp + 0xa8]
cmp byte [eax + 0x14], 0
je 0x4b412d
mov dword [esp + 0x90], 0
jmp 0x4b7e58
mov edx, dword [eax + 0x5c]
mov ecx, dword [esp + 0x40]
cmp edx, dword [ecx + 0x50]
jne 0x4b414f
mov edx, dword [eax + 0x60]
mov dword [esp + 0x90], edx
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0xac], ecx
jmp 0x4b4181
cmp byte [eax + 0x19], 0
mov edi, dword [esp + 0xb0]
je 0x4b41cc
lea ebx, [esp + 0x98]
call fcn.004a9ea0
mov edx, dword [esp + 0x98]
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x4b7e58
mov edx, dword [esp + 0x48]
cmp ecx, dword [edx + 0x48]
ja 0x4b38e5
mov edx, dword [eax + 0x44]
mov dword [esp + 0xbc], edx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0xb4], ecx
mov ebx, dword [eax + 0x5c]
cmp ebx, dword [esi + 0x50]
jne 0x4b4210
mov eax, dword [eax + 0x68]
mov dword [esp + 0xb8], eax
jmp 0x4b4646
lea eax, [esp + 0x90]
push eax
call fcn.004a9f20
add esp, 4
jmp 0x4b4176
cmp byte [eax + 0x15], 0
je 0x4b4204
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x90], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xac], ecx
mov dword [eax + 0x5c], edx
mov eax, dword [esp + 0xa8]
jmp 0x4b4185
mov dword [esp + 0x90], edx
jmp case.0x4b2d17.12
lea ecx, [ecx + edx*4]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x114], 0
mov dword [eax + 0x68], ecx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x90]
mov dword [ecx + 0x60], edx
mov ecx, dword [esp + 0xa8]
mov eax, dword [esi + 0x50]
mov dword [ecx + 0x5c], eax
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x4b425d
mov dword [esp + 0xc8], ecx
jmp 0x4b43f0
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
cmp byte [edx + 0x19], 0
mov edx, ecx
mov dword [esp + 0x58], edx
je 0x4b4310
cmp byte [ecx + 0x43], 1
jne 0x4b43af
cmp word [ecx + 0x3e], 0
movsx eax, word [ecx + 0x5c]
mov ebx, dword [ecx + eax*4 + 0x60]
mov dword [esp + 0x44], ebx
jne 0x4b42e2
movzx edx, word [ecx + eax*2 + 0xb0]
mov eax, ebx
movzx ebx, word [eax + 0xc]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x40]
add ebx, edx
mov edx, dword [esp + 0x68]
add ecx, 0x20
push ecx
movzx ecx, byte [ebx + edx*2]
lea edx, [ebx + edx*2]
movzx edx, byte [edx + 1]
shl ecx, 8
or ecx, edx
movzx edx, word [eax + 0x12]
and ecx, edx
add ecx, dword [eax + 0x40]
push ecx
push eax
call fcn.0047ada0
mov edx, dword [esp + 0x64]
add esp, 0xc
mov byte [edx + 0x42], 1
movzx ecx, word [edx + 0x38]
mov eax, dword [esp + 0x44]
add ecx, dword [edx + 0x20]
cmp byte [eax + 2], 0
je 0x4b42f7
xor ebx, ebx
jmp 0x4b42fa
mov ebx, dword [edx + 0x28]
movzx eax, word [edx + 0x3a]
cmp eax, ebx
jbe 0x4b4304
mov eax, ebx
mov dword [esp + 0x114], eax
jmp 0x4b43b8
cmp byte [ecx + 0x43], 1
jne 0x4b43af
cmp word [ecx + 0x3e], 0
movsx eax, word [ecx + 0x5c]
mov ebx, dword [ecx + eax*4 + 0x60]
mov dword [esp + 0x44], ebx
jne 0x4b4377
movzx edx, word [ecx + eax*2 + 0xb0]
mov eax, ebx
movzx ebx, word [eax + 0xc]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x40]
add ebx, edx
mov edx, dword [esp + 0x68]
add ecx, 0x20
push ecx
movzx ecx, byte [ebx + edx*2]
lea edx, [ebx + edx*2]
movzx edx, byte [edx + 1]
shl ecx, 8
or ecx, edx
movzx edx, word [eax + 0x12]
and ecx, edx
add ecx, dword [eax + 0x40]
push ecx
push eax
call fcn.0047ada0
mov edx, dword [esp + 0x64]
add esp, 0xc
mov byte [edx + 0x42], 1
movzx ecx, word [edx + 0x38]
mov eax, dword [esp + 0x44]
add ecx, dword [edx + 0x20]
cmp byte [eax + 2], 0
je 0x4b439b
movzx eax, word [edx + 0x3a]
xor ebx, ebx
sub eax, ebx
mov dword [esp + 0x114], eax
add ecx, ebx
jmp 0x4b43b8
movzx eax, word [edx + 0x3a]
mov ebx, dword [edx + 0x28]
sub eax, ebx
mov dword [esp + 0x114], eax
add ecx, ebx
jmp 0x4b43b8
mov eax, dword [esp + 0x114]
xor ecx, ecx
mov dword [esp + 0xc8], ecx
cmp dword [esp + 0x90], eax
ja 0x4b43db
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xac], ecx
mov dword [edx + 0x6c], ecx
jmp 0x4b43e9
mov eax, dword [esp + 0xa8]
mov dword [eax + 0x6c], 0
mov ecx, dword [esp + 0xc8]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4b4407
movzx eax, al
mov dword [esp + 0x100], eax
mov edx, 1
jmp 0x4b4428
lea esi, [esp + 0x100]
call fcn.00477f10
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x40]
movzx edx, al
mov eax, dword [esp + 0x100]
movzx edx, dl
mov dword [esp + 0x110], edx
cmp eax, 0x18003
jbe 0x4b4446
mov dword [esp + 0x44], 0xb
jmp case.0x4b2d17.12
mov esi, dword [esp + 0xbc]
lea edx, [esi + esi*4 + 3]
cmp edx, eax
mov dword [esp + 0xc0], edx
jle 0x4b4465
mov edx, eax
mov dword [esp + 0xc0], edx
cmp dword [esp + 0xac], 0
jne 0x4b44dd
cmp dword [esp + 0x114], edx
jge 0x4b44dd
mov ecx, dword [esp + 0xa8]
xor eax, eax
mov word [esp + 0xec], ax
mov dword [esp + 0xe0], eax
movzx eax, byte [ecx + 0x19]
push eax
mov eax, dword [esp + 0xb4]
push edx
push 0
lea esi, [esp + 0xdc]
call fcn.004aa4c0
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7e58
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xc8], ecx
add edx, ecx
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0x110]
add edx, ecx
xor ecx, ecx
cmp esi, ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0xc4], ecx
jle 0x4b45cc
xor ebx, ebx
mov eax, dword [esp + 0xf8]
cmp eax, dword [esp + 0xfc]
jae 0x4b45a6
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x108]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0xf8]
mov al, byte [ecx]
mov edx, dword [esp + 0xc4]
cmp al, 0x80
jae 0x4b4564
movzx ecx, al
mov eax, dword [esp + 0xb4]
mov dword [eax + edx*4], ecx
mov eax, 1
jmp 0x4b4576
mov eax, dword [esp + 0xb4]
lea esi, [eax + edx*4]
call fcn.00477f10
movzx eax, al
mov edx, dword [esp + 0xb4]
movzx ecx, al
add dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0xc4]
mov eax, dword [edx + ecx*4]
call fcn.0047c550
add dword [esp + 0x108], eax
adc dword [esp + 0x10c], ebx
jmp 0x4b45b7
mov eax, dword [esp + 0xb8]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0xc4]
inc ecx
cmp ecx, dword [esp + 0xbc]
mov dword [esp + 0xc4], ecx
jl 0x4b4517
lea ecx, [esp + 0xd0]
push ecx
call fcn.0047bfa0
mov ebx, dword [esp + 0x100]
add esp, 4
mov edx, 1
mov word [esp + 0xec], dx
cmp dword [esp + 0xf8], ebx
ja 0x4b47bf
mov esi, dword [esp + 0x10c]
mov eax, dword [esp + 0x90]
xor ecx, ecx
cmp esi, ecx
ja 0x4b47bf
mov edx, dword [esp + 0x108]
jb 0x4b4626
cmp edx, eax
ja 0x4b47bf
cmp dword [esp + 0xf8], ebx
jne 0x4b463f
cmp edx, eax
jne 0x4b47bf
cmp esi, ecx
jne 0x4b47bf
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xb8]
cmp dword [edx + eax*4], 0
je 0x4b4740
cmp dword [esp + 0xac], 0
je 0x4b469b
mov esi, dword [esp + 0xcc]
call fcn.0047bf40
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb8]
mov ecx, dword [ecx + eax*4]
mov edx, dword [esp + 0xb4]
add ecx, dword [esp + 0xac]
mov eax, dword [edx + eax*4]
jmp 0x4b4724
mov eax, dword [ecx + eax*4]
call fcn.0047c550
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xd0]
call fcn.0047c210
mov eax, dword [esp + 0xa8]
movzx ecx, byte [eax + 0x19]
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xb8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0xb8]
push edx
lea esi, [esp + 0xdc]
call fcn.004aa4c0
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7e58
mov ecx, dword [esp + 0xe4]
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0xc8], ecx
mov eax, dword [eax + edx*4]
mov esi, dword [esp + 0xcc]
call fcn.0047c610
mov eax, dword [esp + 0xcc]
mov cl, byte [esp + 0x60]
mov byte [eax + 0x1f], cl
jmp 0x4b475e
cmp byte [edi + 1], 0xf8
jne 0x4b475e
mov edx, dword [edi + 0x10]
mov ebx, dword [esp + 0xcc]
push 0x800
push edx
call fcn.0047c1c0
add esp, 8
cmp dword [esp + 0xf4], 0
je 0x4b47aa
mov eax, dword [esp + 0xcc]
mov ecx, 0xe7ff
and word [eax + 0x1c], cx
mov eax, dword [esp + 0xcc]
mov edx, 0x200
or word [eax + 0x1c], dx
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0x14], ecx
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xcc]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0xcc]
call fcn.0048a6b0
mov dword [esp + 0x44], eax
jmp 0x4b7e58
mov dword [esp + 0x44], 0xb
jmp 0x4b7e58
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x90], ecx
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
mov dword [esp + 0x94], eax
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea edx, [eax + ecx*8 - 0x28]
mov ecx, eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
cmp eax, edx
ja 0x4b7e58
jmp 0x4b4817
mov eax, dword [esp + 0x94]
mov edx, 0x4000
test word [ecx + 0x1c], dx
je 0x4b4837
mov eax, ecx
call fcn.00484210
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x60]
push edx
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x94]
mov al, byte [eax + edx]
call fcn.00491f30
mov ecx, dword [esp + 0xa0]
add ecx, 0x28
add esp, 4
mov dword [esp + 0x9c], ecx
cmp ecx, dword [esp + 0x98]
jbe 0x4b4810
jmp 0x4b7e58
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov eax, dword [edi + 4]
mov dword [esp + 0xc4], eax
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ebx, [eax + edx*8]
movzx edx, byte [esi + 0x6f]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xbc], ebx
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov dword [esp + 0xc4], eax
lea eax, [ebx + ecx*8 - 0x28]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0x94], ebx
cmp ebx, eax
ja 0x4b49f3
cmp dword [esp + 0xc8], 0
je 0x4b4948
mov eax, dword [esp + 0x60]
push eax
mov ecx, ebx
sub ecx, dword [esp + 0xc0]
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0xcc]
mov al, byte [ecx + edx]
mov ecx, ebx
call fcn.00491f30
mov ebx, dword [esp + 0x98]
add esp, 4
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x4b4967
cmp dword [ebx + 0x18], 0
jle 0x4b4967
mov eax, ebx
call fcn.00484210
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0xcc]
push ecx
mov ecx, ebx
call fcn.0047c480
mov dword [esp + 0xbc], eax
call fcn.0047c550
mov dword [esp + 0xd8], eax
cdq
add dword [esp + 0x9c], eax
push 0
adc dword [esp + 0xa4], edx
mov edx, dword [esp + 0xc0]
push edx
call fcn.00477f90
add dword [esp + 0xac], eax
mov eax, 0x4000
add esp, 0xc
test word [ebx + 0x1c], ax
je 0x4b49c7
mov ecx, dword [ebx]
add dword [esp + 0xb0], ecx
jmp 0x4b49dc
cmp dword [esp + 0xd4], 0
je 0x4b49dc
mov dword [esp + 0xb0], 0
add ebx, 0x28
mov dword [esp + 0x94], ebx
cmp ebx, dword [esp + 0xc0]
jbe 0x4b4904
mov ebx, dword [esp + 0xa0]
mov eax, ebx
cdq
push edx
push eax
call fcn.00477f90
add ebx, eax
mov dword [esp + 0xbc], eax
mov eax, ebx
cdq
push edx
push eax
mov dword [esp + 0xb0], ebx
call fcn.00477f90
add esp, 0x10
cmp dword [esp + 0xb4], eax
jge 0x4b4a32
inc ebx
mov dword [esp + 0xa0], ebx
mov eax, ebx
cdq
mov ebx, eax
mov eax, dword [esp + 0xb0]
mov ecx, edx
cdq
sub ebx, eax
sbb ecx, edx
add ebx, dword [esp + 0x98]
mov edx, dword [esp + 0x48]
adc ecx, dword [esp + 0x9c]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ecx
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x4b38e5
jl 0x4b4a7b
cmp ebx, eax
ja 0x4b38e5
mov edi, dword [edi + 0xc]
mov ecx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*8]
mov eax, ebx
push 0
mov ebx, edi
mov dword [esp + 0x58], edi
call fcn.004840e0
add esp, 4
test eax, eax
jne 0x4b3206
mov eax, dword [esp + 0xa0]
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x90], ecx
cmp eax, 0x80
jae 0x4b4ac4
mov dl, al
mov byte [ecx], dl
mov eax, 1
jmp 0x4b4ac9
call fcn.00477d60
mov ecx, dword [esp + 0xbc]
movzx ebx, al
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x94], ecx
cmp ecx, eax
ja 0x4b4b65
lea esp, [esp]
mov eax, dword [esp + 0xcc]
push eax
call fcn.0047c480
add esp, 4
mov dword [esp + 0xb8], eax
cmp eax, 0x80
jae 0x4b4b21
mov edx, dword [esp + 0x90]
mov cl, al
mov byte [ebx + edx], cl
mov eax, 1
jmp 0x4b4b2f
mov ecx, dword [esp + 0x90]
add ecx, ebx
call fcn.00477d60
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0xd0]
movzx edx, al
mov eax, dword [esp + 0xc0]
add ecx, 0x28
add ebx, edx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x94], ecx
cmp ecx, eax
jbe 0x4b4af0
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x94], ecx
cmp ecx, eax
ja 0x4b4bbc
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x90]
sub eax, ebx
push eax
mov eax, dword [esp + 0xd0]
add ebx, edx
call fcn.0047c570
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0xd4]
add ecx, 0x28
add ebx, eax
add esp, 4
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x94], ecx
cmp ecx, dword [esp + 0xc0]
jbe 0x4b4b70
mov eax, dword [esp + 0xa8]
mov ecx, 0x410
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], cx
mov dword [edi + 0x20], 0
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x4b4bec
mov edx, 0x4410
mov dword [edi], eax
mov word [edi + 0x1c], dx
mov byte [edi + 0x1f], 1
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + eax*4]
mov esi, dword [edx]
xor eax, eax
mov dword [esp + 0x98], esi
cmp esi, eax
je 0x4b4c27
lea eax, [esp + 0x90]
push eax
call fcn.004a5130
mov ebx, dword [esp + 0x58]
add esp, 4
mov dword [esp + 0x44], eax
jmp 0x4b4c35
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov ecx, 4
mov word [ebx + 0x1c], cx
mov edx, dword [esp + 0x90]
mov dword [ebx], edx
mov eax, dword [esp + 0x94]
mov dword [ebx + 4], eax
jmp 0x4b7e58
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x1c], 0
je 0x4b4c71
cmp dword [eax + 0x88], 1
jle 0x4b7e58
mov esi, dword [esp + 0x40]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 8]
shl ecx, 4
cmp dword [esi + 0xc8], 0
mov ecx, dword [ecx + edx + 4]
mov dword [esp + 0x90], ecx
jne 0x4b4ca8
inc dword [eax + 0x1c4]
mov ecx, dword [eax + 0x1c4]
mov edx, dword [eax + 0x1c0]
add edx, ecx
mov dword [esi + 0xc8], edx
mov eax, dword [esi + 0xc8]
push eax
mov eax, dword [esp + 0x94]
call fcn.0048a310
add esp, 4
mov dword [esp + 0x44], eax
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov edi, dword [edi + 0x10]
mov dword [esp + 0x94], edi
test eax, eax
jne 0x4b4d9e
cmp dword [ecx + 0x8c], eax
jle 0x4b4d12
push str.cannot_open_savepoint___SQL_statements_in_progress
mov esi, dword [esp + 0x44]
add esi, 0x68
mov eax, ecx
call fcn.0048fb40
add esp, 4
mov dword [esp + 0x44], 5
jmp 0x4b7e58
mov ecx, edi
call fcn.00477560
mov esi, dword [esp + 0x48]
lea ecx, [eax + 9]
mov dword [esp + 0x98], eax
call fcn.00481d20
mov dword [esp + 0x9c], eax
test eax, eax
je 0x4b7e58
lea edx, [eax + 8]
mov dword [eax], edx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x9c]
inc eax
push eax
mov eax, dword [edx]
push ecx
push eax
call fcn.00503f50
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4b4d76
mov byte [esi + 0x1c], 0
mov byte [esi + 0x1c8], 1
jmp 0x4b4d7c
inc dword [esi + 0x1c0]
mov ecx, dword [esi + 0x1bc]
mov edx, dword [esp + 0x9c]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x9c]
mov dword [esi + 0x1bc], eax
jmp 0x4b7e58
mov dword [esp + 0xa8], 0
mov ebx, dword [ecx + 0x1bc]
mov dword [esp + 0xa0], ebx
test ebx, ebx
je 0x4b4de2
lea ebx, [ebx]
mov ecx, dword [ebx]
mov edx, edi
call fcn.00477680
test eax, eax
je 0x4b4e08
inc dword [esp + 0xa8]
mov ebx, dword [ebx + 4]
mov dword [esp + 0xa0], ebx
test ebx, ebx
jne 0x4b4dc0
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x48]
push edi
push str.no_such_savepoint:__s
add esi, 0x68
call fcn.0048fb40
add esp, 8
mov dword [esp + 0x44], 1
jmp 0x4b7e58
mov edi, dword [esp + 0x48]
xor eax, eax
cmp dword [edi + 0x8c], eax
jg 0x4b4fb7
mov ecx, dword [esp + 0x90]
cmp ecx, 2
jne 0x4b4e33
cmp dword [edi + 0x88], 1
jg 0x4b4fc1
cmp dword [ebx + 4], eax
jne 0x4b4f0a
cmp byte [edi + 0x1c8], 0
je 0x4b4f0a
mov dword [esp + 0x68], 1
cmp ecx, 1
jne 0x4b4f0e
push esi
mov byte [edi + 0x1c], cl
call fcn.004b0a60
add esp, 4
cmp eax, 5
je 0x4b7ea3
mov byte [edi + 0x1c8], 0
mov edx, dword [esi + 0x64]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x44], edx
mov esi, edi
cmp dword [esi + 0x1bc], ebx
je 0x4b4ecc
mov edi, edi
mov eax, dword [esi + 0x1bc]
mov dword [esp + 0xa4], eax
mov eax, dword [eax + 4]
mov dword [esi + 0x1bc], eax
mov ecx, dword [esp + 0xa4]
push ecx
push esi
call fcn.00477390
dec dword [esi + 0x1c0]
mov ebx, dword [esp + 0xa8]
add esp, 8
cmp dword [esi + 0x1bc], ebx
jne 0x4b4e90
cmp dword [esp + 0x90], 1
jne 0x4b7e58
mov edx, dword [ebx + 4]
mov dword [esi + 0x1bc], edx
mov eax, dword [esp + 0xa0]
push eax
push esi
call fcn.00477390
add esp, 8
cmp dword [esp + 0x68], 0
jne 0x4b7e58
dec dword [esi + 0x1c0]
jmp 0x4b7e58
mov dword [esp + 0x68], eax
mov ecx, dword [edi + 0x1c0]
sub ecx, dword [esp + 0xa8]
mov dword [esp + 0xac], eax
dec ecx
mov dword [esp + 0xa8], ecx
cmp dword [edi + 4], eax
jle 0x4b4f7e
mov edx, edi
jmp 0x4b4f3a
mov ecx, dword [esp + 0xa8]
mov edx, dword [edx + 8]
push ecx
mov ecx, dword [esp + 0x94]
shl eax, 4
mov eax, dword [eax + edx + 4]
push ecx
call fcn.004911c0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov eax, dword [esp + 0xac]
inc eax
mov edx, edi
mov dword [esp + 0xac], eax
cmp eax, dword [edx + 4]
jl 0x4b4f33
mov ebx, dword [esp + 0xa0]
cmp dword [esp + 0x90], 2
jne 0x4b4e84
mov esi, edi
test byte [esi + 0xc], 0x10
je 0x4b4e86
mov eax, esi
call fcn.0047c930
push 0
mov ebx, esi
call fcn.00492f80
mov ebx, dword [esp + 0xa4]
add esp, 4
jmp 0x4b4e86
cmp dword [esp + 0x90], 2
jne 0x4b4fc8
mov eax, str.rollback
jmp 0x4b4fcd
mov eax, str.release
mov esi, dword [esp + 0x40]
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
add esi, 0x68
mov eax, edi
call fcn.0048fb40
add esp, 8
mov dword [esp + 0x44], 5
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov edi, dword [edi + 8]
mov dword [esp + 0x94], edi
test eax, eax
je 0x4b5035
cmp byte [ecx + 0x1c], 0
jne 0x4b5035
mov edx, 1
mov dword [esp + 0x98], edx
test edi, edi
je 0x4b5057
cmp dword [ecx + 0x88], edx
jle 0x4b5040
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x4b4cf4
mov dword [esp + 0x98], 0
movzx ecx, byte [ecx + 0x1c]
cmp eax, ecx
jne 0x4b7ebb
test eax, eax
jne 0x4b506a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4b5078
cmp dword [ecx + 0x8c], 0
jle 0x4b5040
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x4b4cf4
mov eax, str.cannot_rollback___no_transaction_is_active
test edi, edi
jne 0x4b5078
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
add esi, 0x68
call fcn.0048fb40
add esp, 4
mov dword [esp + 0x44], 1
jmp 0x4b7e58
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
shl edx, 4
mov eax, dword [edx + ecx + 4]
mov dword [esp + 0x90], eax
test eax, eax
je case.0x4b2d17.12
mov edx, dword [edi + 8]
push edx
call fcn.00498070
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, 5
je 0x4b7f26
test eax, eax
je case.0x4b2d17.12
cmp eax, 8
jne 0x4b7f42
jmp case.0x4b2d17.12
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x94], ecx
mov edi, dword [edi + 0xc]
mov dword [esp + 0x98], edi
mov edx, dword [edx + 8]
lea eax, [esp + 0x90]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
push eax
mov eax, edi
call fcn.00499fc0
add esp, 4
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x90]
cdq
mov dword [ebx], eax
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov dword [ebx + 4], edx
mov word [ebx + 0x1c], ax
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x64]
shl edx, 4
add edx, dword [eax + 8]
mov eax, ebx
mov dword [esp + 0x90], edx
call fcn.00491400
mov ecx, dword [ebx]
mov edx, dword [esp + 0x90]
mov ebx, dword [edi + 8]
mov eax, dword [edx + 4]
push ecx
call fcn.0048a3a0
mov dword [esp + 0x48], eax
mov eax, dword [edi + 8]
add esp, 4
cmp eax, 1
jne 0x4b51a5
mov eax, dword [esp + 0x90]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x64]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [esp + 0x48]
or dword [eax + 0xc], 0x10
jmp 0x4b51bd
cmp eax, 2
jne 0x4b51bd
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 0xc]
mov eax, dword [esp + 0x64]
mov cl, byte [eax]
mov byte [edx + 0x38], cl
cmp dword [edi + 4], 1
jne case.0x4b2d17.12
mov eax, dword [esp + 0x48]
call fcn.0047c930
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
shl edx, 4
mov ecx, dword [edx + ecx + 4]
xor eax, eax
mov dword [esp + 0x94], ecx
cmp ecx, eax
je 0x4b5288
lea edx, [esp + 0x90]
push edx
mov eax, 1
call fcn.00499fc0
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
jne case.0x4b2d17.12
mov eax, dword [esp + 0x90]
cmp eax, dword [edi + 8]
je case.0x4b2d17.12
mov ecx, dword [esi + 0x68]
mov ebx, dword [esp + 0x48]
push ecx
push ebx
call fcn.00477390
push ebx
mov ebx, str.database_schema_has_changed
call fcn.00481e90
mov dword [esi + 0x68], eax
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 8]
mov edx, edi
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
mov eax, dword [edx]
add esp, 0xc
cmp eax, dword [esp + 0x90]
je 0x4b5272
mov ebx, dword [esp + 0x48]
push edi
call fcn.00492f80
add esp, 4
mov eax, dword [esp + 0x48]
call fcn.0047c930
mov dword [esp + 0x44], 0x11
jmp case.0x4b2d17.12
mov dword [esp + 0x44], eax
mov dword [esp + 0x90], eax
jmp 0x4b5218
mov ebx, dword [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], ecx
mov edx, dword [edi + 8]
mov dword [esp + 0x98], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0x9c], eax
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0xac], eax
mov ebx, dword [eax + 4]
mov dword [esp + 0xa4], ebx
cmp byte [edi], 0xa
jne 0x4b52f4
mov dword [esp + 0xa0], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x38]
cmp al, byte [esi + 0x6f]
jae 0x4b52ff
mov byte [esi + 0x6f], al
jmp 0x4b52ff
mov dword [esp + 0xa0], 0
cmp byte [edi + 3], 0
je 0x4b5332
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x4c]
lea ebx, [edx + ecx*8]
mov eax, ebx
mov dword [esp + 0x5c], ebx
call fcn.00491400
mov ebx, dword [ebx]
cmp ebx, 2
mov dword [esp + 0x98], ebx
jl 0x4b5488
mov ecx, dword [esp + 0x90]
mov al, byte [edi + 1]
mov bl, 0xfa
cmp al, bl
jne 0x4b5361
mov eax, dword [edi + 0x10]
mov ecx, dword [esi]
mov dword [esp + 0x94], eax
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0xc]
mov dl, byte [ecx + 0x39]
mov byte [eax + 4], dl
mov eax, dword [esp + 0x94]
movzx ecx, word [eax + 6]
inc ecx
jmp 0x4b5368
cmp al, 0xf2
jne 0x4b536f
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x90], ecx
mov edx, dword [esp + 0x9c]
mov eax, dword [edi + 4]
push 1
push edx
push ecx
push eax
mov eax, esi
call fcn.004b1080
add esp, 0x10
mov dword [esp + 0xa8], eax
test eax, eax
je 0x4b3206
mov byte [eax + 0x14], 1
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0xac]
push ecx
push edx
call fcn.004a3650
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xa4]
add esp, 0x10
mov dword [esp + 0x44], eax
mov dword [ecx + 0x40], edx
test eax, eax
je 0x4b5429
cmp eax, 0x10
jne 0x4b7f42
cmp byte [edi + 1], bl
mov ecx, dword [esp + 0xa8]
setne al
mov byte [ecx + 0x18], al
mov eax, dword [esp + 0xa8]
cmp byte [eax + 0x18], 0
mov dword [esp + 0x44], 0
sete dl
mov byte [eax + 0x19], dl
mov eax, dword [esp + 0xa8]
mov dword [eax], 0
jmp 0x4b7e58
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx]
call fcn.004aa3a0
mov dword [esp + 0xb0], eax
mov dl, al
mov eax, dword [esp + 0xa8]
and dl, 1
mov byte [eax + 0x18], dl
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
shr ecx, 1
and cl, 1
mov byte [edx + 0x19], cl
mov eax, dword [esp + 0xa8]
cmp byte [eax + 0x18], 0
je 0x4b5475
cmp byte [edi + 1], bl
je 0x4b5488
cmp byte [eax + 0x19], 0
je 0x4b7e58
cmp byte [edi + 1], bl
je 0x4b7e58
mov dword [esp + 0x44], 0xb
jmp 0x4b7f42
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push 1
push 0xffffffffffffffff
push eax
push ecx
mov eax, esi
call fcn.004b1080
add esp, 0x10
mov dword [esp + 0x90], eax
test eax, eax
je 0x4b3206
mov ecx, dword [esp + 0x48]
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x90]
add edx, 0x28
push edx
push 0x1f4
push 1
mov eax, 0x41e
xor edx, edx
call fcn.004a2230
add esp, 0xc
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b55f6
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 0x28]
push 1
call fcn.00498070
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b55f6
cmp dword [edi + 0x10], eax
je 0x4b55cc
mov edx, dword [esp + 0x90]
mov eax, dword [edx + 0x28]
lea ecx, [esp + 0x78]
push 2
push ecx
call fcn.004a4f30
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b55a7
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov edx, dword [edi + 0x10]
mov eax, dword [eax + 0x28]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
push 1
push ecx
call fcn.004a3650
mov edx, dword [edi + 0x10]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x40], edx
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx + 0x40]
mov al, byte [eax + 0x39]
mov byte [edx + 4], al
mov ecx, dword [esp + 0xa0]
mov byte [ecx + 0x18], 0
mov eax, dword [esp + 0xa0]
add esp, 0x10
cmp byte [eax + 0x18], 0
sete cl
mov byte [eax + 0x19], cl
jmp case.0x4b2d17.12
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
mov byte [ecx + 0x18], 0
mov eax, dword [esp + 0x90]
cmp byte [eax + 0x18], 0
sete cl
mov byte [eax + 0x19], cl
jmp case.0x4b2d17.12
mov eax, dword [esp + 0x90]
mov edx, dword [eax]
mov eax, dword [eax + 0x28]
push edx
push 0
push 1
push 1
call fcn.004a3650
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa0]
add esp, 0x10
mov byte [eax + 0x18], 1
mov eax, dword [esp + 0x90]
cmp byte [eax + 0x18], 0
mov esi, dword [esp + 0x40]
sete cl
mov byte [eax + 0x19], cl
jmp case.0x4b2d17.12
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
mov eax, esi
call fcn.004b1080
add esp, 0x10
mov dword [esp + 0x90], eax
test eax, eax
je 0x4b3206
mov byte [eax + 0x14], 1
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x15], 1
mov dl, byte [edi + 8]
mov eax, dword [esp + 0x90]
mov byte [eax + 0x16], dl
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x18], 1
mov edx, dword [esp + 0x90]
mov byte [edx + 0x19], 0
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x34]
mov esi, dword [ecx + eax*4]
call fcn.004b0880
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 4]
mov ecx, edi
mov edx, dword [ecx + 0x34]
mov dword [edx + eax*4], 0
mov esi, ecx
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x98], eax
cmp dword [eax], 0
je 0x4b2dbf
movzx edx, byte [edi]
mov dword [esp + 0x94], edx
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x98]
cmp byte [ecx + 0x18], 0
je 0x4b58c8
mov edi, dword [esp + 0x64]
call fcn.00491ea0
mov esi, edi
call fcn.00491300
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xc4], edx
mov byte [eax + 0x11], 0
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x4b584b
test al, 8
jne 0x4b571a
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 8]
dec eax
mov dword [esp + 0x50], eax
jmp 0x4b7e58
xor ebx, ebx
cmp dword [esp + 0xc0], ebx
jne 0x4b57f2
mov eax, 0x80000000
cmp dword [esp + 0xc4], eax
jne 0x4b57f2
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ebx
fild qword [esp + 0x88]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
je 0x4b576a
fldz
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x4b57f2
fldz
mov dword [esp + 0x90], 1
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0x94]
jne 0x4b57a9
cmp eax, 0x7b
je 0x4b5792
cmp eax, 0x6d
jne 0x4b57e1
mov edx, dword [esp + 0x98]
mov eax, dword [edx]
lea edi, [esp + 0x90]
call fcn.004a39d0
jmp 0x4b57c8
cmp eax, 0x46
je 0x4b57b3
cmp eax, 0x37
jne 0x4b57e1
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
lea edi, [esp + 0x90]
call fcn.004a3a00
mov dword [esp + 0x44], eax
cmp eax, ebx
jne 0x4b7f42
cmp dword [esp + 0x90], ebx
je 0x4b7e58
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 8]
dec eax
mov dword [esp + 0x50], eax
jmp 0x4b7e58
mov eax, dword [esp + 0x94]
cmp eax, 0x46
je 0x4b5829
cmp eax, 0x6d
je 0x4b5829
fild qword [esp + 0xc0]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x4b584d
mov eax, 0xffffffff
add dword [esp + 0xc0], eax
adc dword [esp + 0xc4], eax
jmp 0x4b584d
fild qword [esp + 0xc0]
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x4b584d
add dword [esp + 0xc0], 1
adc dword [esp + 0xc4], ebx
jmp 0x4b584d
xor ebx, ebx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0x90]
push edx
mov edx, dword [esp + 0x9c]
push ebx
push eax
mov eax, dword [edx]
push ecx
push ebx
push eax
call fcn.004a3a40
add esp, 0x18
mov dword [esp + 0x44], eax
cmp eax, ebx
jne 0x4b7f42
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x90], ebx
jne 0x4b595a
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x11], 1
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x98]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x98]
mov dword [edx + 0xc], ecx
jmp 0x4b595a
mov eax, dword [edi + 0x10]
mov dword [esp + 0xb8], eax
mov edx, dword [ecx + 0x40]
mov word [esp + 0xa4], ax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xa0], edx
cmp eax, 0x7b
je 0x4b5901
cmp eax, 0x37
je 0x4b5901
xor edx, edx
mov word [esp + 0xa6], dx
jmp 0x4b590e
mov eax, 8
mov word [esp + 0xa6], ax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edx, [eax + edx*8]
lea eax, [esp + 0x90]
push eax
push 0
push 0
mov dword [esp + 0xbc], edx
mov eax, dword [ecx]
push 0
lea edx, [esp + 0xb0]
push edx
push eax
call fcn.004a3a40
add esp, 0x18
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x11], al
xor ebx, ebx
mov edx, dword [esp + 0x98]
mov byte [edx + 0x17], 0
mov eax, dword [esp + 0x98]
mov dword [eax + 0x5c], ebx
mov eax, dword [esp + 0x94]
cmp eax, 0x6d
je 0x4b59e3
cmp eax, 0x7b
je 0x4b59e3
mov ecx, dword [esp + 0x90]
cmp ecx, ebx
jg 0x4b59b0
jne 0x4b5992
cmp eax, 0x46
je 0x4b59b0
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx]
xor eax, eax
cmp byte [edx + 0x43], 1
setne al
mov dword [esp + 0x90], eax
jmp 0x4b5a32
mov edx, dword [esp + 0x98]
mov eax, dword [edx]
lea ecx, [esp + 0x90]
push ecx
push eax
call fcn.004aa1f0
add esp, 8
mov dword [esp + 0x44], eax
cmp eax, ebx
jne 0x4b7f42
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x11], 0
jmp 0x4b5a32
mov ecx, dword [esp + 0x90]
cmp ecx, ebx
jl 0x4b5a01
jne 0x4b59f5
cmp eax, 0x7b
je 0x4b5a01
mov dword [esp + 0x90], ebx
jmp 0x4b7e58
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
lea edx, [esp + 0x90]
push edx
push ecx
call fcn.004aa060
add esp, 8
mov dword [esp + 0x44], eax
cmp eax, ebx
jne 0x4b7f42
mov edx, dword [esp + 0x98]
mov byte [edx + 0x11], 0
cmp dword [esp + 0x90], ebx
je 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x90], eax
cmp dword [eax], 0
je 0x4b7e58
mov esi, dword [esp + 0x5c]
mov byte [eax + 0x14], 0
call fcn.00491300
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x90]
mov dword [eax + 0x24], edx
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x11], 0
mov edx, dword [esp + 0x90]
mov byte [edx + 0x17], 1
jmp 0x4b7e58
mov edx, dword [esi + 0x34]
xor eax, eax
mov dword [esp + 0x90], eax
mov ecx, dword [edi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x94], ecx
cmp dword [ecx], eax
je 0x4b5b71
mov eax, dword [esp + 0x64]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x18]
mov ebx, dword [ecx + 0x40]
push edx
push eax
mov edx, 0x97
lea eax, [esp + 0xa8]
call fcn.00484ea0
add esp, 8
mov dword [esp + 0x9c], eax
test eax, eax
je 0x4b3206
cmp byte [edi], 0x80
jne 0x4b5b05
or word [eax + 6], 0x10
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x98]
push ecx
push 0
push 0
push 0
push eax
mov eax, dword [edx]
push eax
call fcn.004a3a40
mov ebx, dword [esp + 0xb4]
add esp, 0x18
mov dword [esp + 0x44], eax
call fcn.0047c820
cmp dword [esp + 0x44], 0
jne case.0x4b2d17.12
mov edx, dword [esp + 0x94]
xor eax, eax
xor ecx, ecx
cmp dword [esp + 0x98], eax
sete cl
mov dword [esp + 0x90], ecx
mov byte [edx + 0x17], al
mov ecx, dword [esp + 0x94]
mov dword [ecx + 0x5c], eax
mov eax, dword [esp + 0x90]
cmp byte [edi], 0x80
jne 0x4b5b8b
test eax, eax
je 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
test eax, eax
jne 0x4b7e58
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ecx, [eax + edx*8]
mov eax, dword [esi + 0x34]
mov dword [esp + 0xa0], ecx
mov edx, dword [edi + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x94], eax
xor ecx, ecx
mov dword [eax + 0x58], ecx
mov edx, dword [esp + 0x94]
mov dword [edx + 0x5c], ecx
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx]
mov dword [esp + 0x98], eax
mov edx, dword [ecx + 0x40]
mov dx, word [edx + 6]
xor ebx, ebx
xor eax, eax
cmp bx, dx
mov ebx, dword [esp + 0xa0]
mov word [esp + 0x9c], dx
mov word [esp + 0x90], ax
jae 0x4b5c37
lea esp, [esp]
movzx ecx, ax
lea ecx, [ecx + ecx*4]
test byte [ebx + ecx*8 + 0x1c], 1
jne 0x4b5d01
inc ax
mov word [esp + 0x90], ax
cmp ax, dx
jb 0x4b5c10
mov ecx, dword [esp + 0x94]
cmp dword [esp + 0x98], 0
je 0x4b7e58
mov edx, dword [ecx + 0x40]
mov eax, dword [esp + 0x9c]
inc eax
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x64]
mov word [esp + 0xac], ax
mov ecx, 0x20
mov eax, ebx
mov dword [esp + 0xa8], edx
mov word [esp + 0xae], cx
call fcn.00491400
mov ecx, dword [esp + 0x94]
mov edx, dword [ebx]
add ecx, 0x58
push ecx
push 0
mov dword [esp + 0xc8], edx
mov eax, dword [ebx + 4]
push 0
push 0
lea edx, [esp + 0xb8]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xa8]
push edx
push eax
call fcn.004a3a40
add esp, 0x18
test byte [esp + 0xae], 0x20
mov dword [esp + 0x44], eax
jne 0x4b2dbf
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xc0]
jne 0x4b5cf0
mov ecx, dword [esp + 0xb4]
cmp ecx, dword [esp + 0xc4]
je 0x4b2dbf
mov dword [ebx], eax
mov edx, dword [esp + 0xb4]
mov dword [ebx + 4], edx
jmp case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x98], 0
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x90], ecx
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
test eax, eax
je 0x4b5df2
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x98], 0
mov ecx, dword [ebx]
mov dword [esp + 0xa0], ecx
mov edx, dword [ebx + 4]
mov dword [esp + 0xa4], edx
lea edx, [esp + 0x98]
push edx
mov edx, dword [esp + 0xa8]
push 0
push edx
push ecx
push 0
push eax
call fcn.004a3a40
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx]
mov dword [ecx + 8], eax
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0xa8]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xa8]
add esp, 0x18
cmp dword [esp + 0x98], 0
sete cl
mov byte [edx + 0x11], cl
mov eax, dword [esp + 0x90]
mov byte [eax + 0x14], 0
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x5c], 0
mov edx, dword [esp + 0x90]
mov byte [edx + 0x17], 0
mov eax, dword [esp + 0x98]
test eax, eax
je 0x4b5de3
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x58], eax
jmp case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
mov dword [ecx + 0x58], 0
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x48]
mov dword [ebx], ecx
mov edx, dword [eax + 0x4c]
mov dword [ebx + 4], edx
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + eax*4]
add dword [eax + 0x48], 1
adc dword [eax + 0x4c], 0
mov dx, word [ebx + 0x1c]
mov eax, 0xbf04
and dx, ax
or dx, 4
mov word [ebx + 0x1c], dx
jmp case.0x4b2d17.12
mov edx, dword [esi + 0x34]
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x9c], eax
mov ecx, dword [edi + 4]
mov edx, dword [edx + ecx*4]
mov dword [esp + 0x98], edx
cmp dword [edx], eax
je 0x4b6123
mov dword [esp + 0xa0], eax
cmp byte [edx + 0x13], al
jne 0x4b5ffe
mov eax, dword [edx]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x90], ecx
mov eax, dword [eax + 0x1c]
mov ebx, ecx
or ebx, eax
mov dword [esp + 0x94], eax
jne 0x4b5f31
mov eax, dword [edx]
lea edi, [esp + 0x9c]
call fcn.004a3a00
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
cmp dword [esp + 0x9c], eax
je 0x4b5ecb
lea ecx, [ebx + 1]
jmp 0x4b5f1b
mov eax, dword [esp + 0x98]
mov edi, dword [eax]
lea ebx, [esp + 0x90]
call fcn.004a9ea0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
cmp ecx, 0xffffffff
jne 0x4b5f15
cmp eax, 0x7fffffff
jne 0x4b5f15
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x13], 1
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
jmp 0x4b5f29
add ecx, 1
adc eax, 0
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ecx
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
mov edi, dword [edi + 0xc]
test edi, edi
je 0x4b5fd1
mov eax, dword [esi + 0x4c]
lea edx, [edi + edi*4]
lea eax, [eax + edx*8]
mov dword [esp + 0xa4], eax
call fcn.00491400
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x4b5f6e
cmp ecx, 0x7fffffff
je 0x4b7f3a
mov esi, dword [esp + 0x98]
cmp byte [esi + 0x13], 0
jne 0x4b7f3a
mov esi, dword [esp + 0x94]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x4b5fa9
jl 0x4b5f9b
cmp dword [esp + 0x90], eax
jae 0x4b5fa9
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x90]
mov dword [edx], ecx
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x94]
mov dword [eax + 4], edx
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
cmp eax, 0x7fffffff
jg 0x4b5fe7
jl 0x4b5fdf
cmp ecx, 0xffffffff
jae 0x4b5fe7
add ecx, 1
adc eax, 0
jmp 0x4b5feb
xor ecx, ecx
xor eax, eax
push eax
push ecx
mov ecx, dword [esp + 0xa0]
mov esi, dword [ecx]
call fcn.0047bbc0
add esp, 8
mov edx, dword [esp + 0x98]
cmp byte [edx + 0x13], 0
je 0x4b60f7
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x90], ecx
mov edx, dword [eax + 0x34]
xor ecx, ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0xa0], ecx
xor esi, esi
cmp ecx, esi
jne 0x4b6066
mov edx, dword [esp + 0x90]
mov eax, edx
and eax, 0xffffff
xor ecx, ecx
cmp eax, edx
jne 0x4b6066
cmp ecx, dword [esp + 0x94]
jne 0x4b6066
add edx, 1
adc dword [esp + 0x94], esi
mov dword [esp + 0x90], edx
jmp 0x4b6094
lea eax, [esp + 0x90]
push eax
push 8
call fcn.00482160
add esp, 8
cmp dword [esp + 0xa0], 5
jge 0x4b6094
and dword [esp + 0x90], 0xffffff
mov dword [esp + 0x94], esi
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x9c]
push esi
push edx
mov edx, dword [ecx]
push eax
push esi
push edx
call fcn.004a3a40
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
inc ecx
add esp, 0x18
cmp ecx, 0x64
mov dword [esp + 0x44], eax
mov dword [esp + 0xa0], ecx
jge 0x4b60eb
cmp eax, esi
jne 0x4b60f7
cmp edx, esi
je 0x4b6032
cmp eax, esi
jne 0x4b60f7
cmp edx, esi
je 0x4b7f3a
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
mov byte [eax + 0x11], 0
mov ecx, dword [esp + 0x98]
mov byte [ecx + 0x17], 0
mov edx, dword [esp + 0x98]
mov dword [edx + 0x5c], 0
mov ax, word [ebx + 0x1c]
mov ecx, 0xbf04
and ax, cx
or ax, 4
mov word [ebx + 0x1c], ax
mov edx, dword [esp + 0x90]
mov dword [ebx], edx
mov eax, dword [esp + 0x94]
mov dword [ebx + 4], eax
jmp case.0x4b2d17.12
mov ecx, dword [edi + 8]
mov eax, dword [esi + 0x4c]
mov ebx, dword [esi + 0x34]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov dword [esp + 0x90], edx
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov dword [esp + 0x94], eax
mov ecx, dword [edi + 4]
mov ecx, dword [ebx + ecx*4]
mov dword [esp + 0xa0], ecx
mov ebx, dword [eax]
mov dword [esp + 0x98], ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x9c], ebx
test byte [edi + 3], 1
je 0x4b619e
inc dword [esi + 0x74]
test byte [edi + 3], 2
je 0x4b61c1
mov edx, dword [eax]
mov ecx, dword [esp + 0x48]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x34], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x90]
xor ebx, ebx
test byte [edx + 0x1c], 1
je 0x4b61e4
mov dword [edx + 0x14], ebx
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x18], ebx
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x90]
cmp byte [ecx + 0x15], 0
je 0x4b6329
cmp byte [ecx + 0x16], 0
jne 0x4b620e
mov edx, dword [ecx + 0x30]
mov eax, dword [esp + 0x48]
push edx
push eax
call fcn.00477390
mov ecx, dword [esp + 0xa8]
add esp, 8
xor ebx, ebx
mov edx, dword [esp + 0x98]
mov dword [ecx + 0x38], edx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 0x3c], eax
mov edx, dword [esp + 0x90]
mov eax, dword [edx + 0x18]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xa0]
cmp byte [eax + 0x16], 0
mov ecx, dword [esp + 0x90]
jne 0x4b62dc
mov edx, dword [ecx + 0x14]
cmp edx, dword [ecx + 0x24]
je 0x4b62dc
mov eax, dword [eax + 0x2c]
add eax, 2
push eax
call fcn.00481900
mov ecx, dword [esp + 0xa4]
mov dword [ecx + 0x30], eax
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + 0x30]
add esp, 4
test eax, eax
je 0x4b3206
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [ecx + 0x14]
push edx
push eax
call fcn.00503f50
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x2c]
mov esi, dword [esp + 0x4c]
mov byte [ecx + edx], 0
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x2c]
mov byte [ecx + edx + 1], 0
mov ecx, dword [esp + 0xac]
add esp, 0xc
xor ebx, ebx
mov byte [ecx + 0x14], bl
jmp 0x4b63be
mov ecx, dword [ecx + 0x14]
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0xa0]
cmp byte [edx + 0x16], 0
jne 0x4b6319
mov eax, dword [esp + 0x90]
mov ecx, 0xfbff
and word [eax + 0x1c], cx
mov eax, dword [esp + 0x90]
mov edx, 0x1000
or word [eax + 0x1c], dx
mov eax, dword [esp + 0x90]
mov dword [eax + 0x24], ebx
mov ecx, dword [esp + 0xa0]
mov byte [ecx + 0x14], 0
jmp 0x4b63be
test byte [edi + 3], 0x10
je 0x4b633b
mov eax, dword [ecx + 0x58]
mov dword [esp + 0xa8], eax
jmp 0x4b6342
mov dword [esp + 0xa8], ebx
mov eax, 0x4000
test word [edx + 0x1c], ax
je 0x4b6358
mov edx, dword [edx]
mov dword [esp + 0xa4], edx
jmp 0x4b635f
mov dword [esp + 0xa4], ebx
mov esi, dword [ecx]
push 0
push 0
call fcn.0047bbc0
movzx eax, byte [edi + 3]
mov ecx, dword [esp + 0xac]
and eax, 8
push eax
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
push ecx
mov ecx, dword [esp + 0xac]
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xb8]
push ecx
mov ecx, dword [eax]
mov eax, dword [esp + 0xc4]
push edx
push 0
push ecx
call fcn.004aeb60
mov esi, dword [esp + 0x68]
add esp, 0x28
mov dword [esp + 0x44], eax
xor ebx, ebx
mov edx, dword [esp + 0xa0]
mov byte [edx + 0x11], 0
mov eax, dword [esp + 0xa0]
mov byte [eax + 0x17], 0
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 0x5c], ebx
cmp dword [esp + 0x44], ebx
jne 0x4b7e58
mov edx, dword [esp + 0x48]
cmp dword [edx + 0xb4], ebx
je 0x4b7e58
cmp dword [edi + 0x10], ebx
je 0x4b7e58
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 8]
shl edx, 4
mov edx, dword [edx + eax]
mov dword [esp + 0xac], edx
mov ebx, dword [edi + 0x10]
mov dword [esp + 0xb0], ebx
mov al, byte [edi + 3]
mov edi, dword [esp + 0x9c]
and al, 4
movzx eax, al
push edi
mov edi, dword [esp + 0x9c]
neg eax
sbb eax, eax
push edi
and eax, 5
add eax, 0x12
push ebx
push edx
mov dword [esp + 0xc4], eax
mov edx, dword [ecx + 0xb0]
push eax
mov eax, dword [ecx + 0xb4]
push edx
call eax
add esp, 0x18
jmp case.0x4b2d17.12
mov edx, dword [esi + 0x34]
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov ecx, dword [edi + 4]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x98], esi
cmp dword [ecx + 0xb4], eax
je 0x4b64b1
cmp dword [edi + 0x10], eax
je 0x4b64b1
mov edx, dword [esi + 8]
mov dword [esp + 0x90], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x94], eax
call fcn.004aa690
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov ecx, dword [esp + 0x98]
mov esi, dword [ecx]
push eax
push eax
call fcn.0047bbc0
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx]
add esp, 8
call fcn.004aed40
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x44], eax
mov dword [ecx + 0x5c], 0
test eax, eax
jne 0x4b6541
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + 0xb4]
test ecx, ecx
je 0x4b6541
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4b6541
mov esi, dword [esp + 0x94]
push esi
mov esi, dword [esp + 0x94]
push esi
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xb0]
push eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 4]
shl eax, 4
mov eax, dword [eax + esi]
push eax
push 9
push edx
call ecx
add esp, 0x18
test byte [edi + 8], 1
je 0x4b7e58
mov eax, dword [esp + 0x40]
inc dword [eax + 0x74]
mov esi, eax
jmp case.0x4b2d17.12
cmp dword [edi + 4], 0
je 0x4b656c
mov eax, dword [esi + 0x74]
mov ecx, dword [esp + 0x48]
add dword [ecx + 0x40], eax
mov dword [ecx + 0x3c], eax
mov dword [esi + 0x74], 0
jmp case.0x4b2d17.12
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x4c]
mov eax, dword [eax + 0x34]
lea ecx, [edx + ecx*8]
mov edx, dword [edi + 4]
mov esi, dword [eax + edx*4]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x90], esi
mov ecx, dword [esi]
mov dword [esp + 0x94], ecx
call fcn.004aa690
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
cmp byte [edx + 0x19], al
je 0x4b6608
lea ebx, [esp + 0xa0]
call fcn.004a9ea0
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0xa4]
cdq
cmp ecx, edx
jg 0x4b38e5
mov ecx, dword [esp + 0xa0]
jl 0x4b65fd
cmp ecx, eax
ja 0x4b38e5
mov eax, ecx
mov dword [esp + 0x98], eax
jmp 0x4b662c
lea edx, [esp + 0x98]
push edx
call fcn.004a9f20
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x4c]
add esp, 4
cmp eax, dword [ecx + 0x48]
ja 0x4b38e5
mov ebx, dword [esp + 0x54]
push 0
call fcn.004840e0
add esp, 4
test eax, eax
jne 0x4b3206
mov edx, dword [esp + 0x98]
mov esi, ebx
mov ax, word [esi + 0x1c]
mov ecx, 0xbf10
and ax, cx
or ax, 0x10
mov dword [esi + 0x18], edx
mov word [esi + 0x1c], ax
mov edx, dword [esp + 0x90]
cmp byte [edx + 0x19], 0
je 0x4b6699
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x98]
mov edi, dword [esp + 0x94]
push eax
push ecx
push 0
call fcn.004a9fa0
add esp, 0xc
mov dword [esp + 0x44], eax
mov byte [esi + 0x1f], 1
jmp 0x4b7e58
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x94]
push edx
push eax
push 0
push ecx
call fcn.004aa020
add esp, 0x10
mov dword [esp + 0x44], eax
mov byte [esi + 0x1f], 1
jmp 0x4b7e58
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x90], eax
cmp byte [eax + 0x14], 0
jne case.0x4b2d17.12
cmp byte [eax + 0x17], 0
je 0x4b670a
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x9c], edx
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
jmp 0x4b3a0a
cmp byte [eax + 0x15], 0
je 0x4b6736
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 0x3c]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x9c], edx
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
jmp 0x4b3a0a
mov ecx, dword [eax + 0x50]
test ecx, ecx
je 0x4b67a2
mov ecx, dword [ecx]
mov dword [esp + 0xa0], ecx
mov ecx, dword [ecx]
mov dword [esp + 0xa4], ecx
mov eax, dword [eax + 0x50]
mov ecx, dword [ecx + 0x30]
lea edx, [esp + 0x98]
push edx
push eax
call ecx
mov edx, dword [esi + 0x68]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
push edx
push eax
call fcn.00477390
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + 8]
mov dword [esi + 0x68], ecx
mov dword [eax + 8], 0
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x64]
mov dword [eax], ecx
mov edx, dword [esp + 0xac]
add esp, 0x10
jmp 0x4b3a0a
mov esi, eax
call fcn.004aa690
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov eax, dword [esp + 0x90]
cmp byte [eax + 0x11], 0
je 0x4b67ea
mov edx, dword [eax + 8]
mov dword [esp + 0x98], edx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x54]
mov ecx, edx
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
jmp 0x4b3a0a
mov edi, dword [eax]
lea ebx, [esp + 0x98]
call fcn.004a9ea0
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x54]
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
jmp 0x4b3a0a
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x90], eax
mov byte [eax + 0x14], 1
mov edx, dword [esp + 0x90]
mov byte [edx + 0x11], 0
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
test eax, eax
je case.0x4b2d17.12
mov esi, eax
call fcn.0047ad40
jmp 0x4b7e58
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x34]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x90], ecx
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
test eax, eax
jne 0x4b6877
mov dword [esp + 0x98], 1
jmp 0x4b6896
lea edi, [esp + 0x98]
call fcn.004a3a00
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x44], eax
mov al, byte [esp + 0x98]
mov byte [ecx + 0x14], al
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x17], 0
mov edx, dword [esp + 0x90]
mov byte [edx + 0x11], 0
mov eax, dword [esp + 0x90]
mov dword [eax + 0x5c], 0
mov edi, dword [edi + 8]
test edi, edi
jle case.0x4b2d17.12
cmp dword [esp + 0x98], 0
je case.0x4b2d17.12
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
inc dword [esi + 0xbc]
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x34]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x90], ecx
mov eax, dword [ecx]
mov dword [esp + 0x94], eax
test eax, eax
je 0x4b6964
lea edi, [esp + 0x98]
call fcn.004a39d0
cmp dword [esp + 0x98], 0
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x44], eax
sete al
mov byte [ecx + 0x12], al
mov edx, dword [esp + 0x90]
mov byte [edx + 0x17], 0
mov eax, dword [esp + 0x90]
mov dword [eax + 0x5c], 0
mov ecx, dword [esp + 0x90]
mov byte [ecx + 0x11], 0
mov ecx, dword [esp + 0x90]
jmp 0x4b696f
mov dword [esp + 0x98], 1
mov dl, byte [esp + 0x98]
mov byte [ecx + 0x14], dl
cmp dword [esp + 0x98], 0
je case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0xd0]
test ecx, ecx
jne 0x4b7f9e
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x90], eax
test eax, eax
je case.0x4b2d17.12
mov ecx, dword [eax]
mov dword [esp + 0x94], ecx
test ecx, ecx
jne 0x4b69d4
mov byte [eax + 0x14], 1
jmp case.0x4b2d17.12
mov dword [esp + 0x98], 1
cmp byte [edi], 0x6a
jne 0x4b69f4
lea edx, [esp + 0x98]
push edx
push ecx
call fcn.004aa060
jmp 0x4b6a02
lea eax, [esp + 0x98]
push eax
push ecx
call fcn.004aa1f0
mov ecx, dword [esp + 0x98]
mov dl, byte [esp + 0xa0]
mov byte [ecx + 0x14], dl
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x98]
add esp, 8
mov dword [eax + 0x5c], 0
cmp dword [esp + 0x98], 0
jne 0x4b6a52
mov eax, dword [edi + 8]
dec eax
mov dword [esp + 0x50], eax
mov al, byte [edi + 3]
test al, al
je 0x4b6a52
movzx ecx, al
inc dword [esi + ecx*4 + 0xb4]
lea eax, [esi + ecx*4 + 0xb4]
mov edx, dword [esp + 0x90]
mov byte [edx + 0x11], 0
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x90], edx
mov ecx, dword [edx]
mov dword [esp + 0x94], ecx
test ecx, ecx
je case.0x4b2d17.12
mov ebx, dword [esp + 0x5c]
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x4b6ab3
mov eax, ebx
call fcn.00484210
mov dword [esp + 0x44], eax
test eax, eax
jne case.0x4b2d17.12
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x5c]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x98], eax
mov ebx, dword [ebx + 0x14]
mov dword [esp + 0x9c], ebx
test byte [edi + 3], 0x10
je 0x4b6ad6
mov ebx, dword [edx + 0x58]
jmp 0x4b6ad8
xor ebx, ebx
mov edx, dword [edi + 0xc]
push edx
push 0
push 0
cdq
push 0x558728
push edx
push eax
mov eax, dword [esp + 0xb4]
push eax
push ecx
mov eax, ebx
call fcn.004aeb60
mov ecx, dword [esp + 0xb0]
add esp, 0x20
mov dword [esp + 0x44], eax
mov dword [ecx + 0x5c], 0
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x90], eax
mov ecx, dword [eax]
mov dword [esp + 0x94], ecx
test ecx, ecx
je case.0x4b2d17.12
mov edx, dword [eax + 0x40]
mov dword [esp + 0xa0], edx
mov ax, word [edi + 0xc]
xor edx, edx
mov word [esp + 0xa4], ax
mov word [esp + 0xa6], dx
mov edi, dword [edi + 8]
mov edx, dword [esi + 0x4c]
lea eax, [edi + edi*4]
lea eax, [edx + eax*8]
lea edx, [esp + 0x98]
push edx
push 0
push 0
mov dword [esp + 0xbc], eax
push 0
lea eax, [esp + 0xb0]
push eax
push ecx
call fcn.004a3a40
add esp, 0x18
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b6ba6
cmp dword [esp + 0x98], eax
jne 0x4b6ba6
mov ebx, dword [esp + 0x94]
call fcn.004aed40
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x90]
mov dword [ecx + 0x5c], 0
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x94], eax
mov ecx, dword [eax]
mov dword [esp + 0x90], ecx
test ecx, ecx
je case.0x4b2d17.12
mov esi, eax
call fcn.004aa690
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov ecx, dword [esp + 0x94]
cmp byte [ecx + 0x14], al
jne 0x4b7e58
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x98]
push edx
push eax
mov eax, dword [esp + 0x98]
call fcn.004aa730
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7f42
mov eax, dword [esp + 0x54]
mov cx, word [eax + 0x1c]
mov edx, 0xbf04
and cx, dx
or cx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x98]
mov dword [eax], ecx
mov edx, dword [esp + 0x9c]
mov dword [eax + 4], edx
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x34]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x90], ecx
cmp dword [ecx], 0
je case.0x4b2d17.12
mov edx, dword [ecx + 0x40]
mov dword [esp + 0x98], edx
mov ax, word [edi + 0x10]
mov word [esp + 0x9c], ax
cmp byte [edi + 3], 0
je 0x4b6c99
mov edx, 0xc
mov word [esp + 0x9e], dx
jmp 0x4b6ca6
mov eax, 4
mov word [esp + 0x9e], ax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edx, [eax + edx*8]
lea eax, [esp + 0x94]
mov dword [esp + 0xa8], edx
push eax
lea edx, [esp + 0x9c]
push edx
push ecx
call fcn.004aa840
add esp, 0xc
cmp byte [edi], 0x29
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x94]
jne 0x4b6ce6
neg eax
jmp 0x4b6ce7
inc eax
mov dword [esp + 0x94], eax
test eax, eax
jle case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [esp + 0x48]
xor ecx, ecx
mov dword [esp + 0x94], ecx
mov eax, dword [eax + 0x84]
mov dword [esp + 0x98], eax
test eax, eax
je 0x4b6d62
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x4b6d3e
cmp byte [eax + 0x70], 2
jae 0x4b6d3e
cmp dword [eax + 0x60], 0
jl 0x4b6d3e
inc ecx
mov dword [esp + 0x94], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x98], eax
test eax, eax
jne 0x4b6d21
cmp ecx, 1
jle 0x4b6d62
mov dword [esp + 0x44], 6
mov byte [esi + 0x38], 2
jmp case.0x4b2d17.12
mov eax, dword [edi + 0xc]
mov dword [esp + 0x9c], eax
mov edx, dword [edi + 4]
lea ecx, [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.004af210
mov ecx, eax
mov ax, word [ebx + 0x1c]
mov edx, 0xbf04
and ax, dx
or ax, 4
mov word [ebx + 0x1c], ax
mov eax, dword [esp + 0x98]
cdq
add esp, 8
mov dword [esp + 0x44], ecx
mov dword [ebx], eax
mov dword [ebx + 4], edx
test ecx, ecx
jne case.0x4b2d17.12
mov edx, dword [esp + 0x90]
test edx, edx
je case.0x4b2d17.12
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x48]
mov edi, dword [edi + 4]
shl esi, 4
add esi, dword [eax + 8]
call fcn.0047df60
jmp 0x4b7e58
mov dword [esp + 0x90], 0
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x90]
and ecx, edx
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [edi + 8]
push eax
mov eax, dword [edx + 8]
shl ecx, 4
mov ebx, dword [ecx + eax + 4]
call fcn.004aef70
add esp, 8
cmp dword [edi + 0xc], 0
mov dword [esp + 0x44], eax
je case.0x4b2d17.12
mov eax, dword [esp + 0x90]
add dword [esi + 0x74], eax
mov edi, dword [edi + 0xc]
test edi, edi
jle case.0x4b2d17.12
mov edx, dword [esi + 0x4c]
lea ecx, [edi + edi*4]
lea ecx, [edx + ecx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x4b2d17.12
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x90], 0
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [ecx + 8]
xor ecx, ecx
mov dword [esp + 0x98], eax
cmp byte [edi], 0x35
lea edx, [esp + 0x90]
setne cl
dec ecx
and ecx, 3
add ecx, 2
push ecx
mov dword [esp + 0x98], ecx
mov eax, dword [eax + 4]
push edx
call fcn.004a4f30
add esp, 8
jmp 0x4b511c
mov edx, dword [edi + 4]
mov ebx, dword [esp + 0x48]
push ebx
mov dword [esp + 0x94], edx
call fcn.0047aa10
mov eax, dword [esp + 0x94]
add esp, 4
cmp dword [edi + 8], 0
jne 0x4b6ee2
mov edx, dword [ebx + 8]
mov ecx, eax
shl ecx, 4
mov ecx, dword [ecx + edx + 0xc]
test byte [ecx + 0x3a], 1
je 0x4b6f9f
mov ecx, str.sqlite_temp_master
cmp eax, 1
je 0x4b6ef1
mov ecx, str.sqlite_master
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], ebx
mov edx, dword [edi + 4]
mov dword [esp + 0xa0], edx
add esi, 0x68
mov dword [esp + 0xa4], esi
mov edx, dword [edi + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
mov edi, ebx
call fcn.004891e0
add esp, 0x10
mov dword [esp + 0x98], eax
test eax, eax
jne 0x4b6f46
mov dword [esp + 0x44], 7
jmp 0x4b6f9f
push 0
lea eax, [esp + 0xa0]
push eax
mov esi, ebx
mov byte [esi + 0x78], 1
mov ecx, dword [esp + 0xa0]
push fcn.00495180
push ecx
push esi
mov dword [esp + 0xbc], 0
call fcn.004b8520
add esp, 0x14
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b6f8a
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x98]
push eax
push esi
call fcn.00477390
add esp, 8
mov byte [esi + 0x78], 0
push ebx
call fcn.0047aaf0
add esp, 4
cmp dword [esp + 0x44], 7
je 0x4b3206
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
call fcn.0048b940
mov dword [esp + 0x44], eax
jmp case.0x4b2d17.12
mov ecx, dword [esp + 0x48]
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [edi + 0x10]
call fcn.00486240
add esp, 4
jmp case.0x4b2d17.12
mov edx, dword [esp + 0x48]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
push edx
call fcn.00485db0
add esp, 4
jmp case.0x4b2d17.12
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edi, dword [edi + 0x10]
push eax
mov eax, dword [ecx + 4]
call fcn.00487050
add esp, 4
jmp 0x4b7e58
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x48]
lea ecx, [eax*4 + 4]
mov dword [esp + 0x90], eax
call fcn.00481d20
mov dword [esp + 0x94], eax
test eax, eax
je 0x4b3206
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x40]
mov ebx, dword [edx + 0x4c]
lea ecx, [ecx + ecx*4]
lea edx, [ebx + ecx*8]
mov dword [esp + 0xa4], edx
mov ecx, dword [edi + 4]
lea ecx, [ecx + ecx*4]
lea ebx, [ebx + ecx*8]
xor ecx, ecx
cmp dword [esp + 0x90], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x98], ecx
jle 0x4b70bb
jmp 0x4b7080
lea edx, [ecx + ecx*4]
lea esi, [ebx + edx*8]
call fcn.00491300
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x94]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x98]
inc ecx
cmp ecx, dword [esp + 0x90]
mov dword [esp + 0x98], ecx
jl 0x4b7080
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x48]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
push ecx
movzx ecx, byte [edi + 3]
push edx
push eax
mov eax, dword [esi + 8]
shl ecx, 4
mov ecx, dword [ecx + eax + 4]
lea edx, [esp + 0xa8]
call fcn.004a5350
mov ecx, dword [esp + 0xa0]
push ecx
push esi
mov dword [esp + 0xb4], eax
call fcn.00477390
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb8]
cdq
add esp, 0x14
sub dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov esi, ebx
sbb dword [eax + 4], edx
call fcn.0047c0c0
cmp dword [esp + 0x9c], 0
je 0x4b7162
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4b3206
push 1
push eax
mov eax, fcn.00477310
or ecx, 0xffffffff
mov edx, ebx
call fcn.004914e0
add esp, 8
movzx ecx, byte [esp + 0x60]
mov eax, ebx
call fcn.00491230
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x4c]
lea edx, [eax + eax*4]
lea eax, [esi + edx*8]
mov dword [esp + 0x90], eax
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x94], ecx
test byte [eax + 0x1c], 0x20
jne 0x4b71bb
mov edi, eax
call fcn.004842c0
mov eax, dword [esp + 0x90]
test byte [eax + 0x1c], 0x20
je 0x4b3206
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
mov edi, dword [eax]
push edx
push ecx
call fcn.00482cb0
add esp, 8
jmp 0x4b7e58
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0xd0]
test eax, eax
jne 0x4b7f9e
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
lea ecx, [esi + ecx*8]
mov dword [esp + 0x90], ecx
test byte [ecx + 0x1c], 0x20
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea ebx, [esi + edx*8]
mov dword [esp + 0x54], ebx
je 0x4b7241
mov eax, dword [ecx]
lea esi, [esp + 0x98]
call fcn.00479e10
test eax, eax
je 0x4b723a
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
push eax
push ecx
mov esi, ebx
call fcn.0047c0f0
add esp, 8
jmp 0x4b7e58
mov ecx, dword [esp + 0x90]
mov esi, ecx
call fcn.0047c0c0
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp 0x4b7e58
mov eax, dword [edi + 0x10]
mov dword [esp + 0x90], eax
test byte [ecx + 0x1c], 0x20
jne 0x4b7289
mov edi, dword [esp + 0x4c]
call fcn.004842c0
mov edx, edi
test byte [edx + 0x1c], 0x20
je 0x4b3206
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x58]
test eax, eax
je 0x4b72db
jl 0x4b7294
and eax, 0xf
jmp 0x4b7299
mov eax, 0xff
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
mov edx, dword [esp + 0x50]
mov bl, al
mov eax, dword [edx]
push ecx
call fcn.00479e90
add esp, 8
mov dword [esp + 0x94], eax
test eax, eax
je 0x4b72cc
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [esp + 0x90]
test eax, eax
jl case.0x4b2d17.12
mov eax, dword [esp + 0x64]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov edi, dword [eax]
push ecx
push edx
call fcn.00482cb0
add esp, 8
jmp 0x4b7e58
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x58]
lea ecx, [eax + 1]
mov dword [esp + 0x90], eax
mov dword [esi + 0x54], ecx
jl 0x4b733b
mov edx, dword [esp + 0x40]
mov edi, dword [edx + 0x5c]
mov esi, dword [esp + 0x48]
inc eax
shl eax, 4
mov dword [edx + 0x58], ecx
call fcn.00481e40
mov ecx, dword [esp + 0x40]
mov dword [ecx + 0x5c], eax
test eax, eax
je 0x4b3206
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
shl eax, 4
add eax, dword [ecx + 0x5c]
mov dword [esp + 0x94], eax
mov esi, dword [edx + 0x30]
mov dword [eax], esi
mov edx, dword [edx + 0x34]
mov eax, dword [esp + 0x94]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 0x74]
mov edx, dword [esp + 0x94]
mov dword [edx + 8], ecx
jmp 0x4b7e58
dec dword [esi + 0x54]
mov eax, dword [esi + 0x54]
mov ecx, dword [esp + 0x48]
shl eax, 4
add eax, dword [esi + 0x5c]
mov dword [esp + 0x90], eax
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x34], eax
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + 8]
mov dword [esi + 0x74], edx
jmp case.0x4b2d17.12
mov ebx, dword [esp + 0x4c]
mov eax, ebx
call fcn.00491400
mov edi, dword [esp + 0x5c]
mov eax, edi
call fcn.00491400
mov ecx, dword [edi]
mov edi, dword [edi + 4]
mov eax, dword [ebx + 4]
cmp eax, edi
jg case.0x4b2d17.12
jl 0x4b73dc
mov edx, ebx
mov eax, dword [edx]
cmp eax, ecx
jae case.0x4b2d17.12
mov eax, dword [esp + 0x4c]
mov dword [eax], ecx
mov dword [eax + 4], edi
jmp case.0x4b2d17.12
cmp dword [ecx + 4], 0
jl case.0x4b2d17.12
jg 0x4b73ff
cmp dword [ecx], 0
jbe case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
cmp dword [ecx + 4], 0
jg case.0x4b2d17.12
jl 0x4b7421
cmp dword [ecx], 0
jae case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jne case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
movzx ecx, byte [edi + 3]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x90], ecx
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x9c], eax
xor eax, eax
mov dword [esp + 0xe0], edx
mov dword [esp + 0x94], eax
test ecx, ecx
jle 0x4b74b8
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xe0]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x9c]
call fcn.0047cfa0
mov eax, dword [esp + 0x94]
add dword [esp + 0x9c], 0x28
inc eax
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
jl 0x4b747b
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x40]
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x4c]
mov edx, dword [esp + 0x48]
lea eax, [eax + ecx*8]
xor esi, esi
mov dword [esp + 0x98], eax
mov dword [esp + 0xd0], eax
inc dword [eax + 0x18]
mov eax, dword [esp + 0xa0]
mov ecx, 1
mov word [esp + 0xc4], cx
mov dword [esp + 0xbc], esi
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xb8], edx
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
test byte [eax + 3], 8
je 0x4b7537
mov ecx, dword [edi - 4]
mov dword [esp + 0xd8], ecx
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x90]
mov eax, dword [eax + 0x10]
push edx
push ecx
lea edx, [esp + 0xa8]
push edx
call eax
add esp, 0xc
cmp dword [esp + 0xd4], esi
je 0x4b7592
mov bl, 1
lea edi, [esp + 0xa8]
call fcn.00491690
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
push 0x54dc64
add esi, 0x68
call fcn.0048fb40
mov ecx, dword [esp + 0xdc]
add esp, 8
mov dword [esp + 0x44], ecx
lea edx, [esp + 0xa8]
push edx
call fcn.0047bfa0
add esp, 4
jmp 0x4b7e58
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x90], ecx
mov eax, dword [edi + 0x10]
call fcn.0047bed0
mov dword [esp + 0x44], eax
test eax, eax
je 0x4b75f1
mov edi, dword [esp + 0x90]
mov bl, 1
call fcn.00491690
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
push 0x54dc64
add esi, 0x68
call fcn.0048fb40
add esp, 8
movzx ecx, byte [esp + 0x60]
mov eax, dword [esp + 0x90]
call fcn.00491230
mov ecx, dword [esp + 0x90]
call fcn.0047c190
test eax, eax
jne 0x4b38e5
jmp 0x4b7e58
mov edx, dword [esp + 0x48]
push edx
lea ecx, [esi + 0x68]
call fcn.004b1f30
add esp, 4
mov dword [esp + 0x44], eax
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
mov dword [esp + 0x94], eax
call fcn.004a3200
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, 0x65
jne case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x44], 0
jmp case.0x4b2d17.12
cmp dword [edi + 4], 0
jne 0x4b768b
mov eax, dword [esp + 0x48]
call fcn.0047c930
jmp case.0x4b2d17.12
mov byte [esi + 0x6e], 1
jmp case.0x4b2d17.12
mov eax, dword [edi + 4]
mov dword [esp + 0x90], eax
mov cl, byte [edi + 0xc]
mov byte [esp + 0x94], cl
mov edx, dword [edi + 8]
push edx
mov edx, dword [esp + 0x4c]
mov edx, dword [edx + 8]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.00484070
add esp, 4
mov dword [esp + 0x44], eax
cmp al, 6
jne case.0x4b2d17.12
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
push str.database_table_is_locked:__s
add esi, 0x68
call fcn.0048fb40
add esp, 8
jmp 0x4b7e58
mov edi, dword [edi + 0x10]
mov ecx, dword [esp + 0x48]
mov eax, edi
mov dword [esp + 0x90], edi
call fcn.00487310
cmp dword [esp + 0x90], 0
mov dword [esp + 0x44], eax
je case.0x4b2d17.12
mov ecx, dword [esi + 0x68]
mov edx, dword [esp + 0x48]
push ecx
push edx
call fcn.00477390
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 8]
mov dword [esi + 0x68], ecx
add esp, 8
mov dword [eax + 8], 0
jmp case.0x4b2d17.12
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x48]
lea ebx, [esi + 0x68]
push edx
call fcn.0048f3d0
add esp, 4
mov dword [esp + 0x44], eax
jmp case.0x4b2d17.12
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
mov byte [ebx + 0x70], 2
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
call fcn.0047f430
add esp, 4
mov dword [esp + 0x44], eax
mov byte [ebx + 0x70], 0
mov esi, ebx
jmp case.0x4b2d17.12
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x98], eax
mov ecx, dword [eax]
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0xa0], ecx
push eax
mov eax, dword [ecx + 0x18]
call eax
mov ecx, dword [esi + 0x68]
mov edx, dword [esp + 0x50]
push ecx
mov ebx, eax
push edx
mov dword [esp + 0x54], ebx
call fcn.00477390
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
add esp, 0x10
mov dword [esi + 0x68], ecx
mov dword [eax + 8], 0
test ebx, ebx
jne case.0x4b2d17.12
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
push ebx
mov dword [eax], edx
mov ecx, dword [edi + 4]
push 0xffffffffffffffff
push ebx
push ecx
mov eax, esi
call fcn.004b1080
add esp, 0x10
mov dword [esp + 0x90], eax
test eax, eax
je 0x4b783e
mov edx, dword [esp + 0x94]
mov dword [eax + 0x50], edx
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov eax, dword [esp + 0x90]
mov dword [eax + 0x54], edx
jmp case.0x4b2d17.12
mov ecx, dword [esp + 0x48]
mov byte [ecx + 0x1e], 1
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x1c]
push edx
call ecx
add esp, 4
jmp case.0x4b2d17.12
mov eax, dword [edi + 0xc]
mov ebx, dword [esi + 0x34]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
mov esi, dword [esi + 0x24]
lea eax, [eax + edx*8]
mov dword [esp + 0x9c], eax
lea edx, [eax + 0x28]
mov dword [esp + 0xa0], edx
mov ecx, dword [edi + 4]
mov ecx, dword [ebx + ecx*4]
mov dword [esp + 0xac], ecx
mov ecx, dword [ecx + 0x50]
mov dword [esp + 0xa4], ecx
mov ecx, dword [ecx]
mov dword [esp + 0xa8], ecx
mov ebx, dword [ecx]
mov dword [esp + 0x98], ebx
mov ebx, dword [edx]
mov dword [esp + 0x90], ebx
mov eax, dword [eax]
mov dword [esp + 0x94], eax
xor eax, eax
cmp ebx, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0xb4], eax
jle 0x4b792d
jmp 0x4b78e7
mov edx, dword [esp + 0xa0]
lea ecx, [eax + eax*4 + 5]
lea edx, [edx + ecx*8]
mov ecx, dword [esp + 0xb8]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + edx*4]
call fcn.0047cfa0
mov eax, dword [esp + 0xb4]
inc eax
cmp eax, dword [esp + 0x90]
mov dword [esp + 0xb4], eax
jl 0x4b78e0
mov ecx, dword [esp + 0xa8]
inc dword [ecx + 4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0xac]
mov byte [esi + 0x70], 1
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [eax + 0x20]
push edx
call ecx
mov edx, dword [esi + 0x68]
mov ebx, eax
mov eax, dword [esp + 0x5c]
push edx
push eax
mov dword [esp + 0x60], ebx
mov byte [esi + 0x70], 0
call fcn.00477390
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 8]
mov dword [esi + 0x68], ecx
mov dword [eax + 8], 0
mov eax, dword [esp + 0xc4]
dec dword [eax + 4]
mov ecx, eax
add eax, 4
add esp, 0x1c
cmp dword [eax], 0
jne 0x4b79b6
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push ecx
call eax
add esp, 4
test ebx, ebx
jne 0x4b79d8
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x98]
mov eax, dword [edx + 0x28]
push ecx
call eax
add esp, 4
mov dword [esp + 0xb0], eax
cmp dword [esp + 0xb0], 0
je 0x4b79ea
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0xac]
mov byte [ecx + 0x14], 0
jmp case.0x4b2d17.12
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + edx*4]
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
mov dword [esp + 0x98], eax
cmp byte [ecx + 0x14], 0
mov dword [esp + 0x68], ecx
je 0x4b7a27
mov esi, eax
jmp 0x4b7e53
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x50]
mov eax, dword [edx]
push 0x40
mov dword [esp + 0x94], eax
mov eax, dword [eax]
lea ecx, [esp + 0xa4]
push 0
push ecx
mov dword [esp + 0xa0], eax
call fcn.00502e80
mov ebx, dword [esp + 0xa4]
lea eax, [esp + 0xb4]
call fcn.0047c210
mov edx, dword [esp + 0xd0]
and edx, 0xbf01
or edx, 1
mov word [esp + 0xd0], dx
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x74]
push eax
mov eax, dword [edx + 0x50]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
mov eax, dword [esi + 0x68]
push eax
push ecx
call fcn.00477390
mov eax, dword [esp + 0xb0]
mov edx, dword [eax + 8]
mov dword [esi + 0x68], edx
mov dword [eax + 8], 0
mov eax, dword [esp + 0xf4]
add esp, 0x20
test eax, eax
je 0x4b7ad4
mov dword [esp + 0x44], eax
movzx ecx, byte [esp + 0x60]
lea eax, [esp + 0xa8]
call fcn.00491230
mov eax, dword [esp + 0x98]
lea ebx, [esp + 0xa8]
call fcn.0047c210
mov ecx, dword [esp + 0x98]
call fcn.0047c190
test eax, eax
jne 0x4b38e5
jmp case.0x4b2d17.12
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x98], 0
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x9c], eax
cmp byte [eax + 0x14], 0
jne case.0x4b2d17.12
mov edx, dword [eax + 0x50]
mov eax, dword [edx]
mov dword [esp + 0x90], eax
mov ecx, dword [eax]
mov dword [esp + 0x94], ecx
inc dword [eax + 4]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
mov byte [esi + 0x70], 1
mov eax, dword [edx + 0x50]
mov edx, dword [ecx + 0x24]
push eax
call edx
mov ecx, dword [esp + 0x4c]
mov ebx, eax
mov eax, dword [esi + 0x68]
push eax
push ecx
mov dword [esp + 0x50], ebx
mov byte [esi + 0x70], 0
call fcn.00477390
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 8]
mov dword [esi + 0x68], edx
mov dword [eax + 8], 0
mov eax, dword [esp + 0x9c]
dec dword [eax + 4]
mov ecx, eax
add eax, 4
add esp, 0xc
cmp dword [eax], 0
jne 0x4b7bb7
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 0x10]
call ecx
add esp, 4
test ebx, ebx
jne 0x4b7bdc
mov edx, dword [esp + 0x9c]
mov eax, dword [edx + 0x50]
mov ecx, dword [esp + 0x94]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
mov dword [esp + 0x98], eax
cmp dword [esp + 0x98], 0
jne case.0x4b2d17.12
mov edi, dword [edi + 8]
dec edi
mov dword [esp + 0x50], edi
jmp case.0x4b2d17.12
mov eax, dword [edi + 0x10]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x90], eax
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0x94], ecx
inc dword [eax + 4]
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov ecx, dword [ecx + 0x14]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x68]
push eax
push ecx
call fcn.00477390
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + 8]
mov dword [esi + 0x68], edx
mov dword [eax + 8], 0
mov eax, dword [esp + 0xa0]
dec dword [eax + 4]
mov ecx, eax
add eax, 4
add esp, 0x10
cmp dword [eax], 0
jne case.0x4b2d17.12
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 0x10]
call ecx
add esp, 4
jmp case.0x4b2d17.12
mov eax, dword [edi + 0x10]
mov dword [esp + 0x90], eax
mov ecx, dword [eax]
mov dword [esp + 0x94], ecx
mov edx, dword [edi + 8]
mov dword [esp + 0x98], edx
cmp dword [ecx + 0x34], 0
je case.0x4b2d17.12
mov ecx, dword [esi + 0x24]
mov ebx, dword [esi + 0x4c]
mov dword [esp + 0xa8], ecx
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x9c], 0
test edx, edx
jle 0x4b7d22
call fcn.0047cfa0
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xac]
inc eax
add ecx, 0x28
cmp eax, dword [esp + 0x98]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x9c], eax
jl 0x4b7cd5
mov eax, dword [esp + 0x90]
inc dword [eax + 4]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0xa0]
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [eax + 0x34]
push edx
call ecx
mov edx, dword [esi + 0x68]
mov ebx, eax
mov eax, dword [esp + 0x58]
push edx
push eax
mov dword [esp + 0x5c], ebx
call fcn.00477390
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 8]
mov dword [esi + 0x68], ecx
mov dword [eax + 8], 0
mov eax, dword [esp + 0xa8]
dec dword [eax + 4]
mov ecx, eax
add eax, 4
add esp, 0x18
cmp dword [eax], 0
jne 0x4b7d9b
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push ecx
call eax
add esp, 4
test ebx, ebx
jne 0x4b7dbc
cmp dword [edi + 4], ebx
je 0x4b7dbc
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x48]
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0xa4]
mov dword [eax + 0x34], edx
inc dword [esi + 0x74]
jmp case.0x4b2d17.12
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x90], edi
mov ecx, dword [eax + 8]
shl edi, 4
mov edx, dword [edi + ecx + 4]
mov eax, dword [edx + 4]
mov edi, dword [eax]
lea ebx, [esp + 0x94]
mov dword [esp + 0x98], edi
call fcn.00483600
mov dword [esp + 0x44], eax
test eax, eax
jne 0x4b7e58
mov ecx, dword [esp + 0x54]
mov edx, 4
mov word [ecx + 0x1c], dx
mov eax, dword [esp + 0x94]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4b7e58
mov edi, dword [edi + 0x10]
test edi, edi
jne 0x4b7e25
mov edi, dword [esi + 0xc0]
mov dword [esp + 0x90], edi
test edi, edi
je case.0x4b2d17.12
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x90]
test eax, eax
je case.0x4b2d17.12
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0x94]
push edi
push edx
call eax
add esp, 8
jmp case.0x4b2d17.12
mov esi, ebx
call fcn.0047c0c0
mov esi, dword [esp + 0x40]
inc dword [esp + 0x50]
cmp dword [esp + 0x44], 0
jne 0x4b3905
mov edi, dword [esp + 0x48]
jmp 0x4b2c74
mov dword [esp + 0x44], 9
jmp 0x4b3905
lea ecx, [esp + 0xa0]
push ecx
call fcn.0047bfa0
add esp, 4
jmp 0x4b3206
mov dword [esp + 0x44], 0x14
jmp 0x4b7f42
mov edx, dword [esp + 0x50]
mov dword [esi + 0x60], edx
mov byte [edi + 0x1c], 0
mov edi, 5
mov dword [esi + 0x64], edi
jmp 0x4b392e
test edi, edi
je 0x4b7eed
mov esi, dword [esp + 0x48]
mov eax, esi
call fcn.004b05e0
mov byte [esi + 0x1c], 1
mov esi, dword [esp + 0x48]
call fcn.004806b0
mov eax, dword [esp + 0x40]
mov edi, dword [eax + 0x64]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x4b392e
mov al, byte [esp + 0x90]
mov edi, dword [esp + 0x48]
push esi
mov byte [edi + 0x1c], al
call fcn.004b0a60
add esp, 4
cmp eax, 5
jne 0x4b7ece
mov ecx, dword [esp + 0x50]
mov dl, 1
sub dl, byte [esp + 0x90]
mov dword [esi + 0x60], ecx
mov byte [edi + 0x1c], dl
mov edi, eax
mov dword [esi + 0x64], edi
jmp 0x4b392e
mov ecx, dword [esp + 0x50]
mov edi, 5
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], edi
jmp 0x4b392e
mov dword [esp + 0x44], 0xd
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 0x1e], 0
je 0x4b7f56
mov dword [esp + 0x44], 7
jmp 0x4b7f64
cmp dword [esp + 0x44], 0xc0a
je 0x4b3905
mov eax, dword [esp + 0x44]
and eax, 0xff
cmp eax, 0x1a
ja 0x4b7f7d
mov eax, dword [eax*4 + 0x54d8d8]
test eax, eax
jne 0x4b7f82
mov eax, str.unknown_error
mov esi, dword [esp + 0x40]
push eax
push 0x54dc64
add esi, 0x68
mov eax, ecx
call fcn.0048fb40
add esp, 8
jmp 0x4b3905
mov eax, 9
mov dword [esp + 0x44], eax
mov dword [esi + 0x64], eax
mov eax, dword [str.interrupted]
test eax, eax
jne 0x4b7fb8
mov eax, str.unknown_error
mov esi, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x4c]
push 0x54dc64
add esi, 0x68
call fcn.0048fb40
add esp, 8
jmp 0x4b3905