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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffebc
xor edi, edi
mov dword [esp], eax
xor eax, eax
mov dword [esp + 4], eax
mov edx, dword [esp]
mov ecx, dword [edx + 4]
mov dword [esp + 8], ecx
mov eax, dword [esp]
mov ebx, dword [eax]
mov byte [esp + 0xc], 0
mov eax, dword [ebx + 8]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4d]
mov byte [esp + 0xd], cl
xor ecx, ecx
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [esp]
mov edx, dword [eax + 8]
xor eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
xor edx, edx
mov dword [esp + 0x2c], edx
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0x34], ecx
mov eax, dword [esp]
call fcn.004c7f8c
mov edx, dword [esp]
cmp dword [edx + 0x5c], 7
jne 0x4ca318
jmp 0x4cfb4b
mov ecx, dword [esp]
xor eax, eax
mov dword [ecx + 0x5c], eax
mov edx, dword [esp]
xor eax, eax
mov dword [edx + 0x14], eax
xor edx, edx
mov dword [ebx + 0x1b4], edx
cmp dword [ebx + 0xe0], 0
jne 0x4cfba9
cmp dword [ebx + 0x114], 0
setne cl
and ecx, 1
test edi, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x58]
mov dword [esp + 4], eax
jne 0x4cfab2
cmp byte [ebx + 0x1e], 0
jne 0x4cfb4b
mov esi, dword [esp + 4]
shl esi, 2
lea esi, [esi + esi*4]
add esi, dword [esp + 8]
cmp dword [esp + 0x10], 0
je 0x4ca3af
mov eax, dword [ebx + 0x11c]
cmp eax, dword [esp + 0x14]
jne 0x4ca3ab
mov eax, dword [ebx + 0x118]
call dword [ebx + 0x114]
test eax, eax
je 0x4ca3a5
mov edi, 9
jmp 0x4cfab2
xor eax, eax
mov dword [esp + 0x14], eax
inc dword [esp + 0x14]
test byte [esi + 2], 2
je 0x4ca3d9
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
call fcn.004d9408
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 4
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x91
ja case.0x4ca3e9.0
jmp dword [ecx*4 + 0x4ca3f0]
cmp dword [ebx + 0xe0], 0
jne 0x4cfba9
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov word [ebp + 0x1c], 4
mov eax, dword [esp + 4]
cdq
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov word [ebp + 0x1c], 4
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 4]
cdq
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je case.0x4ca3e9.0
cmp dword [esi + 4], 0
jne 0x4ca787
mov edx, dword [esp]
cmp dword [edx + 0xa8], 0
je 0x4ca787
mov ecx, dword [esp]
mov eax, dword [ecx + 0xa8]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x38]
mov eax, dword [esp]
mov ecx, dword [edx + 0x38]
mov dword [eax + 0xa8], ecx
mov eax, ebx
mov edx, dword [esp]
dec dword [edx + 0xb0]
mov ecx, dword [esp]
mov edx, dword [ecx + 0x6c]
call fcn.004c9cec
mov eax, dword [esp + 0x38]
call fcn.004c8730
mov dword [esp + 4], eax
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x34], edx
cmp dword [esi + 8], 4
jne 0x4ca76e
mov ecx, dword [esp + 4]
mov esi, dword [esp]
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 4], edx
mov ecx, dword [esp]
mov ecx, dword [ecx + 4]
mov dword [esp + 8], ecx
mov eax, dword [esp]
mov edx, dword [eax + 8]
mov dword [esp + 0x18], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [esi + 4]
mov dword [ecx + 0x5c], eax
mov edx, dword [esp]
mov al, byte [esi + 8]
mov byte [edx + 0x60], al
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov dword [edx + 0x58], ecx
cmp dword [esi + 0x10], 0
je 0x4ca7ea
mov ecx, dword [esi + 0x10]
push ecx
push 0x5d9170
push ebx
mov eax, dword [esp + 0xc]
add eax, 0x38
push eax
call fcn.004de418
add esp, 0x10
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0xa0]
push eax
mov edx, dword [esp + 0xc]
push edx
push str.abort_at__d_in___s_:__s
mov ecx, dword [esi + 4]
push ecx
call fcn.004dd9c8
add esp, 0x14
jmp 0x4ca813
mov eax, dword [esp]
cmp dword [eax + 0x5c], 0
je 0x4ca813
mov edx, dword [esp]
mov ecx, dword [edx + 0xa0]
push ecx
mov eax, dword [esp + 8]
push eax
push str.constraint_failed_at__d_in___s_
mov edx, dword [esi + 4]
push edx
call fcn.004dd9c8
add esp, 0x10
mov eax, dword [esp]
call fcn.004c8ddc
mov edi, eax
cmp edi, 5
jne 0x4ca832
mov edi, 5
mov eax, dword [esp]
mov dword [eax + 0x5c], edi
jmp 0x4cfb0e
mov edx, dword [esp]
cmp dword [edx + 0x5c], 0
je 0x4ca845
mov edi, 1
jmp 0x4cfb0e
mov edi, 0x65
jmp 0x4cfb0e
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov edx, dword [eax]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 8
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0xc], ecx
jmp case.0x4ca3e9.0
mov byte [esi], 9
mov eax, dword [esi + 0x10]
call fcn.004d809c
mov dword [esi + 4], eax
xor edx, edx
mov dl, byte [esp + 0xd]
dec edx
je 0x4ca92b
push 1
push 0
or ecx, 0xffffffff
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.004d98e8
mov edi, eax
cmp edi, 0x12
je 0x4cfb2b
xor edx, edx
mov eax, dword [esp + 0x24]
mov dl, byte [esp + 0xd]
call fcn.004d9144
test eax, eax
jne 0x4cfb4b
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x24], eax
mov edx, dword [esp + 0x24]
or word [edx + 0x1c], 0x800
mov ecx, dword [esp + 0x24]
and word [ecx + 0x1c], 0xfbff
cmp byte [esi + 1], 0xff
jne 0x4ca913
mov edx, dword [esi + 0x10]
mov eax, ebx
call fcn.004de094
mov byte [esi + 1], 0xff
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x10], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x18]
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx + 0x48]
jle case.0x4ca3e9.9
jmp 0x4cfb2b
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 0xa02
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 4]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x4ca3e9.0
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 1
jmp case.0x4ca3e9.0
push 0
push 0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.004d98e8
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x4ca3e9.0
mov edx, dword [esi + 4]
mov eax, dword [esp]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [eax + 0x48]
add edx, 0xffffffd8
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.004d9814
test eax, eax
je 0x4ca9c0
jmp 0x4cfb2b
mov ecx, 0x800
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
call fcn.004d9838
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x6c], edx
mov ecx, dword [esi + 4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x74], ecx
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
jmp 0x4caa3d
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x24], eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.004d98b8
mov edx, dword [esp + 0x68]
mov dword [ebp + 0x24], edx
add ebp, 0x28
add dword [esp + 0x24], 0x28
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x6c], 0xffffffff
test ecx, ecx
jne 0x4caa0f
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
mov ecx, 0x1000
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov edx, ebp
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
call fcn.004d9838
mov edx, dword [esp + 0x24]
test byte [edx + 0x1d], 0x10
je case.0x4ca3e9.0
mov eax, dword [esp + 0x24]
call fcn.004d921c
test eax, eax
je case.0x4ca3e9.0
jmp 0x4cfb4b
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
mov ecx, 0x1000
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov edx, ebp
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
call fcn.004d9838
jmp case.0x4ca3e9.0
xor edx, edx
mov eax, dword [esp]
call fcn.004c8d74
mov edi, eax
test eax, eax
je 0x4caaf0
jmp case.0x4ca3e9.0
mov edx, 1
mov eax, dword [esp]
call fcn.004c8c80
mov edi, eax
test edi, edi
je 0x4cab08
jmp case.0x4ca3e9.0
mov eax, dword [esp]
mov ecx, dword [esp]
mov edx, dword [eax + 0x54]
add edx, 2
or edx, 1
mov dword [ecx + 0x54], edx
mov ecx, dword [esi + 4]
mov eax, dword [esp]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [eax + 0x14], ecx
xor eax, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
jmp 0x4cab8b
mov eax, dword [esp + 0x6c]
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x68]
test byte [edx + ecx*8 + 0x1d], 0x10
je 0x4cab61
shl eax, 3
lea eax, [eax + eax*4]
add eax, edx
call fcn.004d921c
test eax, eax
je 0x4cab61
jmp 0x4cfb4b
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.004d92cc
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.004ca07c
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esi + 8]
jl 0x4cab39
cmp byte [ebx + 0x1e], 0
jne 0x4cfb4b
mov eax, dword [esp]
mov ecx, dword [esp + 4]
inc ecx
mov edi, 0x64
mov dword [eax + 0x58], ecx
jmp 0x4cfb0e
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov esi, dword [esp + 0x1c]
or cx, word [esi + 0x1c]
test cl, 1
je 0x4cac02
mov eax, dword [esp + 0x24]
call fcn.004d96ec
jmp case.0x4ca3e9.0
test byte [ebp + 0x1d], 0x40
je 0x4cac11
mov eax, ebp
call fcn.004d9278
jmp 0x4cac13
xor eax, eax
test eax, eax
jne 0x4cfb4b
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x4cac30
mov eax, dword [esp + 0x1c]
call fcn.004d9278
jmp 0x4cac32
xor eax, eax
test eax, eax
jne 0x4cfb4b
test byte [ebp + 0x1c], 0x12
jne 0x4cac56
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.004d931c
test eax, eax
je 0x4cac56
jmp 0x4cfb4b
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1c], 0x12
jne 0x4cac78
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dl, byte [esp + 0xd]
call fcn.004d931c
test eax, eax
je 0x4cac78
jmp 0x4cfb4b
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + 0x18]
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov eax, dword [ebx + 0x48]
cdq
cmp edx, dword [esp + 0x6c]
jne 0x4caca0
cmp eax, dword [esp + 0x68]
jae 0x4caca7
jmp 0x4cfb2b
jge 0x4caca7
jmp 0x4cfb2b
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [ecx + 0x1c]
and cx, 0xbf00
or cx, 2
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov edx, eax
mov eax, dword [esp + 0x24]
add edx, 2
cmp ecx, dword [esp + 0x1c]
sete cl
and ecx, 1
call fcn.004d915c
test eax, eax
je 0x4cace9
jmp 0x4cfb4b
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x1c]
je 0x4cad0d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + 0x18]
mov eax, dword [eax + 4]
call fcn.00478458
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + 0x18]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 4]
call fcn.00478458
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov byte [ecx + eax], 0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov byte [ecx + eax + 1], 0
mov ecx, dword [esp + 0x24]
or word [ecx + 0x1c], 0x200
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004ca188
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
call fcn.004ca188
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
or cx, word [eax + 0x1c]
movzx edx, cx
mov dword [esp + 0x68], edx
test byte [esp + 0x68], 1
jne 0x4cb0e3
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
and cx, word [eax + 0x1c]
movzx edx, cx
and edx, 4
cmp edx, 4
jne 0x4caf4c
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x78], eax
mov dl, byte [esi]
sub dl, 0x56
je 0x4cae1b
dec dl
je 0x4cae39
dec dl
je 0x4cae57
dec dl
je 0x4cae75
jmp 0x4caecc
push dword [esp + 0x70]
push dword [esp + 0x70]
lea eax, [esp + 0x7c]
call fcn.004d8ed0
test eax, eax
jne 0x4caf4c
jmp 0x4caf1c
push dword [esp + 0x70]
push dword [esp + 0x70]
lea eax, [esp + 0x7c]
call fcn.004d8f98
test eax, eax
jne 0x4caf4c
jmp 0x4caf1c
push dword [esp + 0x70]
push dword [esp + 0x70]
lea eax, [esp + 0x7c]
call fcn.004d8ff0
test eax, eax
jne 0x4caf4c
jmp 0x4caf1c
cmp dword [esp + 0x70], 0
jne 0x4cae87
cmp dword [esp + 0x6c], 0
je 0x4cb0e3
cmp dword [esp + 0x70], 0xffffffff
jne 0x4caeaa
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4caeaa
cmp dword [esp + 0x78], 0x80000000
jne 0x4caeaa
cmp dword [esp + 0x74], 0
je 0x4caf4c
push dword [esp + 0x70]
push dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
call fcn.004780c0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
jmp 0x4caf1c
cmp dword [esp + 0x70], 0
jne 0x4caede
cmp dword [esp + 0x6c], 0
je 0x4cb0e3
cmp dword [esp + 0x70], 0xffffffff
jne 0x4caefc
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4caefc
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
push dword [esp + 0x70]
push dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
call fcn.00478154
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x74]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbf00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x4ca3e9.0
mov eax, ebp
call fcn.004d9574
fstp qword [esp + 0x7c]
wait
mov eax, dword [esp + 0x1c]
call fcn.004d9574
fstp qword [esp + 0x84]
wait
mov dl, byte [esi]
sub dl, 0x56
je 0x4caf7e
dec dl
je 0x4caf96
dec dl
je 0x4cafae
dec dl
je 0x4cafc6
jmp 0x4caff7
fld qword [esp + 0x7c]
fadd qword [esp + 0x84]
fstp qword [esp + 0x84]
wait
jmp 0x4cb081
fld qword [esp + 0x7c]
fsubr qword [esp + 0x84]
fstp qword [esp + 0x84]
wait
jmp 0x4cb081
fld qword [esp + 0x7c]
fmul qword [esp + 0x84]
fstp qword [esp + 0x84]
wait
jmp 0x4cb081
fld qword [esp + 0x7c]
fld dword [0x4cfbe4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4cb0e3
fld qword [esp + 0x7c]
fdivr qword [esp + 0x84]
fstp qword [esp + 0x84]
wait
jmp 0x4cb081
fld qword [esp + 0x7c]
call fcn.00478090
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
fld qword [esp + 0x84]
call fcn.00478090
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
cmp dword [esp + 0x70], 0
jne 0x4cb02e
cmp dword [esp + 0x6c], 0
je 0x4cb0e3
cmp dword [esp + 0x70], 0xffffffff
jne 0x4cb04c
cmp dword [esp + 0x6c], 0xffffffff
jne 0x4cb04c
mov dword [esp + 0x6c], 1
mov dword [esp + 0x70], 0
push dword [esp + 0x70]
push dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
call fcn.00478154
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], edx
fild qword [esp + 0x124]
fstp qword [esp + 0x84]
wait
push dword [esp + 0x88]
push dword [esp + 0x88]
call fcn.004d8088
test eax, eax
je 0x4cb09a
jmp 0x4cb0e3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x84]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x88]
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbf00
or ax, 8
mov word [edx + 0x1c], ax
test byte [esp + 0x68], 8
jne case.0x4ca3e9.0
mov eax, dword [esp + 0x24]
call fcn.004d95e0
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x24]
call fcn.004d96ec
jmp case.0x4ca3e9.0
xor edx, edx
mov dl, byte [esi + 3]
mov dword [esp + 0xb0], edx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0xac], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x6c], edx
xor ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x4cb171
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0x6c]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1d], 0x10
je 0x4cb15f
call fcn.004d921c
test eax, eax
je 0x4cb15f
jmp 0x4cfb4b
mov eax, dword [esp + 0x6c]
call fcn.004ca07c
inc dword [esp + 0x68]
add dword [esp + 0x6c], 0x28
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0xb0]
jl 0x4cb139
cmp byte [esi + 1], 0xfb
jne 0x4cb193
mov edx, dword [esi + 0x10]
xor ecx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
jmp 0x4cb1a4
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov dword [esp + 0x70], edx
mov word [esp + 0x94], 1
mov dword [esp + 0x78], ebx
xor ecx, ecx
mov dword [esp + 0x98], ecx
xor eax, eax
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x24]
call fcn.004d98b8
mov cx, word [esp + 0x94]
and cx, 0xbf00
or cx, 1
mov word [esp + 0x94], cx
xor ecx, ecx
mov dword [esp + 0xa4], ecx
mov eax, dword [esp + 0x70]
test byte [eax + 3], 8
je 0x4cb207
mov edx, dword [esi - 4]
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x30], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x34], ecx
lea eax, [esp + 0x70]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
call dword [ebp + 0xc]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x74], 0
je 0x4cb25a
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x74]
call fcn.004c9198
mov ecx, dword [esp + 0x74]
mov dword [esi + 0x10], ecx
mov byte [esi + 1], 0xf9
cmp byte [ebx + 0x1e], 0
je 0x4cb26e
lea eax, [esp + 0x78]
call fcn.004d9468
jmp 0x4cfb4b
cmp dword [esp + 0xa4], 0
je 0x4cb29f
lea eax, [esp + 0x78]
call fcn.004c6660
push eax
push 0x5d9170
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
mov edi, dword [esp + 0xa4]
xor edx, edx
lea eax, [esp + 0x78]
mov dl, byte [esp + 0xd]
call fcn.004d9144
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x24]
call fcn.004d98b8
mov eax, dword [esp + 0x24]
call fcn.004d9814
test eax, eax
je case.0x4ca3e9.0
jmp 0x4cfb2b
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
or cx, word [eax + 0x1c]
test cl, 1
je 0x4cb325
mov eax, dword [esp + 0x24]
call fcn.004d96ec
jmp case.0x4ca3e9.0
mov edx, dword [esp + 0x1c]
push edx
call fcn.004d950c
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
push ebp
call fcn.004d950c
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov cl, byte [esi]
mov byte [esp + 0x80], cl
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x52
jne 0x4cb371
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
and dword [esp + 0x68], eax
and dword [esp + 0x6c], edx
jmp 0x4cb4dc
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x53
jne 0x4cb394
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
or dword [esp + 0x68], eax
or dword [esp + 0x6c], edx
jmp 0x4cb4dc
cmp dword [esp + 0x7c], 0
jne 0x4cb3a6
cmp dword [esp + 0x78], 0
je 0x4cb4dc
cmp dword [esp + 0x7c], 0
jne 0x4cb3b6
cmp dword [esp + 0x78], 0
jae 0x4cb3fa
jmp 0x4cb3b8
jge 0x4cb3fa
mov cl, 0xa9
sub cl, byte [esp + 0x80]
mov byte [esp + 0x80], cl
cmp dword [esp + 0x7c], 0xffffffff
jne 0x4cb3d8
cmp dword [esp + 0x78], 0xffffffc0
jbe 0x4cb3eb
jmp 0x4cb3da
jle 0x4cb3eb
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
neg eax
adc edx, 0
neg edx
jmp 0x4cb3f2
mov eax, 0x40
xor edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
jne 0x4cb40a
cmp dword [esp + 0x78], 0x40
jb 0x4cb441
jmp 0x4cb40c
jl 0x4cb441
cmp dword [esp + 0x6c], 0
jne 0x4cb41c
cmp dword [esp + 0x68], 0
jae 0x4cb42c
jmp 0x4cb41e
jge 0x4cb42c
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x4cb430
xor eax, eax
jmp 0x4cb433
or eax, 0xffffffff
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x4cb4dc
lea edx, [esp + 0x68]
lea eax, [esp + 0x70]
mov ecx, 8
call fcn.00478458
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x4cb47e
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.004781f4
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x4cb4ca
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.004782b0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
cmp dword [esp + 0x6c], 0
jne 0x4cb4a9
cmp dword [esp + 0x68], 0
jae 0x4cb4ca
jmp 0x4cb4ab
jge 0x4cb4ca
mov eax, dword [esp + 0x78]
mov ecx, 0x40
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
call fcn.004781f4
or dword [esp + 0x70], eax
or dword [esp + 0x74], edx
lea edx, [esp + 0x70]
lea eax, [esp + 0x68]
mov ecx, 8
call fcn.00478458
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbf00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004d9644
mov eax, dword [esi + 8]
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov cl, byte [esp + 0xd]
shl ebp, 3
mov dl, 0x63
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004ca1f8
test byte [ebp + 0x1c], 4
jne 0x4cb573
cmp dword [esi + 8], 0
jne 0x4cb566
mov edi, 0x14
jmp 0x4cfb6f
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov dx, word [ebp + 0x1c]
and dx, 0xbf00
or dx, 4
mov word [ebp + 0x1c], dx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 4
je case.0x4ca3e9.0
mov eax, ebp
call fcn.004d9668
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x4ca3e9.0
movzx eax, word [ebp + 0x1c]
and eax, 0x10
mov dl, 0x61
sar eax, 3
or word [ebp + 0x1c], ax
mov eax, ebp
mov cl, byte [esp + 0xd]
call fcn.004ca1f8
test byte [ebp + 0x1d], 0x40
je 0x4cb5f1
mov eax, ebp
call fcn.004d9278
mov edi, eax
jmp 0x4cb5f3
xor edi, edi
and word [ebp + 0x1c], 0xbfe3
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x4ca3e9.0
test byte [ebp + 0x1c], 0x10
jne 0x4cb63f
mov cl, byte [esp + 0xd]
mov dl, 0x61
mov eax, ebp
call fcn.004ca1f8
mov cx, word [ebp + 0x1c]
and cx, 0xbf00
or cx, 0x10
mov word [ebp + 0x1c], cx
jmp case.0x4ca3e9.0
and word [ebp + 0x1c], 0xff10
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.004d968c
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x4ca3e9.0
mov eax, ebp
call fcn.004d9644
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x4ca3e9.0
mov eax, ebp
call fcn.004d9668
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov dx, word [ebp + 0x1c]
mov word [esp + 0x6e], dx
mov ecx, dword [esp + 0x20]
mov cx, word [ecx + 0x1c]
mov word [esp + 0x70], cx
mov ax, word [esp + 0x6e]
or ax, word [esp + 0x70]
test al, 1
je 0x4cb75f
test byte [esi + 3], 0x80
je 0x4cb711
mov dx, word [esp + 0x6e]
and dx, word [esp + 0x70]
test dl, 1
sete cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x4cb7cc
test byte [esi + 3], 0x10
je 0x4cb746
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbf00
or cx, 1
mov word [eax + 0x1c], cx
jmp case.0x4ca3e9.0
test byte [esi + 3], 8
je case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
mov cl, byte [esi + 3]
and cl, 0x67
mov byte [esp + 0x6c], cl
cmp byte [esp + 0x6c], 0
je 0x4cb79a
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.004ca1f8
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, dword [esp + 0x20]
call fcn.004ca1f8
cmp byte [ebx + 0x1e], 0
jne 0x4cfb4b
test byte [ebp + 0x1d], 0x40
je 0x4cb7a7
mov eax, ebp
call fcn.004d9278
mov edx, dword [esp + 0x20]
test byte [edx + 0x1d], 0x40
je 0x4cb7ba
mov eax, dword [esp + 0x20]
call fcn.004d9278
mov ecx, dword [esi + 0x10]
mov edx, ebp
mov eax, dword [esp + 0x20]
call fcn.004d9a74
mov dword [esp + 0x68], eax
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffb5
cmp edx, 4
ja case.default.0x4cb7d8
jmp dword [edx*4 + 0x4cb7df]
cmp dword [esp + 0x68], 0
sete cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x4cb857
cmp dword [esp + 0x68], 0
setne cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x4cb857
cmp dword [esp + 0x68], 0
setl al
and eax, 1
mov dword [esp + 0x68], eax
jmp 0x4cb857
cmp dword [esp + 0x68], 0
setle dl
and edx, 1
mov dword [esp + 0x68], edx
jmp 0x4cb857
cmp dword [esp + 0x68], 0
setg cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x4cb857
cmp dword [esp + 0x68], 0
setge al
and eax, 1
mov dword [esp + 0x68], eax
test byte [esi + 3], 0x10
je 0x4cb897
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbf00
or ax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x4cb8a6
cmp dword [esp + 0x68], 0
je 0x4cb8a6
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
mov ax, word [ebp + 0x1c]
mov dx, word [esp + 0x6e]
and dx, 0xff
and ax, 0xff00
or ax, dx
mov word [ebp + 0x1c], ax
mov dx, word [esp + 0x70]
mov ecx, dword [esp + 0x20]
and dx, 0xff
mov ax, word [ecx + 0x1c]
and ax, 0xff00
or ax, dx
mov edx, dword [esp + 0x20]
mov word [edx + 0x1c], ax
jmp case.0x4ca3e9.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x78], ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x70], eax
mov edx, dword [esi + 8]
mov dword [esp + 0x74], edx
xor ecx, ecx
mov dword [esp + 0x6c], ecx
jmp 0x4cb9b0
cmp dword [esp + 0x2c], 0
je 0x4cb92c
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + edx*4]
jmp 0x4cb930
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + edx*4 + 0xc]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x6c]
movzx edx, byte [edx + eax]
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
add ecx, eax
mov edx, ecx
mov ecx, dword [esp + 0x70]
add ecx, eax
shl edx, 3
mov eax, ecx
shl eax, 3
mov ecx, dword [esp + 0x80]
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
call fcn.004d9a74
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
je 0x4cb9ac
cmp dword [esp + 0x84], 0
je 0x4cb9be
neg dword [esp + 0x28]
jmp 0x4cb9be
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x4cb918
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp case.0x4ca3e9.0
cmp dword [esp + 0x28], 0
jge 0x4cb9dd
mov eax, dword [esi + 4]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
cmp dword [esp + 0x28], 0
jne 0x4cb9f1
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0xc]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je 0x4cba1c
mov dword [esp + 0x68], 2
jmp 0x4cba34
push ebp
call fcn.004d950c
cmp edx, 0
jne 0x4cba2a
cmp eax, 0
setne al
and eax, 1
mov dword [esp + 0x68], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x1c], 1
je 0x4cba59
mov dword [esp + 0x6c], 2
jmp 0x4cba75
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.004d950c
cmp edx, 0
jne 0x4cba6b
cmp eax, 0
setne al
and eax, 1
mov dword [esp + 0x6c], eax
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x45
jne 0x4cba9a
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + ecx*2]
lea eax, [ecx + 0x5d9158]
mov edx, dword [esp + 0x6c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x68], ecx
jmp 0x4cbab3
mov eax, dword [esp + 0x68]
lea eax, [eax + eax*2]
lea edx, [eax + 0x5d9161]
mov eax, dword [esp + 0x6c]
movzx edx, byte [edx + eax]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x68], 2
jne 0x4cbae8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbf00
or ax, 1
mov word [edx + 0x1c], ax
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbf00
or ax, 4
mov word [edx + 0x1c], ax
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
test byte [ebp + 0x1c], 1
je 0x4cbb47
mov eax, dword [esp + 0x24]
call fcn.004d96ec
jmp case.0x4ca3e9.0
push ebp
call fcn.004d950c
cmp edx, 0
jne 0x4cbb55
cmp eax, 0
setne al
and eax, 1
cmp eax, 1
sbb eax, eax
neg eax
cdq
push edx
push eax
mov eax, dword [esp + 0x2c]
call fcn.004d975c
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
test byte [ebp + 0x1c], 1
je 0x4cbba6
mov eax, dword [esp + 0x24]
call fcn.004d96ec
jmp case.0x4ca3e9.0
push ebp
call fcn.004d950c
not eax
not edx
push edx
push eax
mov eax, dword [esp + 0x2c]
call fcn.004d975c
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je 0x4cbbdd
mov eax, dword [esi + 0xc]
mov dword [esp + 0x68], eax
jmp 0x4cbc15
mov eax, ebp
call fcn.004d9574
fld dword [0x4cfbe4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
setp dl
and edx, 1
mov dword [esp + 0x68], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x1b
jne 0x4cbc15
mov ecx, dword [esp + 0x68]
cmp ecx, 1
sbb eax, eax
neg eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov edx, dword [esi + 4]
lea eax, [esp + 0xa4]
mov dword [esp + 0x74], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x78], ecx
xor ecx, ecx
mov dword [esp + 0x7c], ecx
mov ecx, 0x28
xor edx, edx
call fcn.00478478
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
mov ax, word [ecx + 0x1c]
xor ecx, ecx
and ax, 0xbf00
or ax, 1
mov word [edx + 0x1c], ax
mov dword [esp + 0x80], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x44]
mov eax, dword [esp + 0x74]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx]
mov dword [esp + 0x84], ecx
cmp dword [esp + 0x84], 0
je 0x4cbd94
mov eax, dword [esp + 0x7c]
call fcn.004c92cc
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x1c], 0
je 0x4cbd2d
xor edx, edx
mov dword [esp + 0x68], edx
jmp 0x4cbdf4
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp]
mov ecx, dword [ecx + 0x48]
cmp ecx, dword [eax + 0x54]
jne 0x4cbd5a
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x4c]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x58]
mov dword [esp + 0x80], edx
jmp 0x4cbdf4
mov ecx, dword [esp + 0x7c]
cmp byte [ecx + 0x1f], 0
je 0x4cbd80
lea edx, [esp + 0x6c]
mov eax, dword [esp + 0x84]
call fcn.004c1694
mov edi, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
jmp 0x4cbdf4
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x84]
call fcn.004c16e4
mov edi, eax
jmp 0x4cbdf4
mov eax, dword [esp + 0x7c]
cmp dword [eax + 0x10], 0
jle 0x4cbdee
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x10]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xe4]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 4]
mov dword [esp + 0x80], ecx
test byte [esi + 3], 0x20
je 0x4cbddf
xor eax, eax
jmp 0x4cbde5
mov edx, dword [esp]
mov eax, dword [edx + 0x54]
mov edx, dword [esp + 0x7c]
mov dword [edx + 0x48], eax
jmp 0x4cbdf4
xor ecx, ecx
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 0
jne 0x4cbe00
jmp case.0x4ca3e9.0
mov ecx, dword [esp + 0x68]
cmp ecx, dword [ebx + 0x48]
jbe 0x4cbe0e
jmp 0x4cfb2b
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x7c]
mov eax, dword [esp]
mov ecx, dword [edx + 0x48]
cmp ecx, dword [eax + 0x54]
jne 0x4cbe4c
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x54]
mov dword [esp + 0x8c], ecx
jmp 0x4cc1aa
xor eax, eax
mov dword [esp + 0xe0], eax
mov edx, dword [esp + 0x90]
shl edx, 2
add edx, dword [esp + 0x88]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x7c]
mov dword [eax + 0x54], edx
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x68]
mov dword [ecx + 0x4c], edi
mov eax, dword [esp]
mov ecx, dword [esp + 0x7c]
mov edx, dword [eax + 0x54]
mov dword [ecx + 0x48], edx
cmp dword [esp + 0x80], 0
je 0x4cbea6
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x9c], ecx
jmp 0x4cbf1a
mov eax, dword [esp + 0x7c]
cmp byte [eax + 0x1f], 0
je 0x4cbecc
lea edx, [esp + 0xe0]
mov eax, dword [esp + 0x84]
call fcn.004c1b98
mov dword [esp + 0x9c], eax
jmp 0x4cbee6
lea edx, [esp + 0xe0]
mov eax, dword [esp + 0x84]
call fcn.004c1bb0
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0xe0]
ja 0x4cbf11
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x58], eax
jmp 0x4cbf1a
mov edx, dword [esp + 0x7c]
xor eax, eax
mov dword [edx + 0x58], eax
mov edx, dword [esp + 0x9c]
cmp byte [edx], 0x80
jae 0x4cbf3b
mov ecx, dword [esp + 0x9c]
mov al, 1
movzx ecx, byte [ecx]
mov dword [esp + 0xd4], ecx
jmp 0x4cbf4e
lea edx, [esp + 0xd4]
mov eax, dword [esp + 0x9c]
call fcn.004d8cf0
xor edx, edx
mov dl, al
mov dword [esp + 0xdc], edx
cmp dword [esp + 0xd4], 0x18003
jbe 0x4cbf77
mov eax, 0xa70
call fcn.004afc70
mov edi, eax
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x90]
lea eax, [eax + eax*4]
add eax, 3
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0xd4]
cmp edx, dword [esp + 0x94]
jge 0x4cbfa9
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x94], ecx
cmp dword [esp + 0x80], 0
jne 0x4cc016
mov ecx, dword [esp + 0xe0]
cmp ecx, dword [esp + 0x94]
jge 0x4cc016
mov word [esp + 0xc0], 0
xor eax, eax
mov dword [esp + 0xa4], eax
mov edx, dword [esp + 0x7c]
xor ecx, ecx
mov cl, byte [edx + 0x1f]
push ecx
lea eax, [esp + 0xa8]
push eax
mov ecx, dword [esp + 0x9c]
xor edx, edx
mov eax, dword [esp + 0x8c]
call fcn.004d9cc0
mov edi, eax
test edi, edi
je 0x4cc008
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x9c]
add edx, dword [esp + 0x94]
mov dword [esp + 0xd0], edx
mov ecx, dword [esp + 0x9c]
add ecx, dword [esp + 0xdc]
mov dword [esp + 0xcc], ecx
xor ecx, ecx
mov dword [esp + 0x98], ecx
jmp 0x4cc135
mov eax, dword [esp + 0xcc]
cmp eax, dword [esp + 0xd0]
jae 0x4cc11b
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xd4]
mov dword [edx + eax*4], ecx
mov edx, dword [esp + 0xcc]
cmp byte [edx], 0x80
jae 0x4cc0a5
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x88]
movzx edx, byte [edx]
mov dword [ecx + eax*4], edx
mov al, 1
jmp 0x4cc0c2
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0xcc]
shl edx, 2
add edx, dword [esp + 0x88]
call fcn.004d8cf0
xor ecx, ecx
mov cl, al
add dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x98]
mov eax, dword [ecx + eax*4]
call fcn.004c94a0
mov dword [esp + 0xd8], eax
mov edx, dword [esp + 0xd8]
add dword [esp + 0xd4], edx
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0xd8]
jae 0x4cc12e
mov ecx, dword [esp + 0xd0]
inc ecx
mov dword [esp + 0xcc], ecx
jmp 0x4cc149
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x98]
xor ecx, ecx
mov dword [eax + edx*4], ecx
inc dword [esp + 0x98]
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x90]
jl 0x4cc04e
lea eax, [esp + 0xa4]
call fcn.004d9468
mov word [esp + 0xc0], 1
mov edx, dword [esp + 0xcc]
cmp edx, dword [esp + 0xd0]
ja 0x4cc199
mov ecx, dword [esp + 0xd4]
cmp ecx, dword [esp + 0x68]
ja 0x4cc199
mov ecx, dword [esp + 0xcc]
cmp ecx, dword [esp + 0xd0]
jne 0x4cc1aa
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0x68]
je 0x4cc1aa
mov eax, 0xaba
call fcn.004afc70
mov edi, eax
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
cmp dword [eax + edx*4], 0
je 0x4cc2b5
cmp dword [esp + 0x80], 0
je 0x4cc209
mov eax, dword [esp + 0xa0]
call fcn.004d9408
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x8c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xa0]
add eax, dword [esp + 0x80]
call fcn.004c957c
jmp 0x4cc2a5
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x78]
mov eax, dword [edx + eax*4]
call fcn.004c94a0
mov dword [esp + 0x94], eax
lea eax, [esp + 0xa4]
mov edx, dword [esp + 0xa0]
call fcn.004d98b8
mov ecx, dword [esp + 0x7c]
movzx ecx, byte [ecx + 0x1f]
push ecx
lea eax, [esp + 0xa8]
push eax
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x80]
mov edx, dword [edx + eax*4]
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x8c]
call fcn.004d9cc0
mov edi, eax
test edi, edi
je 0x4cc276
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
mov edx, dword [edx + ecx*4]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
call fcn.004c957c
mov ecx, dword [esp + 0xa0]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp 0x4cc2cf
cmp byte [esi + 1], 0xf8
jne 0x4cc2cf
mov ecx, 0x800
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0xa0]
call fcn.004d9838
cmp dword [esp + 0xc8], 0
je 0x4cc315
mov ecx, dword [esp + 0xa0]
and word [ecx + 0x1c], 0xe7ff
mov eax, dword [esp + 0xa0]
or word [eax + 0x1c], 0x200
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xa8]
mov dword [edx + 4], eax
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc8]
mov dword [edx + 0x24], ecx
mov eax, dword [esp + 0xa0]
call fcn.004d921c
mov edi, eax
jmp case.0x4ca3e9.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
jmp 0x4cc35e
test byte [ebp + 0x1d], 0x40
je 0x4cc34c
mov eax, ebp
call fcn.004d9278
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.004ca1f8
add ebp, 0x28
mov edx, dword [esp + 0x68]
inc dword [esp + 0x68]
mov cl, byte [edx]
mov byte [esp + 0x6c], cl
test cl, cl
jne 0x4cc33f
jmp case.0x4ca3e9.0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
xor eax, eax
xor edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x84], edx
mov ecx, dword [esi + 4]
mov dword [esp + 0x98], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x98]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x90], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x98], ecx
xor ecx, ecx
mov eax, dword [esp + 0x98]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x90]
add eax, 0xffffffd8
mov dword [esp + 0x94], eax
mov edx, dword [esp]
mov cl, byte [edx + 0x65]
mov dword [esp + 0xa0], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x90]
mov dword [esp + 0x6c], edx
jmp 0x4cc4db
cmp dword [esp + 0x9c], 0
je 0x4cc44c
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x90]
mov ecx, 0x28
cdq
idiv ecx
mov edx, dword [esp + 0x9c]
mov dl, byte [edx + eax]
mov cl, byte [esp + 0xd]
mov eax, dword [esp + 0x6c]
call fcn.004ca1f8
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1d], 0x40
je 0x4cc461
cmp dword [eax + 0x18], 0
jle 0x4cc461
call fcn.004d9278
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x6c]
call fcn.004c9348
mov esi, eax
mov dword [esp + 0x8c], esi
mov eax, esi
call fcn.004c94a0
mov ebp, eax
mov eax, ebp
mov dword [esp + 0xa8], ebp
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
xor edx, edx
mov eax, dword [esp + 0x8c]
push edx
push eax
call fcn.004d8d6c
add dword [esp + 0x78], eax
mov ecx, dword [esp + 0x6c]
test byte [ecx + 0x1d], 0x40
je 0x4cc4c3
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
add dword [esp + 0x84], eax
jmp 0x4cc4d6
cmp dword [esp + 0xa8], 0
je 0x4cc4d6
xor edx, edx
mov dword [esp + 0x84], edx
add dword [esp + 0x6c], 0x28
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x94]
jbe 0x4cc418
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.004d8d6c
mov dword [esp + 0x88], eax
add dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.004d8d6c
cmp eax, dword [esp + 0x88]
jle 0x4cc51c
inc dword [esp + 0x78]
mov eax, dword [esp + 0x78]
cdq
add eax, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
push edx
push eax
mov eax, dword [esp + 0x8c]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov eax, dword [ebx + 0x48]
cdq
cmp edx, dword [esp + 0x80]
jne 0x4cc55f
cmp eax, dword [esp + 0x7c]
jae 0x4cc566
jmp 0x4cfb2b
jge 0x4cc566
jmp 0x4cfb2b
mov eax, dword [esp + 0x7c]
mov edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x24]
call fcn.004d915c
test eax, eax
je 0x4cc580
jmp 0x4cfb4b
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x78], 0x80
jae 0x4cc5a3
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x78]
mov byte [ecx], al
mov dl, 1
jmp 0x4cc5b2
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
call fcn.004d8aac
mov edx, eax
xor eax, eax
mov al, dl
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x6c], ecx
jmp 0x4cc62b
mov edx, dword [esp + 0xa0]
mov eax, esi
call fcn.004c9348
mov ebp, eax
mov dword [esp + 0x8c], ebp
cmp ebp, 0x80
jae 0x4cc602
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xa4]
mov cl, byte [esp + 0x8c]
mov byte [eax + edx], cl
mov cl, 1
jmp 0x4cc61b
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x8c]
add eax, dword [esp + 0xa4]
call fcn.004d8aac
mov ecx, eax
xor eax, eax
mov al, cl
add dword [esp + 0xa4], eax
add dword [esp + 0x6c], 0x28
mov esi, dword [esp + 0x6c]
cmp esi, dword [esp + 0x94]
jbe 0x4cc5ca
mov eax, dword [esp + 0x90]
mov dword [esp + 0x6c], eax
jmp 0x4cc67c
mov edx, dword [esp + 0xa0]
push edx
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0x6c]
sub edx, esi
add eax, esi
mov ecx, dword [esp + 0x70]
call fcn.004c94b4
add eax, esi
mov dword [esp + 0xa4], eax
add dword [esp + 0x6c], 0x28
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x94]
jbe 0x4cc645
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 0x410
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x20], eax
cmp dword [esp + 0x84], 0
je 0x4cc6c9
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
mov dword [edx + 0x10], eax
mov edx, dword [esp + 0x24]
or word [edx + 0x1c], 0x4000
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
je 0x4cc700
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
call fcn.004c5228
mov edi, eax
jmp 0x4cc710
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0x68], 0
jne 0x4cc81e
cmp dword [ebx + 0x90], 0
jle 0x4cc769
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
mov eax, dword [esp + 8]
add eax, 0x38
push eax
call fcn.004de418
add esp, 0xc
mov edi, 5
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x6c]
call fcn.004d809c
mov dword [esp + 0x70], eax
mov ecx, dword [ebx + 0x1e4]
add ecx, dword [ebx + 0x1e0]
xor edx, edx
mov eax, ebx
call fcn.004b117c
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov edx, dword [esp + 0x70]
mov eax, ebx
add edx, 0x11
call fcn.004de27c
mov dword [esp + 0x74], eax
cmp dword [esp + 0x74], 0
je case.0x4ca3e9.0
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
add ecx, 0x10
mov dword [esi], ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc ecx
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.00478458
cmp byte [ebx + 0x1c], 0
je 0x4cc7e6
mov byte [ebx + 0x1c], 0
mov byte [ebx + 0x1e8], 1
jmp 0x4cc7ec
inc dword [ebx + 0x1e0]
mov ecx, dword [esp + 0x74]
mov esi, dword [ebx + 0x1dc]
mov dword [ecx + 0xc], esi
mov eax, dword [esp + 0x74]
mov dword [ebx + 0x1dc], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [ebx + 0x1ec]
mov dword [edx + 4], ecx
mov ecx, dword [ebx + 0x1f0]
mov dword [edx + 8], ecx
jmp case.0x4ca3e9.0
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [ebx + 0x1dc]
mov dword [esp + 0x78], eax
jmp 0x4cc845
inc dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x78], ecx
cmp dword [esp + 0x78], 0
je 0x4cc85f
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.004d81e0
test eax, eax
jne 0x4cc833
cmp dword [esp + 0x78], 0
jne 0x4cc88b
mov ecx, dword [esp + 0x6c]
push ecx
push str.no_such_savepoint:__s
push ebx
mov ecx, dword [esp + 0xc]
add ecx, 0x38
push ecx
call fcn.004de418
add esp, 0x10
mov edi, 1
jmp case.0x4ca3e9.0
cmp dword [ebx + 0x90], 0
jg 0x4cc8a4
cmp dword [esp + 0x68], 2
jne 0x4cc8d8
cmp dword [ebx + 0x8c], 1
jle 0x4cc8d8
cmp dword [esp + 0x68], 2
jne 0x4cc8b2
mov eax, str.rollback
jmp 0x4cc8b7
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
mov edi, 5
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x78]
cmp dword [eax + 0xc], 0
jne 0x4cc8eb
cmp byte [ebx + 0x1e8], 0
jne 0x4cc8ef
xor edx, edx
jmp 0x4cc8f4
mov edx, 1
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x3c], 0
je 0x4cc95f
cmp dword [esp + 0x68], 1
jne 0x4cc95f
mov edx, 1
mov eax, dword [esp]
call fcn.004c8d74
mov edi, eax
test eax, eax
je 0x4cc91e
jmp 0x4cfb0e
mov byte [ebx + 0x1c], 1
mov eax, dword [esp]
call fcn.004c8ddc
cmp eax, 5
jne 0x4cc94d
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov dword [edx + 0x58], ecx
mov byte [ebx + 0x1c], 0
mov edi, 5
mov ecx, dword [esp]
mov dword [ecx + 0x5c], edi
jmp 0x4cfb0e
mov byte [ebx + 0x1e8], 0
mov eax, dword [esp]
mov edi, dword [eax + 0x5c]
jmp 0x4cca0d
mov eax, dword [ebx + 0x1e0]
sub eax, dword [esp + 0x80]
dec eax
mov dword [esp + 0x80], eax
xor edx, edx
mov dword [esp + 0x84], edx
jmp 0x4cc9b2
mov ecx, dword [esp + 0x84]
shl ecx, 4
mov eax, dword [ebx + 8]
mov eax, dword [eax + ecx + 4]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
call fcn.004c148c
mov edi, eax
test edi, edi
je 0x4cc9ab
jmp 0x4cfb6f
inc dword [esp + 0x84]
mov eax, dword [esp + 0x84]
cmp eax, dword [ebx + 4]
jl 0x4cc97f
cmp dword [esp + 0x68], 2
jne 0x4cca0d
test byte [ebx + 0xd], 2
je 0x4cca0d
mov eax, ebx
call fcn.004c9cfc
or edx, 0xffffffff
mov eax, ebx
call fcn.00499d6c
or dword [ebx + 0xc], 0x200
jmp 0x4cca0d
mov edx, dword [ebx + 0x1dc]
mov eax, ebx
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + 0xc]
mov dword [ebx + 0x1dc], ecx
mov edx, dword [esp + 0x7c]
call fcn.004de094
dec dword [ebx + 0x1e0]
mov ecx, dword [ebx + 0x1dc]
cmp ecx, dword [esp + 0x78]
jne 0x4cc9e5
cmp dword [esp + 0x68], 1
jne 0x4cca47
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 0xc]
mov eax, ebx
mov dword [ebx + 0x1dc], edx
mov edx, dword [esp + 0x78]
call fcn.004de094
cmp dword [esp + 0x3c], 0
jne 0x4cca5d
dec dword [ebx + 0x1e0]
jmp 0x4cca5d
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + 4]
mov dword [ebx + 0x1ec], esi
mov esi, dword [ecx + 8]
mov dword [ebx + 0x1f0], esi
cmp dword [esp + 0x3c], 0
jne case.0x4ca3e9.0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.004b117c
mov edi, eax
test edi, edi
jne 0x4cfb6f
jmp case.0x4ca3e9.0
mov eax, dword [esi + 4]
mov dword [esp + 0x68], eax
mov edx, dword [esi + 8]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x68], 0
je 0x4ccaa4
cmp byte [ebx + 0x1c], 0
je 0x4ccaa8
xor ecx, ecx
jmp 0x4ccaad
mov ecx, 1
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
je 0x4ccae8
cmp dword [esp + 0x6c], 0
je 0x4ccae8
cmp dword [ebx + 0x8c], 1
jle 0x4ccae8
push str.cannot_rollback_transaction___SQL_statements_in_progress
push ebx
mov ecx, dword [esp + 8]
add ecx, 0x38
push ecx
call fcn.004de418
add esp, 0xc
mov edi, 5
jmp case.0x4ca3e9.0
cmp dword [esp + 0x70], 0
je 0x4ccb1f
cmp dword [esp + 0x6c], 0
jne 0x4ccb1f
cmp dword [ebx + 0x90], 0
jle 0x4ccb1f
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebx
mov eax, dword [esp + 8]
add eax, 0x38
push eax
call fcn.004de418
add esp, 0xc
mov edi, 5
jmp case.0x4ca3e9.0
xor eax, eax
mov al, byte [ebx + 0x1c]
cmp eax, dword [esp + 0x68]
je 0x4ccbbc
cmp dword [esp + 0x6c], 0
je 0x4ccb42
mov eax, ebx
call fcn.004ae700
mov byte [ebx + 0x1c], 1
jmp 0x4ccb93
mov edx, 1
mov eax, dword [esp]
call fcn.004c8d74
mov edi, eax
test eax, eax
je 0x4ccb5c
jmp 0x4cfb0e
mov dl, byte [esp + 0x68]
mov byte [ebx + 0x1c], dl
mov eax, dword [esp]
call fcn.004c8ddc
cmp eax, 5
jne 0x4ccb93
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov dword [edx + 0x58], ecx
mov cl, 1
sub cl, byte [esp + 0x68]
mov byte [ebx + 0x1c], cl
mov edi, 5
mov eax, dword [esp]
mov dword [eax + 0x5c], edi
jmp 0x4cfb0e
mov eax, ebx
call fcn.004ae468
mov edx, dword [esp]
cmp dword [edx + 0x5c], 0
jne 0x4ccbad
mov edi, 0x65
jmp 0x4cfb0e
mov edi, 1
jmp 0x4cfb0e
cmp dword [esp + 0x68], 0
jne 0x4ccbca
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4ccbdd
cmp dword [esp + 0x6c], 0
je 0x4ccbd8
mov eax, str.cannot_rollback___no_transaction_is_active
jmp 0x4ccbdd
mov eax, str.cannot_commit___no_transaction_is_active
push eax
push ebx
mov edx, dword [esp + 8]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0xc
mov edi, 1
jmp case.0x4ca3e9.0
mov eax, dword [esi + 4]
shl eax, 4
mov edx, dword [ebx + 8]
mov ecx, dword [edx + eax + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x68]
call fcn.004c093c
mov edi, eax
cmp edi, 5
jne 0x4ccc42
mov eax, dword [esp]
mov edx, dword [esp + 4]
mov dword [eax + 0x58], edx
mov edi, 5
mov ecx, dword [esp]
mov dword [ecx + 0x5c], edi
jmp 0x4cfb0e
test edi, edi
je 0x4ccc4b
jmp 0x4cfb6f
cmp dword [esi + 8], 0
je case.0x4ca3e9.0
mov ecx, dword [esp]
cmp byte [ecx + 0x67], 0
je case.0x4ca3e9.0
cmp byte [ebx + 0x1c], 0
je 0x4ccc75
cmp dword [ebx + 0x8c], 1
jle case.0x4ca3e9.0
mov eax, dword [esp]
cmp dword [eax + 0x78], 0
jne 0x4ccc96
inc dword [ebx + 0x1e4]
mov edx, dword [ebx + 0x1e0]
mov eax, dword [esp]
add edx, dword [ebx + 0x1e4]
mov dword [eax + 0x78], edx
mov edx, dword [esp]
mov ecx, dword [edx + 0x78]
dec ecx
xor edx, edx
mov eax, ebx
call fcn.004b117c
mov edi, eax
test edi, edi
jne 0x4cccbd
mov eax, dword [esp]
mov edx, dword [eax + 0x78]
mov eax, dword [esp + 0x68]
call fcn.004c1460
mov edi, eax
mov eax, dword [esp]
mov edx, dword [ebx + 0x1ec]
mov dword [eax + 0x98], edx
mov edx, dword [ebx + 0x1f0]
mov dword [eax + 0x9c], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x6c]
shl eax, 4
mov edx, dword [ebx + 8]
mov eax, dword [edx + eax + 4]
lea ecx, [esp + 0x68]
mov edx, dword [esp + 0x70]
call fcn.004c5190
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
shl ecx, 4
add ecx, dword [ebx + 8]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
call fcn.004d9644
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x68]
mov ecx, eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 8]
call fcn.004c51c8
cmp dword [esi + 8], 1
mov edi, eax
jne 0x4ccd7a
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
or dword [ebx + 0xc], 0x200
jmp 0x4ccd91
cmp dword [esi + 8], 2
jne 0x4ccd91
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [esi + 4], 1
jne case.0x4ca3e9.0
mov eax, ebx
call fcn.004c9cfc
mov edx, dword [esp]
mov byte [edx + 0x63], 0
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x70], edx
cmp dword [esp + 0x70], 0
je 0x4ccdee
lea ecx, [esp + 0x68]
mov edx, 1
mov eax, dword [esp + 0x70]
call fcn.004c5190
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx + 4]
mov dword [esp + 0x6c], ecx
jmp 0x4ccdf8
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x68]
cmp eax, dword [esi + 8]
jne 0x4cce0e
mov edx, dword [esp + 0x6c]
cmp edx, dword [esi + 0xc]
je case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, ebx
mov edx, dword [ecx + 0x38]
call fcn.004de094
mov edx, str.database_schema_has_changed
mov eax, ebx
call fcn.004de3a8
mov ecx, dword [esp]
mov dword [ecx + 0x38], eax
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx]
cmp ecx, dword [esp + 0x68]
je 0x4cce4c
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00499d6c
mov ecx, dword [esp]
mov edi, 0x11
mov byte [ecx + 0x63], 1
jmp case.0x4ca3e9.0
mov eax, dword [esp]
cmp byte [eax + 0x63], 0
je 0x4cce70
mov edi, 4
jmp case.0x4ca3e9.0
xor eax, eax
xor edx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x74]
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0x84], eax
xor eax, eax
mov edx, dword [esp + 0x84]
mov ecx, dword [edx + 4]
mov dword [esp + 0x7c], ecx
mov al, byte [esi]
cmp eax, 0x27
jne 0x4ccee4
mov dword [esp + 0x78], 1
mov edx, dword [esp + 0x84]
mov ecx, dword [edx + 0xc]
mov edx, dword [esp]
mov al, byte [ecx + 0x4c]
cmp al, byte [edx + 0x65]
jae 0x4cceea
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4c]
mov eax, dword [esp]
mov byte [eax + 0x65], dl
jmp 0x4cceea
xor edx, edx
mov dword [esp + 0x78], edx
cmp byte [esi + 3], 0
je 0x4ccf2e
mov ecx, dword [esp + 0x70]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
call fcn.004d9644
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 2
jge 0x4ccf2e
mov eax, 0xdd0
call fcn.004afc70
mov edi, eax
jmp 0x4cfb6f
cmp byte [esi + 1], 0xfa
jne 0x4ccf5f
mov eax, dword [esi + 0x10]
mov dword [esp + 0x6c], eax
mov edx, dword [esp]
mov ecx, dword [edx]
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4d]
mov eax, dword [esp + 0x6c]
mov byte [eax + 4], dl
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx + 6]
inc ecx
mov dword [esp + 0x68], ecx
jmp 0x4ccf6c
cmp byte [esi + 1], 0xf2
jne 0x4ccf6c
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x74]
push eax
push 1
mov ecx, dword [esp + 0x70]
mov edx, dword [esi + 4]
mov eax, dword [esp + 8]
call fcn.004ca0b0
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x4cfb4b
mov ecx, dword [esp + 0x80]
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x80]
mov byte [eax + 0x20], 1
mov edx, dword [esp + 0x6c]
push edx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx]
push eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x84]
call fcn.004c1588
mov edi, eax
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x6c]
cmp edi, 0x10
mov dword [eax + 8], edx
jne 0x4ccff6
mov ecx, dword [esp + 0x80]
xor edi, edi
mov dword [ecx], edi
xor edi, edi
cmp byte [esi + 1], 0xfa
setne al
mov edx, dword [esp + 0x80]
and eax, 1
mov byte [edx + 0x1e], al
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x80]
movzx ecx, byte [ecx + 0x1e]
cmp ecx, 1
sbb eax, eax
neg eax
mov byte [edx + 0x1f], al
jmp case.0x4ca3e9.0
push 0xffffffffffffffff
push 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esp + 8]
call fcn.004ca0b0
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x4cfb4b
mov ecx, dword [esp + 0x68]
xor edx, edx
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x68]
mov ecx, dword [0x5d916c]
add eax, 4
push eax
mov dl, byte [esi + 3]
or edx, 9
push edx
push ecx
mov ecx, ebx
mov eax, dword [ebx]
xor edx, edx
call fcn.004bfda0
mov edi, eax
test edi, edi
jne 0x4cd091
mov eax, dword [esp + 0x68]
mov edx, 1
mov eax, dword [eax + 4]
call fcn.004c093c
mov edi, eax
test edi, edi
jne 0x4cd134
cmp dword [esi + 0x10], 0
je 0x4cd10b
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov cl, byte [esi + 3]
lea edx, [esp + 0x40]
or ecx, 2
mov eax, dword [eax + 4]
call fcn.004c4d70
mov edi, eax
test edi, edi
jne 0x4cd101
mov eax, dword [esi + 0x10]
push eax
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx]
push ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 4]
mov ecx, 1
mov edx, dword [esp + 0x48]
call fcn.004c1588
mov edi, eax
mov eax, dword [esp + 0x68]
mov edx, dword [esi + 0x10]
mov dword [eax + 8], edx
mov ecx, dword [esp]
mov ecx, dword [ecx]
mov eax, dword [ecx + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x68]
mov cl, byte [edx + 0x4d]
mov edx, dword [eax + 8]
mov byte [edx + 4], cl
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1e], 0
jmp 0x4cd134
push 0
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
push edx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 4]
mov ecx, 1
mov edx, 1
call fcn.004c1588
mov edi, eax
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1e], 1
xor edx, edx
mov dl, byte [esi + 3]
mov esi, dword [esp + 0x68]
cmp edx, 0x10
setne cl
and ecx, 1
xor edx, edx
mov byte [esi + 0x20], cl
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x68]
mov dl, byte [eax + 0x1e]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov byte [esi + 0x1f], cl
jmp case.0x4ca3e9.0
push 0xffffffffffffffff
push 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov eax, dword [esp + 8]
call fcn.004ca0b0
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x4cfb4b
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x68]
mov edx, dword [esi + 8]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1e], 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1f], 0
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp]
call fcn.004c86f0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov esi, dword [esi + 4]
xor eax, eax
mov dword [ecx + esi*4], eax
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp dword [ecx], 0
je 0x4cd59c
xor ecx, ecx
mov cl, byte [esi]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1c], 0
mov edx, dword [esp + 0x70]
cmp byte [edx + 0x1e], 0
je 0x4cd451
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
call fcn.004ca188
mov edx, dword [esp + 0x20]
push edx
call fcn.004d950c
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x70]
mov byte [ecx + 0x19], 0
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 4
jne 0x4cd3f4
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 8
jne 0x4cd26f
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
cmp dword [esp + 0x90], 0x80000000
jne 0x4cd35a
cmp dword [esp + 0x8c], 0
jne 0x4cd35a
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], edx
fild qword [esp + 0x12c]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x4cd2db
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x4cfbe4]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x4cd35a
mov dword [esp + 0x68], 1
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x4cfbe4]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x4cd31d
cmp dword [esp + 0x6c], 0x2e
jl 0x4cd33d
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.004c1e64
mov edi, eax
test edi, edi
jne 0x4cfb6f
jmp 0x4cd33d
cmp dword [esp + 0x6c], 0x2d
jg 0x4cd33d
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.004c1e94
mov edi, eax
test edi, edi
jne 0x4cfb6f
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
cmp dword [esp + 0x6c], 0x2c
je 0x4cd368
cmp dword [esp + 0x6c], 0x2e
jne 0x4cd3af
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], edx
fild qword [esp + 0x134]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x4cd3f4
add dword [esp + 0x8c], 1
adc dword [esp + 0x90], 0
jmp 0x4cd3f4
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
fild qword [esp + 0x13c]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x4cd3f4
sub dword [esp + 0x8c], 1
sbb dword [esp + 0x90], 0
push dword [esp + 0x90]
push dword [esp + 0x90]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
xor ecx, ecx
xor edx, edx
call fcn.004c1ee4
mov edi, eax
test edi, edi
je 0x4cd421
jmp 0x4cfb6f
cmp dword [esp + 0x68], 0
jne 0x4cd4e5
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 1
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x8c]
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0x90]
mov dword [edx + 0x40], ecx
jmp 0x4cd4e5
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 8]
mov dword [esp + 0x74], edx
mov cx, word [esp + 0x88]
mov word [esp + 0x78], cx
mov ax, word [esp + 0x6c]
add ax, 0xffd4
and ax, 1
shl eax, 3
mov word [esp + 0x7a], ax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0x84]
test byte [ecx + 0x1d], 0x40
je 0x4cd4b5
mov eax, dword [esp + 0x84]
call fcn.004d9278
push 0
push 0
lea edx, [esp + 0x70]
xor ecx, ecx
push edx
lea edx, [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
call fcn.004c1ee4
mov edi, eax
test edi, edi
je 0x4cd4dd
jmp 0x4cfb6f
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x70]
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x70]
xor eax, eax
mov dword [ecx + 0x48], eax
cmp dword [esp + 0x6c], 0x2e
jl 0x4cd53d
cmp dword [esp + 0x68], 0
jl 0x4cd512
cmp dword [esp + 0x68], 0
jne 0x4cd535
cmp dword [esp + 0x6c], 0x2f
jne 0x4cd535
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.004c2284
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
jmp 0x4cd584
xor edx, edx
mov dword [esp + 0x68], edx
jmp 0x4cd584
cmp dword [esp + 0x68], 0
jg 0x4cd552
cmp dword [esp + 0x68], 0
jne 0x4cd575
cmp dword [esp + 0x6c], 0x2c
jne 0x4cd575
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.004c2398
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
jmp 0x4cd584
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call fcn.004c2274
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1c], 0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
push eax
call fcn.004d950c
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], edx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1d], 1
jmp case.0x4ca3e9.0
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x6c], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
cmp dword [ecx], 0
je 0x4cd709
cmp dword [esi + 0x10], 0
jle 0x4cd672
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 8]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x78]
mov cx, word [esi + 0x10]
mov word [esp + 0x7c], cx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], eax
mov word [esp + 0x7e], 0x10
mov dword [esp + 0x74], edx
jmp 0x4cd6b2
lea ecx, [esp + 0x8c]
push ecx
push 0x97
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0x74]
mov eax, dword [eax + 8]
call fcn.004c97f4
mov dword [esp + 0x74], eax
cmp dword [esp + 0x74], 0
jne 0x4cd6a9
jmp 0x4cfb4b
mov edx, dword [esp + 0x74]
or word [edx + 6], 0x10
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
xor ecx, ecx
mov edx, dword [esp + 0x80]
call fcn.004c1ee4
cmp dword [esi + 0x10], 0
mov edi, eax
jne 0x4cd6e0
mov eax, dword [esp + 0x74]
call fcn.004c9948
test edi, edi
je 0x4cd6e9
jmp case.0x4ca3e9.0
cmp dword [esp + 0x70], 0
sete dl
and edx, 1
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x6c]
mov byte [ecx + 0x1d], 0
mov ecx, dword [esp + 0x6c]
xor eax, eax
mov dword [ecx + 0x48], eax
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x32
jne 0x4cd72a
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
cmp dword [esp + 0x68], 0
jne case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [esi + 0x10]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x78], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
xor eax, eax
mov dword [ecx + 0x44], eax
mov edx, dword [esp + 0x6c]
xor ecx, ecx
mov dword [edx + 0x48], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 8]
mov ax, word [ecx + 6]
mov word [esp + 0x74], ax
mov word [esp + 0x68], 0
jmp 0x4cd7d1
movzx edx, word [esp + 0x68]
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x78]
test byte [eax + ecx*8 + 0x1c], 1
je 0x4cd7cc
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
xor ecx, ecx
mov dword [esp + 0x70], ecx
jmp 0x4cd7dd
inc word [esp + 0x68]
mov ax, word [esp + 0x68]
cmp ax, word [esp + 0x74]
jb 0x4cd7a9
cmp dword [esp + 0x70], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 8]
mov dword [esp + 0x7c], ecx
mov ax, word [esp + 0x74]
inc eax
mov word [esp + 0x80], ax
mov word [esp + 0x82], 0x20
mov edx, dword [esp + 0x78]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x20]
call fcn.004d9644
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x90], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x94], ecx
push 0
push 0
mov ecx, dword [esp + 0x74]
add ecx, 0x44
push ecx
lea edx, [esp + 0x88]
xor ecx, ecx
mov eax, dword [esp + 0x7c]
call fcn.004c1ee4
test byte [esp + 0x82], 0x20
mov edi, eax
jne 0x4cd881
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
cmp edx, dword [esp + 0x94]
jne 0x4cd88e
cmp eax, dword [esp + 0x90]
jne 0x4cd88e
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x88]
mov dword [ecx + 0x14], eax
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
je 0x4cd975
xor ecx, ecx
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x78], edx
xor edx, edx
push dword [esp + 0x78]
push dword [esp + 0x78]
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
call fcn.004c1ee4
mov edi, eax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x3c], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x40], ecx
cmp dword [esp + 0x70], 0
jne 0x4cd934
mov cl, 1
jmp 0x4cd936
xor ecx, ecx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], cl
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1c], 0
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x48], eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1d], 0
cmp dword [esp + 0x70], 0
je 0x4cd965
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov dword [eax + 0x44], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 0x44], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x44]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + esi*4]
mov eax, dword [ecx + 0x2c]
mov edx, dword [ecx + 0x30]
add dword [ecx + 0x2c], 1
adc dword [ecx + 0x30], 0
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
xor eax, eax
mov dword [esp + 0x74], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp dword [ecx], 0
jne 0x4cd9e8
jmp 0x4cdc81
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x1b], 0
jne 0x4cdba2
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call fcn.004c1608
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
jne 0x4cda15
cmp dword [esp + 0x68], 0
jne 0x4cda80
lea edx, [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.004c1e94
mov edi, eax
test edi, edi
je 0x4cda31
jmp 0x4cfb6f
cmp dword [esp + 0x74], 0
je 0x4cda4a
mov dword [esp + 0x68], 1
mov dword [esp + 0x6c], 0
jmp 0x4cda80
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.004c1694
cmp dword [esp + 0x6c], 0x7fffffff
mov edi, eax
jne 0x4cda76
cmp dword [esp + 0x68], 0xffffffff
jne 0x4cda76
mov eax, dword [esp + 0x70]
mov byte [eax + 0x1b], 1
jmp 0x4cda80
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
cmp dword [esi + 0xc], 0
je 0x4cdb6c
mov edx, dword [esp]
cmp dword [edx + 0xa8], 0
je 0x4cdae1
mov ecx, dword [esp]
mov ecx, dword [ecx + 0xa8]
mov dword [esp + 0x80], ecx
jmp 0x4cdab9
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x80]
cmp dword [ecx + 0x38], 0
jne 0x4cdaa8
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x10]
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [esp + 0x7c], edx
jmp 0x4cdaf2
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x7c]
call fcn.004d9644
mov edx, dword [esp + 0x7c]
cmp dword [edx + 0x14], 0x7fffffff
jne 0x4cdb0c
cmp dword [edx + 0x10], 0xffffffff
je 0x4cdb18
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1b], 0
je 0x4cdb22
mov edi, 0xd
jmp 0x4cfb6f
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
add eax, 1
adc edx, 0
cmp edx, dword [esp + 0x6c]
jne 0x4cdb40
cmp eax, dword [esp + 0x68]
jbe 0x4cdb5a
jmp 0x4cdb42
jle 0x4cdb5a
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
add eax, 1
adc edx, 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x14], eax
cmp dword [esp + 0x6c], 0x7fffffff
jne 0x4cdb7f
cmp dword [esp + 0x68], 0xffffffff
jae 0x4cdb91
jmp 0x4cdb81
jge 0x4cdb91
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add eax, 1
adc edx, 0
jmp 0x4cdb95
xor eax, eax
xor edx, edx
push edx
push eax
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
call fcn.004c15d8
mov edx, dword [esp + 0x70]
cmp byte [edx + 0x1b], 0
je 0x4cdc68
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x6c], ecx
and dword [esp + 0x68], 0xffffffff
and dword [esp + 0x6c], 0x3fffffff
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x4cdc1d
lea edx, [esp + 0x68]
mov eax, 8
call fcn.004da608
cmp dword [esp + 0x78], 5
jge 0x4cdc06
and dword [esp + 0x68], 0xffffff
mov dword [esp + 0x6c], 0
jmp 0x4cdc13
and dword [esp + 0x68], 0xffffffff
and dword [esp + 0x6c], 0x3fffffff
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
xor ecx, ecx
xor edx, edx
call fcn.004c1ee4
mov edi, eax
test eax, eax
jne 0x4cdc53
cmp dword [esp + 0x74], 0
jne 0x4cdc53
inc dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
cmp ecx, 0x64
jl 0x4cdbdf
test edi, edi
jne 0x4cdc68
cmp dword [esp + 0x74], 0
jne 0x4cdc68
mov edi, 0xd
jmp 0x4cfb6f
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x70]
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x70]
xor esi, esi
mov dword [ecx + 0x48], esi
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x78], ecx
xor eax, eax
mov al, byte [esi]
cmp eax, 0x37
jne 0x4cdce7
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x74], eax
jmp 0x4cdcf3
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
test byte [esi + 3], 1
je 0x4cdcff
mov ecx, dword [esp]
inc dword [ecx + 0x6c]
test byte [esi + 3], 2
je 0x4cdd1b
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
mov ecx, dword [esp + 0x68]
test byte [ecx + 0x1c], 1
je 0x4cdd37
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x18], eax
test byte [esi + 3], 0x10
je 0x4cdd46
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0x44]
jmp 0x4cdd48
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x68]
test byte [eax + 0x1d], 0x40
je 0x4cdd66
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x7c], ecx
jmp 0x4cdd6c
xor eax, eax
mov dword [esp + 0x7c], eax
push 0
push 0
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
call fcn.004c15d8
push dword [esp + 0x74]
push dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
xor edx, edx
mov ecx, dword [ecx + 0x18]
push ecx
mov eax, dword [esp + 0x88]
push eax
mov dl, byte [esi + 3]
and edx, 8
push edx
xor edx, edx
mov ecx, dword [esp + 0x94]
push ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
call fcn.004c46c4
mov edi, eax
mov eax, dword [esp + 0x78]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x78]
xor eax, eax
test edi, edi
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x78]
mov dword [ecx + 0x48], eax
jne case.0x4ca3e9.0
cmp dword [ebx + 0xbc], 0
je case.0x4ca3e9.0
cmp dword [esi + 0x10], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0xc]
shl ecx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + ecx]
mov dword [esp + 0x84], edx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x88], ecx
test byte [esi + 3], 4
je 0x4cde29
mov ecx, 0x17
jmp 0x4cde2e
mov ecx, 0x12
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0x88]
push eax
push dword [esp + 0x78]
push dword [esp + 0x78]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov eax, dword [ebx + 0xb8]
call dword [ebx + 0xbc]
jmp case.0x4ca3e9.0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x70], ecx
cmp dword [ebx + 0xbc], 0
je 0x4cdea5
cmp dword [esi + 0x10], 0
je 0x4cdea5
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x40]
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x70]
call fcn.004c92cc
mov edi, eax
test edi, edi
jne 0x4cfb6f
push 0
push 0
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
call fcn.004c15d8
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call fcn.004c48cc
mov edi, eax
mov eax, dword [esp + 0x70]
xor edx, edx
test edi, edi
mov dword [eax + 0x48], edx
jne 0x4cdf2d
cmp dword [ebx + 0xbc], 0
je 0x4cdf2d
cmp dword [esi + 0x10], 0
je 0x4cdf2d
mov ecx, dword [esp + 0x70]
mov eax, dword [ebx + 8]
mov ecx, dword [ecx + 0xc]
shl ecx, 4
mov edx, dword [eax + ecx]
mov dword [esp + 0x44], edx
mov edx, 9
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
push eax
push dword [esp + 0x70]
push dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
mov eax, dword [ebx + 0xb8]
call dword [ebx + 0xbc]
test byte [esi + 8], 1
je case.0x4ca3e9.0
mov ecx, dword [esp]
inc dword [ecx + 0x6c]
jmp case.0x4ca3e9.0
mov eax, dword [esp]
mov edx, dword [eax + 0x6c]
mov eax, ebx
call fcn.004c9cec
mov edx, dword [esp]
xor ecx, ecx
mov dword [edx + 0x6c], ecx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov eax, dword [esp]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x68]
call fcn.004c92cc
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x1f], 0
je 0x4cdfd7
lea edx, [esp + 0x74]
mov eax, dword [esp + 0x6c]
call fcn.004c1694
mov eax, dword [ebx + 0x48]
cdq
cmp edx, dword [esp + 0x78]
jne 0x4cdfc6
cmp eax, dword [esp + 0x74]
jae 0x4cdfcd
jmp 0x4cfb2b
jge 0x4cdfcd
jmp 0x4cfb2b
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], eax
jmp 0x4cdff2
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004c16e4
mov edx, dword [esp + 0x70]
cmp edx, dword [ebx + 0x48]
jbe 0x4cdff2
jmp 0x4cfb2b
xor ecx, ecx
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
call fcn.004d915c
test eax, eax
je 0x4ce00a
jmp 0x4cfb4b
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x70]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbf00
or cx, 0x10
mov word [eax + 0x1c], cx
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x1f], 0
je 0x4ce053
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
push ecx
mov ecx, dword [esp + 0x74]
xor edx, edx
mov eax, dword [esp + 0x70]
call fcn.004c1ac4
mov edi, eax
jmp 0x4ce06c
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [esp + 0x74]
xor edx, edx
mov eax, dword [esp + 0x70]
call fcn.004c1ad8
mov edi, eax
mov eax, dword [esp + 0x24]
mov byte [eax + 0x1f], 1
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov esi, dword [esi + 4]
mov eax, dword [ecx + esi*4]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x1c], 0
je 0x4ce0a7
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 1
jmp case.0x4ca3e9.0
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1d], 0
je 0x4ce0c8
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x34]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x38]
mov dword [esp + 0x70], edx
jmp 0x4ce14d
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x24], 0
je 0x4ce10b
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x78]
mov eax, dword [eax + 0x24]
call dword [esi + 0x30]
mov edi, eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp]
call fcn.004ca268
jmp 0x4ce14d
mov eax, dword [esp + 0x68]
call fcn.004c92cc
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x19], 0
je 0x4ce13c
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [edx + 0x40]
mov dword [esp + 0x70], ecx
jmp 0x4ce14d
lea edx, [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
call fcn.004c1694
mov edi, eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x70]
mov dword [eax + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x68]
cmp dword [edx], 0
je case.0x4ca3e9.0
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
call fcn.004bedf0
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
jne 0x4ce1cc
mov dword [esp + 0x70], 1
jmp 0x4ce1db
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004c1e94
mov edi, eax
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0x70]
mov byte [eax + 0x1c], dl
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1d], 0
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x19], 0
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 0x48], edx
cmp dword [esi + 8], 0
jle case.0x4ca3e9.0
cmp dword [esp + 0x70], 0
je case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov eax, dword [esp]
inc dword [eax + 0x80]
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], 1
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x4ce28c
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004c1e64
cmp dword [esp + 0x70], 0
mov edi, eax
jne 0x4ce26a
mov al, 1
jmp 0x4ce26c
xor eax, eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1a], al
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1d], 0
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x48], eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x19], 0
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x70]
mov byte [ecx + 0x1c], al
cmp dword [esp + 0x70], 0
je case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
cmp dword [ebx + 0xe0], 0
jne 0x4cfba9
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 0
jne 0x4ce2d8
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
jne 0x4ce2f6
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1c], 1
jmp case.0x4ca3e9.0
mov dword [esp + 0x70], 1
xor eax, eax
mov al, byte [esi]
cmp eax, 0x43
jne 0x4ce318
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004c2284
mov edi, eax
jmp 0x4ce327
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004c2398
mov edi, eax
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0x70]
mov byte [eax + 0x1c], dl
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x48], eax
cmp dword [esp + 0x70], 0
jne 0x4ce35c
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
cmp byte [esi + 3], 0
je 0x4ce35c
xor ecx, ecx
mov cl, byte [esi + 3]
mov esi, dword [esp]
inc dword [esi + ecx*4 + 0x78]
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x4ce3b6
mov eax, dword [esp + 0x1c]
call fcn.004d9278
mov edi, eax
jmp 0x4ce3b8
xor edi, edi
test edi, edi
jne case.0x4ca3e9.0
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x70]
cdq
push edx
push eax
push 0
push 0
mov ecx, dword [esi + 0xc]
push ecx
test byte [esi + 3], 0x10
je 0x4ce3f4
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x44]
jmp 0x4ce3f6
xor edx, edx
push edx
mov ecx, 0x5d9172
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
call fcn.004c46c4
mov edi, eax
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 0x48], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 8]
mov dword [esp + 0x74], ecx
mov ax, word [esi + 0xc]
mov word [esp + 0x78], ax
mov word [esp + 0x7a], 0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x84], edx
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x80]
xor ecx, ecx
mov eax, dword [esp + 0x78]
call fcn.004c1ee4
mov edi, eax
test edi, edi
jne 0x4ce4a6
cmp dword [esp + 0x70], 0
jne 0x4ce4a6
mov eax, dword [esp + 0x6c]
call fcn.004c48cc
mov edi, eax
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 0x48], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 1
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov eax, dword [esp + 0x6c]
call fcn.004c92cc
mov edi, eax
test edi, edi
jne 0x4cfb6f
mov eax, dword [esp + 0x6c]
cmp byte [eax + 0x1c], 0
jne case.0x4ca3e9.0
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.004c9b08
mov edi, eax
test edi, edi
je 0x4ce51e
jmp 0x4cfb6f
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x70]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x74]
mov dword [eax + 0x14], edx
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 4
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
je case.0x4ca3e9.0
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 8]
mov dword [esp + 0x70], ecx
mov ax, word [esi + 0x10]
mov word [esp + 0x74], ax
cmp byte [esi + 3], 0
je 0x4ce57f
mov word [esp + 0x76], 0xc
jmp 0x4ce586
mov word [esp + 0x76], 4
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x6c]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x80], edx
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x68]
call fcn.004c9c38
mov edi, eax
xor eax, eax
mov al, byte [esi]
cmp eax, 0x51
jne 0x4ce5bc
neg dword [esp + 0x6c]
jmp 0x4ce5c0
inc dword [esp + 0x6c]
cmp dword [esp + 0x6c], 0
jle case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebx + 0x88]
mov dword [esp + 0x70], ecx
jmp 0x4ce61e
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x4ce613
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov cl, byte [edx + 0x66]
cmp ecx, 2
jge 0x4ce613
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x58], 0
jl 0x4ce613
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, dword [edx + 0x40]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
jne 0x4ce5ea
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 1
cmp dword [esp + 0x6c], 1
jle 0x4ce647
mov edi, 6
mov eax, dword [esp]
mov byte [eax + 0x60], 2
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
shl ecx, 4
mov edi, dword [ebx + 8]
mov eax, dword [edi + ecx + 4]
lea ecx, [esp + 0x68]
mov edx, dword [esi + 4]
call fcn.004c5164
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov word [eax + 0x1c], 4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jne case.0x4ca3e9.0
cmp dword [esp + 0x68], 0
je case.0x4ca3e9.0
mov ecx, dword [esi + 4]
push ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.0049b3c8
mov cl, byte [esp + 0x74]
inc ecx
mov byte [esp + 0xc], cl
jmp case.0x4ca3e9.0
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 8]
mov eax, dword [ebx + 8]
shl edx, 4
cmp dword [esi + 0xc], 0
mov eax, dword [eax + edx + 4]
je 0x4ce6d6
lea ecx, [esp + 0x68]
jmp 0x4ce6d8
xor ecx, ecx
mov edx, dword [esi + 4]
call fcn.004c4f14
cmp dword [esi + 0xc], 0
mov edi, eax
je case.0x4ca3e9.0
mov eax, dword [esp]
mov edx, dword [esp + 0x68]
add dword [eax + 0x6c], edx
cmp dword [esi + 0xc], 0
jle case.0x4ca3e9.0
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
cdq
lea ecx, [ecx + ecx*4]
add dword [esi + ecx*8 + 0x10], eax
adc dword [esi + ecx*8 + 0x14], edx
jmp case.0x4ca3e9.0
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 4]
shl edx, 4
add edx, dword [ebx + 8]
mov dword [esp + 0x70], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x62
jne 0x4ce742
mov dword [esp + 0x6c], 1
jmp 0x4ce74a
mov dword [esp + 0x6c], 2
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x6c]
call fcn.004c4d70
mov edi, eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 1
jne 0x4ce789
mov eax, str.sqlite_temp_master
jmp 0x4ce78e
mov eax, str.sqlite_master
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], ebx
mov edx, dword [esi + 4]
mov dword [esp + 0x78], edx
mov ecx, dword [esp]
add ecx, 0x38
mov dword [esp + 0x7c], ecx
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [esp + 0x70]
push eax
mov edx, dword [esp + 0x70]
shl edx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + edx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.004dd850
add esp, 0x14
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
jne 0x4ce7de
mov edi, 7
jmp 0x4ce81e
mov byte [ebx + 0x7c], 1
xor eax, eax
mov dword [esp + 0x80], eax
lea edx, [esp + 0x74]
push edx
push 0
mov ecx, fcn.00498cdc
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.004b19b0
mov edi, eax
test edi, edi
jne 0x4ce80f
mov edi, dword [esp + 0x80]
mov edx, dword [esp + 0x70]
mov eax, ebx
call fcn.004de094
mov byte [ebx + 0x7c], 0
cmp edi, 7
jne case.0x4ca3e9.0
jmp 0x4cfb4b
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.004b2968
mov edi, eax
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00499fb4
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00499cf8
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.004a844c
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 8]
mov eax, ebx
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x68]
inc edx
shl edx, 2
call fcn.004de27c
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x4cfb4b
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x70], eax
jmp 0x4ce8e5
mov edx, dword [esp + 0x70]
shl edx, 3
lea edx, [edx + edx*4]
add edx, ebp
push edx
call fcn.004d950c
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edx + ecx*4], eax
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x68]
jl 0x4ce8c4
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x10]
push eax
lea edx, [esp + 0x78]
push edx
xor ecx, ecx
mov cl, byte [esi + 3]
shl ecx, 4
mov esi, dword [ebx + 8]
mov eax, dword [esi + ecx + 4]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.004c5d20
mov dword [esp + 0x78], eax
mov eax, ebx
mov edx, dword [esp + 0x6c]
call fcn.004de094
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov eax, ebp
call fcn.004d96ec
cmp dword [esp + 0x74], 0
jne 0x4ce953
jmp 0x4ce979
cmp dword [esp + 0x78], 0
jne 0x4ce961
jmp 0x4cfb4b
push 1
push fcn.004de03c
or ecx, 0xffffffff
mov edx, dword [esp + 0x80]
mov eax, ebp
call fcn.004d98e8
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.004d9144
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
test byte [ebp + 0x1c], 0x20
jne 0x4ce9c1
mov eax, ebp
call fcn.004d97c4
test byte [ebp + 0x1c], 0x20
je 0x4cfb4b
mov edx, dword [esp + 0x1c]
push dword [edx + 0x14]
push dword [edx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.004da208
jmp case.0x4ca3e9.0
cmp dword [ebx + 0xe0], 0
jne 0x4cfba9
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 0x20
je 0x4cea09
lea edx, [esp + 0x68]
mov eax, dword [ebp + 0x10]
call fcn.004da488
test eax, eax
jne 0x4cea1d
mov eax, ebp
call fcn.004d96ec
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x20]
call fcn.004d975c
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x68], edx
test byte [ebp + 0x1c], 0x20
jne 0x4cea79
mov eax, ebp
call fcn.004d97c4
test byte [ebp + 0x1c], 0x20
je 0x4cfb4b
cmp dword [esp + 0x68], 0
je 0x4ceabc
mov edx, dword [esp + 0x20]
push dword [edx + 0x14]
push dword [edx + 0x10]
cmp dword [esp + 0x70], 0
jl 0x4cea9a
mov dl, byte [esp + 0x70]
and dl, 0xf
jmp 0x4cea9c
mov dl, 0xff
mov eax, dword [ebp + 0x10]
call fcn.004da4cc
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x4ceabc
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
cmp dword [esp + 0x68], 0
jl case.0x4ca3e9.0
mov ecx, dword [esp + 0x20]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.004da208
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0x10]
mov dword [esp + 0x80], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
cmp byte [esi + 3], 0
je 0x4ceb4c
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x84], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0xa8]
mov dword [esp + 0x7c], ecx
jmp 0x4ceb2a
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x4ceb41
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x20]
cmp eax, dword [esp + 0x84]
jne 0x4ceb1f
cmp dword [esp + 0x7c], 0
jne case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0xb0]
cmp ecx, dword [ebx + 0x70]
jl 0x4ceb7a
push str.too_many_levels_of_trigger_recursion
push ebx
mov eax, dword [esp + 8]
mov edi, 1
add eax, 0x38
push eax
call fcn.004de418
add esp, 0xc
jmp case.0x4ca3e9.0
mov edx, dword [esp + 0x70]
test byte [edx + 0x1c], 0x40
jne 0x4cecd0
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x80]
mov ecx, dword [ecx + 8]
add ecx, dword [eax + 0xc]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x80]
shl edx, 3
mov ecx, dword [eax + 0xc]
shl ecx, 2
mov eax, ebx
lea edx, [edx + edx*4]
add edx, ecx
add edx, 0x40
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x6c]
call fcn.004de258
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x7c], 0
jne 0x4cebdb
jmp 0x4cfb4b
mov eax, dword [esp + 0x70]
call fcn.004d9468
mov edx, dword [esp + 0x70]
mov word [edx + 0x1c], 0x40
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov dword [ecx + 0x10], esi
mov eax, dword [esp + 0x7c]
mov edx, dword [esp]
mov dword [eax], edx
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
mov dword [ecx + 0x24], esi
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [eax + 0xc]
mov dword [ecx + 0x28], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 4]
mov dword [ecx + 4], eax
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 8]
mov dword [eax + 0x10], ecx
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0x18]
mov dword [eax + 0x14], ecx
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0x44]
mov dword [eax + 0x18], ecx
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov cx, word [edx + 0x32]
mov word [eax + 0x1c], cx
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 4]
mov dword [eax + 8], ecx
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0x1c]
mov dword [eax + 0xc], ecx
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x20], ecx
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x24]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x7c]
add ecx, 0x40
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x7c]
add eax, 0x40
mov dword [esp + 0x74], eax
jmp 0x4cecc4
mov edx, dword [esp + 0x74]
mov word [edx + 0x1c], 1
mov ecx, dword [esp + 0x74]
mov dword [ecx], ebx
add dword [esp + 0x74], 0x28
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x78]
jne 0x4cecaf
jmp 0x4cecdb
mov edx, dword [esp + 0x70]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x7c], ecx
mov eax, dword [esp]
inc dword [eax + 0xb0]
mov edx, dword [esp]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0xa8]
mov dword [eax + 0x38], ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x30]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x30], eax
mov edx, dword [esp]
mov esi, dword [esp + 0x7c]
mov ecx, dword [edx + 0x6c]
xor edx, edx
mov dword [esi + 0x34], ecx
mov eax, dword [esp]
mov dword [eax + 0x6c], edx
mov ecx, dword [esp]
mov esi, dword [esp + 0x7c]
mov dword [ecx + 0xa8], esi
mov eax, dword [esp + 0x7c]
add eax, 0x18
mov dword [esp + 0x18], eax
mov edx, dword [esp]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp]
mov ecx, dword [ecx + 0x24]
mov dword [eax + 0x18], ecx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp]
mov cx, word [edx + 0x28]
mov word [eax + 0x32], cx
mov edx, dword [esp]
mov eax, dword [esp]
mov ecx, dword [edx + 0x18]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
add ecx, 0x28
mov dword [eax + 0x44], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [edx]
mov dword [esp + 8], ecx
mov eax, dword [esp]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x80]
mov eax, dword [esp]
mov ecx, dword [edx + 4]
mov dword [eax + 0x1c], ecx
mov dword [esp + 4], 0xffffffff
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov ecx, dword [edx + 0xa8]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
lea edx, [edx + edx*4]
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + edx*4 + 4]
add edx, dword [esi + 4]
mov ecx, edx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [eax + 0x10]
mov dword [esp + 0x6c], ecx
mov ecx, 0x1000
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
call fcn.004d9838
jmp case.0x4ca3e9.0
cmp dword [esi + 4], 0
je 0x4cee08
mov eax, dword [esi + 8]
cdq
add dword [ebx + 0x1ec], eax
adc dword [ebx + 0x1f0], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [esi + 8]
cdq
add dword [ecx + 0x90], eax
adc dword [ecx + 0x94], edx
jmp case.0x4ca3e9.0
cmp dword [esi + 4], 0
je 0x4cee4d
cmp dword [ebx + 0x1f0], 0
jne case.0x4ca3e9.0
cmp dword [ebx + 0x1ec], 0
jne case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
mov eax, dword [esp]
cmp dword [eax + 0x94], 0
jne case.0x4ca3e9.0
cmp dword [eax + 0x90], 0
jne case.0x4ca3e9.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
cmp dword [ecx + 0xa8], 0
je 0x4ceebf
mov eax, dword [esp]
mov edx, dword [eax + 0xa8]
mov dword [esp + 0x6c], edx
jmp 0x4cee9d
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x38], 0
jne 0x4cee92
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x6c]
shl edx, 3
mov eax, dword [ecx + 0x10]
lea edx, [edx + edx*4]
add eax, edx
mov dword [esp + 0x68], eax
jmp 0x4ceed0
mov ecx, dword [esi + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
call fcn.004d9644
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
call fcn.004d9644
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
cmp edx, dword [ecx + 0x14]
jne 0x4cef11
cmp eax, dword [ecx + 0x10]
jae case.0x4ca3e9.0
jmp 0x4cef17
jge case.0x4ca3e9.0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
cmp dword [ebp + 0x14], 0
jne 0x4cef50
cmp dword [ebp + 0x10], 0
jbe case.0x4ca3e9.0
jmp 0x4cef56
jle case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
cmp dword [ebp + 0x14], 0
jne 0x4cef83
cmp dword [ebp + 0x10], 0
jae case.0x4ca3e9.0
jmp 0x4cef89
jge case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
cmp dword [ebp + 0x14], 0
jne case.0x4ca3e9.0
cmp dword [ebp + 0x10], 0
jne case.0x4ca3e9.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 4], ecx
jmp case.0x4ca3e9.0
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov edx, dword [esp]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0xb4], ecx
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x4cf022
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x74]
call fcn.004ca07c
inc dword [esp + 0x6c]
add dword [esp + 0x74], 0x28
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x4ceffe
mov ecx, dword [esi + 0x10]
xor edx, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x70]
xor ecx, ecx
inc dword [eax + 0x18]
xor eax, eax
mov word [esp + 0x9c], 1
mov dword [esp + 0x84], edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], eax
xor edx, edx
mov dword [esp + 0x80], ebx
xor ecx, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0x78]
test byte [eax + 3], 8
je 0x4cf0a4
mov edx, dword [esi - 4]
mov dword [esp + 0xb0], edx
lea eax, [esp + 0x78]
mov esi, dword [esp + 0x78]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x68]
call dword [esi + 0x10]
cmp dword [esp + 0xac], 0
je 0x4cf0ee
lea eax, [esp + 0x80]
call fcn.004c6660
push eax
push 0x5d9170
push ebx
mov ecx, dword [esp + 0xc]
add ecx, 0x38
push ecx
call fcn.004de418
add esp, 0x10
mov edi, dword [esp + 0xac]
lea eax, [esp + 0x80]
call fcn.004d9468
jmp case.0x4ca3e9.0
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x68]
call fcn.004d93a8
mov edi, eax
test edi, edi
je 0x4cf142
mov eax, dword [esp + 0x68]
call fcn.004c6660
push eax
push 0x5d9170
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
xor edx, edx
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0xd]
call fcn.004d9144
mov eax, dword [esp + 0x68]
call fcn.004d9814
test eax, eax
je case.0x4ca3e9.0
jmp 0x4cfb2b
xor edx, edx
or ecx, 0xffffffff
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
lea eax, [esp + 0x70]
push eax
lea edx, [esp + 0x78]
push edx
mov eax, ebx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
call fcn.004aee9c
mov edi, eax
cmp edi, 5
jne 0x4cf1a5
mov dword [esp + 0x6c], 1
xor edi, edi
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x78], edx
jmp 0x4cf1de
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + ecx*4 + 0x6c]
cdq
push edx
push eax
mov eax, dword [esp + 0x80]
call fcn.004d975c
inc dword [esp + 0x68]
add dword [esp + 0x78], 0x28
cmp dword [esp + 0x68], 3
jl 0x4cf1be
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x70], edx
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 8]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.004c5340
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
call fcn.004d66cc
mov dword [esp + 0x74], eax
cmp dword [esp + 0x70], 0xffffffff
jne 0x4cf22b
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x6c]
call fcn.004d66d4
test eax, eax
jne 0x4cf240
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x6c]
call fcn.004d6410
mov dword [esp + 0x78], eax
cmp dword [esp + 0x70], 5
jne 0x4cf272
mov edx, dword [esp + 0x78]
cmp byte [edx], 0
je 0x4cf26a
mov eax, dword [esp + 0x6c]
call fcn.004d67ac
test eax, eax
jne 0x4cf272
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x74]
je 0x4cf333
cmp dword [esp + 0x74], 5
je 0x4cf292
cmp dword [esp + 0x70], 5
jne 0x4cf333
cmp byte [ebx + 0x1c], 0
je 0x4cf2a1
cmp dword [ebx + 0x8c], 1
jle 0x4cf2d7
cmp dword [esp + 0x70], 5
mov edi, 1
jne 0x4cf2b4
mov eax, str.into
jmp 0x4cf2b9
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
jmp case.0x4ca3e9.0
cmp dword [esp + 0x74], 5
jne 0x4cf2fc
mov eax, dword [esp + 0x6c]
call fcn.004d6884
mov edi, eax
test edi, edi
jne 0x4cf311
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004d65f4
jmp 0x4cf311
cmp dword [esp + 0x74], 4
jne 0x4cf311
mov edx, 2
mov eax, dword [esp + 0x6c]
call fcn.004d65f4
test edi, edi
jne 0x4cf333
cmp dword [esp + 0x70], 5
jne 0x4cf323
mov edx, 2
jmp 0x4cf328
mov edx, 1
mov eax, dword [esp + 0x68]
call fcn.004c6128
mov edi, eax
test edi, edi
je 0x4cf33f
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.004d65f4
mov dword [esp + 0x70], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 0xa02
mov eax, dword [esp + 0x70]
call fcn.004a0d6c
mov edx, dword [esp + 0x24]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
call fcn.004d809c
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
xor edx, edx
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
mov dl, byte [esp + 0xd]
mov eax, dword [esp + 0x24]
call fcn.004d9144
jmp case.0x4ca3e9.0
mov eax, dword [esp]
mov edx, ebx
add eax, 0x38
call fcn.004cffe4
mov edi, eax
jmp case.0x4ca3e9.0
mov eax, dword [esi + 4]
shl eax, 4
mov edx, dword [ebx + 8]
mov ecx, dword [edx + eax + 4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
call fcn.004c104c
mov edi, eax
cmp edi, 0x65
jne case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
xor edi, edi
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
cmp dword [esi + 4], 0
jne 0x4cf404
mov eax, ebx
call fcn.004c9cfc
jmp case.0x4ca3e9.0
mov edx, dword [esp]
mov byte [edx + 0x63], 1
jmp case.0x4ca3e9.0
mov cl, byte [esi + 0xc]
mov byte [esp + 0x4c], cl
cmp byte [esp + 0x4c], 0
jne 0x4cf428
test byte [ebx + 0xe], 8
jne case.0x4ca3e9.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
shl eax, 4
mov edx, dword [ebx + 8]
mov eax, dword [edx + eax + 4]
mov cl, byte [esp + 0x4c]
mov edx, dword [esi + 8]
call fcn.004c6070
mov edi, eax
mov eax, edi
and eax, 0xff
cmp eax, 6
jne case.0x4ca3e9.0
mov edx, dword [esi + 0x10]
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x54]
push ecx
push str.database_table_is_locked:__s
push ebx
mov ecx, dword [esp + 0xc]
add ecx, 0x38
push ecx
call fcn.004de418
add esp, 0x10
jmp case.0x4ca3e9.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
mov eax, ebx
mov edx, dword [esp + 0x68]
call fcn.004b10fc
cmp dword [esp + 0x68], 0
mov edi, eax
je case.0x4ca3e9.0
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 8]
mov eax, dword [esp]
call fcn.004ca268
jmp case.0x4ca3e9.0
mov edx, dword [esp]
add edx, 0x38
push edx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.004b0d64
mov edi, eax
jmp case.0x4ca3e9.0
mov eax, dword [esp]
mov byte [eax + 0x66], 2
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.004b0f7c
mov edi, eax
mov eax, dword [esp]
mov byte [eax + 0x66], 0
jmp case.0x4ca3e9.0
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x70]
mov ecx, dword [edx]
lea edx, [esp + 0x6c]
mov dword [esp + 0x74], ecx
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
call dword [edi + 0x18]
mov edi, eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp]
call fcn.004ca268
test edi, edi
jne case.0x4ca3e9.0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [ecx], eax
push 0xffffffffffffffff
push 0
xor ecx, ecx
mov edx, dword [esi + 4]
mov eax, dword [esp + 8]
call fcn.004ca0b0
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x4cf57d
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov edx, dword [eax]
mov eax, dword [esp + 0x68]
mov dword [eax + 0x28], edx
jmp case.0x4ca3e9.0
mov byte [ebx + 0x1e], 1
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
call dword [esi + 0x1c]
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
add ecx, 0x28
mov dword [esp + 0x78], ecx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edx]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x6c], eax
xor edx, edx
mov dword [esp + 0x88], edx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x90], ecx
xor eax, eax
mov dword [esp + 0x8c], eax
jmp 0x4cf661
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
shl ecx, 3
mov eax, dword [esp + 0x8c]
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x78]
add ecx, 0x28
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov eax, dword [edx + eax*4]
call fcn.004ca07c
inc dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x68]
jl 0x4cf61f
mov ecx, dword [esp]
mov byte [ecx + 0x66], 1
mov ecx, dword [esp + 0x68]
push ecx
mov eax, dword [esp + 0x94]
push eax
mov edi, dword [esp + 0x78]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
call dword [edi + 0x20]
mov edi, eax
mov eax, dword [esp]
mov byte [eax + 0x66], 0
mov edx, dword [esp + 0x80]
mov eax, dword [esp]
call fcn.004ca268
test edi, edi
jne 0x4cf6c5
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
call dword [ebp + 0x28]
mov dword [esp + 0x88], eax
cmp dword [esp + 0x88], 0
je 0x4cf6d7
mov edx, dword [esi + 8]
dec edx
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x84]
mov byte [ecx + 0x1c], 0
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x58], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x58]
cmp byte [edx + 0x1c], 0
je 0x4cf720
mov eax, dword [esp + 0x70]
call fcn.004d96ec
jmp case.0x4ca3e9.0
mov edx, dword [esp + 0x58]
mov ecx, dword [edx + 0x24]
mov ecx, dword [ecx]
mov dword [esp + 0x68], ecx
mov ecx, 0x3c
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
lea eax, [esp + 0x74]
mov dword [esp + 0x6c], edx
xor edx, edx
call fcn.00478478
lea eax, [esp + 0x7c]
mov edx, dword [esp + 0x70]
call fcn.004d98b8
mov cx, word [esp + 0x98]
lea edx, [esp + 0x74]
and cx, 0xbf00
or cx, 1
mov word [esp + 0x98], cx
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0x24]
call dword [edi + 0x2c]
mov edi, eax
mov edx, dword [esp + 0x68]
mov eax, dword [esp]
call fcn.004ca268
cmp dword [esp + 0xa8], 0
je 0x4cf7a1
mov edi, dword [esp + 0xa8]
xor edx, edx
lea eax, [esp + 0x7c]
mov dl, byte [esp + 0xd]
call fcn.004d9144
lea edx, [esp + 0x7c]
mov eax, dword [esp + 0x70]
call fcn.004d98b8
mov eax, dword [esp + 0x70]
call fcn.004d9814
test eax, eax
je case.0x4ca3e9.0
jmp 0x4cfb2b
xor edx, edx
mov dword [esp + 0x70], edx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1c], 0
je 0x4cf7fd
jmp case.0x4ca3e9.0
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp]
mov byte [ecx + 0x66], 1
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x6c]
mov eax, dword [eax + 0x24]
call dword [edi + 0x24]
mov edi, eax
mov eax, dword [esp]
mov byte [eax + 0x66], 0
mov edx, dword [esp + 0x68]
mov eax, dword [esp]
call fcn.004ca268
test edi, edi
jne 0x4cf854
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x6c]
mov eax, dword [edx + 0x24]
call dword [ebp + 0x28]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
jne case.0x4ca3e9.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 4], eax
jmp case.0x4ca3e9.0
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 8]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov edi, eax
mov edx, dword [esp + 0x68]
mov eax, dword [esp]
call fcn.004ca268
mov ecx, dword [esp]
mov byte [ecx + 0x63], 0
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x34], 0
je case.0x4ca3e9.0
mov cl, byte [ebx + 0x22]
mov byte [esp + 0x5c], cl
mov eax, dword [esp]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x80], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
xor eax, eax
mov dword [esp + 0x74], eax
jmp 0x4cf937
mov eax, dword [esp + 0x84]
call fcn.004ca07c
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
mov dword [edx + ecx*4], eax
add dword [esp + 0x84], 0x28
inc dword [esp + 0x74]
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jl 0x4cf90a
mov cl, byte [esi + 3]
mov byte [ebx + 0x22], cl
lea ecx, [esp + 0x78]
push ecx
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
call dword [edi + 0x34]
mov edi, eax
mov al, byte [esp + 0x5c]
mov byte [ebx + 0x22], al
mov edx, dword [esp + 0x68]
mov eax, dword [esp]
call fcn.004ca268
test edi, edi
jne 0x4cf997
cmp dword [esi + 4], 0
je 0x4cf997
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
cmp edi, 0x13
jne 0x4cf9d2
mov ecx, dword [esi + 0x10]
cmp byte [ecx + 0x10], 0
je 0x4cf9d2
xor ecx, ecx
mov cl, byte [esi + 3]
cmp ecx, 4
jne 0x4cf9b6
xor edi, edi
jmp case.0x4ca3e9.0
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 5
jne 0x4cf9c4
mov dl, 2
jmp 0x4cf9c7
mov dl, byte [esi + 3]
mov eax, dword [esp]
mov byte [eax + 0x60], dl
jmp case.0x4ca3e9.0
mov ecx, dword [esp]
inc dword [ecx + 0x6c]
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 8]
mov eax, dword [eax + ecx + 4]
call fcn.004bfcf4
xor edx, edx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 8]
shl ecx, 4
mov edx, dword [eax + ecx + 4]
xor ecx, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ecx
cmp dword [esi + 0xc], 0
je 0x4cfa3a
mov eax, dword [esp + 0x64]
call fcn.004bfcf4
mov dword [esp + 0x60], eax
mov edx, dword [esi + 0xc]
cmp edx, dword [esp + 0x60]
jbe 0x4cfa3a
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
call fcn.004c04bc
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4ca3e9.0
cmp dword [ebx + 0x98], 0
je case.0x4ca3e9.0
cmp dword [esi + 0x10], 0
je 0x4cfa68
mov eax, dword [esi + 0x10]
jmp 0x4cfa71
mov edx, dword [esp]
mov eax, dword [edx + 0xa0]
mov dword [esp + 0x68], eax
test eax, eax
je case.0x4ca3e9.0
mov edx, dword [esp + 0x68]
mov eax, dword [esp]
call fcn.004cfc20
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [ebx + 0x9c]
call dword [ebx + 0x98]
mov edx, dword [esp + 0x6c]
mov eax, ebx
call fcn.004de094
jmp case.0x4ca3e9.0
inc dword [esp + 4]
test edi, edi
je 0x4ca360
mov edx, dword [esp]
mov dword [edx + 0x5c], edi
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x38]
push ecx
mov eax, dword [esp + 4]
mov edx, dword [eax + 0xa0]
push edx
mov ecx, dword [esp + 0xc]
push ecx
push str.statement_aborts_at__d:___s___s
push edi
call fcn.004dd9c8
add esp, 0x14
mov eax, dword [esp]
call fcn.004c8ddc
cmp edi, 0xc0a
jne 0x4cfaf1
mov byte [ebx + 0x1e], 1
mov edi, 1
xor eax, eax
mov al, byte [esp + 0xc]
test eax, eax
jle 0x4cfb0e
xor edx, edx
mov eax, ebx
mov dl, byte [esp + 0xc]
dec edx
call fcn.00499d6c
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x30], edx
mov edx, dword [esp + 0x34]
mov dword [ebx + 0x34], edx
mov eax, dword [esp]
call fcn.004c7fdc
mov eax, edi
jmp 0x4cfbd7
push str.string_or_blob_too_big
push ebx
mov edx, dword [esp + 8]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0xc
mov edi, 0x12
jmp 0x4cfab2
mov byte [ebx + 0x1e], 1
push 0x5d9460
push ebx
mov eax, dword [esp + 8]
add eax, 0x38
push eax
call fcn.004de418
add esp, 0xc
mov edi, 7
jmp 0x4cfab2
cmp byte [ebx + 0x1e], 0
je 0x4cfb7a
mov edi, 7
cmp edi, 0xc0a
je 0x4cfab2
mov eax, edi
call fcn.004ae7a4
push eax
push 0x5d9170
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
jmp 0x4cfab2
mov edi, 9
mov eax, dword [esp]
mov dword [eax + 0x5c], edi
mov eax, edi
call fcn.004ae7a4
push eax
push 0x5d9170
push ebx
mov edx, dword [esp + 0xc]
add edx, 0x38
push edx
call fcn.004de418
add esp, 0x10
jmp 0x4cfab2
add esp, 0x144
pop ebp
pop edi
pop esi
pop ebx
ret