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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
xor eax, eax
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
xor eax, eax
mov ecx, dword [edx + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov ebx, dword [edx]
mov byte [ebp - 0xd], 0
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4d]
mov byte [ebp - 0xe], cl
xor ecx, ecx
mov dword [ebp - 0x18], ecx
xor ecx, ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
xor eax, eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], eax
xor edx, edx
mov dword [ebp - 0x30], edx
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004f665c
pop ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5c], 7
jne 0x4fa031
jmp 0x5006f9
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp + 8]
xor eax, eax
mov dword [edx + 0x14], eax
xor edx, edx
mov dword [ebx + 0x1bc], edx
cmp dword [ebx + 0xe8], 0
jne 0x50075d
cmp dword [ebx + 0x11c], 0
setne cl
and ecx, 1
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x58]
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x500654
cmp byte [ebx + 0x40], 0
jne 0x5006f9
mov esi, dword [ebp - 4]
shl esi, 2
lea esi, [esi + esi*4]
add esi, dword [ebp - 8]
cmp dword [ebp - 0x14], 0
je 0x4fa0c6
mov eax, dword [ebx + 0x124]
cmp eax, dword [ebp - 0x18]
jne 0x4fa0c3
mov edx, dword [ebx + 0x120]
push edx
call dword [ebx + 0x11c]
pop ecx
test eax, eax
je 0x4fa0be
mov dword [ebp - 0xc], 9
jmp 0x500654
xor ecx, ecx
mov dword [ebp - 0x18], ecx
inc dword [ebp - 0x18]
test byte [esi + 2], 2
je 0x4fa0f9
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
test word [eax + 0x1c], 0x2460
je 0x4fa0f0
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4b5c
pop ecx
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], 4
xor eax, eax
mov al, byte [esi]
cmp eax, 0x94
ja case.0x4fa108.0
jmp dword [eax*4 + 0x4fa10f]
cmp dword [ebx + 0xe8], 0
jne 0x50075d
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov word [edi + 0x1c], 4
mov eax, dword [ebp - 4]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x10]
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov word [edi + 0x1c], 4
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 4]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
mov ecx, dword [ebp - 0x130]
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
test byte [eax + 0x1c], 1
je case.0x4fa108.0
cmp dword [esi + 4], 0
jne 0x4fa49e
mov edx, dword [ebp + 8]
cmp dword [edx + 0xa0], 0
je 0x4fa49e
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xa0]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 4]
mov dword [eax + 0xa0], ecx
mov edx, dword [ebp + 8]
dec dword [edx + 0xa8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x64]
push eax
push ebx
call fcn.004f8618
add esp, 8
mov edx, dword [ebp - 0x3c]
push edx
call fcn.004f6f14
pop ecx
mov dword [ebp - 4], eax
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x34], ecx
cmp dword [esi + 8], 4
jne 0x4fa487
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
dec eax
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
mov dword [ebp - 0x1c], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 4]
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp + 8]
mov al, byte [esi + 8]
mov byte [edx + 0x60], al
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [edx + 0x58], ecx
cmp dword [esi + 0x10], 0
je 0x4fa4fd
mov ecx, dword [esi + 0x10]
push ecx
push 0x571759
push ebx
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
call fcn.004ddcb4
add esp, 0x10
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x98]
push eax
mov edx, dword [ebp - 4]
push edx
push str.abort_at__d_in___s_:__s
mov ecx, dword [esi + 4]
push ecx
call fcn.004df038
add esp, 0x14
jmp 0x4fa525
mov eax, dword [ebp + 8]
cmp dword [eax + 0x5c], 0
je 0x4fa525
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x98]
push ecx
mov eax, dword [ebp - 4]
push eax
push str.constraint_failed_at__d_in___s_
mov edx, dword [esi + 4]
push edx
call fcn.004df038
add esp, 0x10
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f76ac
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 5
jne 0x4fa54b
mov eax, 5
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x5c], eax
jmp 0x5006ba
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x5c], 0
je 0x4fa55b
mov ecx, 1
jmp 0x4fa560
mov ecx, 0x65
mov dword [ebp - 0xc], ecx
jmp 0x5006ba
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0x14], ecx
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], 8
mov edx, dword [ebp - 0x28]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov dword [edx + 8], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 0xc], ecx
jmp case.0x4fa108.0
mov byte [esi], 9
mov edx, dword [esi + 0x10]
push edx
call fcn.004df8d0
pop ecx
mov dword [esi + 4], eax
xor ecx, ecx
mov cl, byte [ebp - 0xe]
dec ecx
je 0x4fa64b
push 0
push 1
push 0xffffffffffffffff
mov eax, dword [esi + 0x10]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f50b4
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x12
je 0x5006d8
xor ecx, ecx
mov cl, byte [ebp - 0xe]
push ecx
mov eax, dword [ebp - 0x28]
push eax
call fcn.004f4840
add esp, 8
test eax, eax
jne 0x5006f9
mov edx, dword [ebp - 0x28]
xor eax, eax
mov dword [edx + 0x24], eax
mov edx, dword [ebp - 0x28]
or word [edx + 0x1c], 0x800
mov ecx, dword [ebp - 0x28]
and word [ecx + 0x1c], 0xfbff
cmp byte [esi + 1], 0xff
jne 0x4fa635
mov ecx, dword [esi + 0x10]
push ecx
push ebx
call fcn.004dd8c8
add esp, 8
mov byte [esi + 1], 0xff
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 4]
mov dword [esi + 0x10], edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x18]
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
cmp edx, dword [ebx + 0x58]
jle case.0x4fa108.9
jmp 0x5006d8
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], 0xa02
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x10]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 4]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0x28]
mov al, byte [ebp - 0xe]
mov byte [edx + 0x1f], al
jmp case.0x4fa108.0
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
mov dword [ebp - 0x130], edx
cmp dword [esi + 4], 0
je 0x4fa699
mov cx, 0x101
jmp 0x4fa69d
mov cx, 1
mov word [ebp - 0x12c], cx
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], cx
jmp 0x4fa6da
add dword [ebp - 0x28], 0x28
mov edx, dword [ebp - 0x28]
test word [edx + 0x1c], 0x2460
je 0x4fa6c6
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4b5c
pop ecx
mov eax, dword [ebp - 0x28]
mov dx, word [ebp - 0x12c]
mov word [eax + 0x1c], dx
dec dword [ebp - 0x130]
cmp dword [ebp - 0x130], 0
jg 0x4fa6ad
jmp case.0x4fa108.0
push 0
push 0
mov ecx, dword [esi + 4]
push ecx
mov eax, dword [esi + 0x10]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f50b4
add esp, 0x14
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp - 0xe]
mov byte [ecx + 0x1f], al
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
mov eax, dword [ebp + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [eax + 0x48]
add edx, 0xffffffd8
mov dword [ebp - 0x130], edx
mov edx, dword [ebp - 0x130]
push edx
call fcn.004f4fbc
pop ecx
test eax, eax
je 0x4fa73c
jmp 0x5006d8
push 0x800
mov ecx, dword [ebp - 0x130]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4fe8
add esp, 0xc
jmp case.0x4fa108.0
mov eax, dword [esi + 0xc]
inc eax
mov dword [ebp - 0x12c], eax
mov edx, dword [esi + 4]
mov dword [ebp - 0x128], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x124], ecx
mov edi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x124]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
jmp 0x4fa7c9
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x24]
mov dword [ebp - 0x130], ecx
mov ecx, dword [ebp - 0x28]
xor eax, eax
mov dword [ecx + 0x24], eax
push edi
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f5080
add esp, 8
mov ecx, dword [ebp - 0x130]
mov dword [edi + 0x24], ecx
add edi, 0x28
add dword [ebp - 0x28], 0x28
mov eax, dword [ebp - 0x12c]
add dword [ebp - 0x12c], 0xffffffff
test eax, eax
jne 0x4fa798
jmp case.0x4fa108.0
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x130], edx
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push 0x1000
push edi
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4fe8
add esp, 0xc
mov ecx, dword [ebp - 0x28]
test byte [ecx + 0x1d], 0x10
je 0x4fa831
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4944
pop ecx
test eax, eax
je 0x4fa831
jmp 0x5006f9
mov eax, dword [ebp - 0x130]
add dword [ebp - 0x130], 0xffffffff
test eax, eax
je case.0x4fa108.0
add dword [ebp - 0x28], 0x28
add edi, 0x28
jmp 0x4fa803
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
push 0x1000
push edi
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4fe8
add esp, 0xc
jmp case.0x4fa108.0
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f7640
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4fa89b
jmp case.0x4fa108.0
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.004f754c
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fa8b7
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [ecx + 0x54]
add ecx, 2
or ecx, 1
mov dword [eax + 0x54], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebp + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
xor ecx, ecx
mov dword [eax + 0x14], edx
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x12c], ecx
jmp 0x4fa951
mov eax, dword [ebp - 0x12c]
lea ecx, [eax + eax*4]
mov edx, dword [ebp - 0x130]
test byte [edx + ecx*8 + 0x1d], 0x10
je 0x4fa919
shl eax, 3
lea eax, [eax + eax*4]
add eax, edx
push eax
call fcn.004f4944
pop ecx
test eax, eax
je 0x4fa919
jmp 0x5006f9
mov edx, dword [ebp - 0x12c]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x130]
push edx
call fcn.004f4a04
pop ecx
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x130]
push ecx
call fcn.004f9d5c
pop ecx
inc dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [esi + 8]
jl 0x4fa8eb
cmp byte [ebx + 0x40], 0
jne 0x5006f9
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
inc eax
mov dword [edx + 0x58], eax
mov dword [ebp - 0xc], 0x64
jmp 0x5006ba
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl edi, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov cx, word [edi + 0x1c]
mov esi, dword [ebp - 0x20]
or cx, word [esi + 0x1c]
test cl, 1
je 0x4fa9c5
mov eax, dword [ebp - 0x28]
push eax
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
test byte [edi + 0x1d], 0x40
je 0x4fa9d4
push edi
call fcn.004f49a8
pop ecx
jmp 0x4fa9d6
xor eax, eax
test eax, eax
jne 0x5006f9
mov edx, dword [ebp - 0x20]
test byte [edx + 0x1d], 0x40
je 0x4fa9f3
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004f49a8
pop ecx
jmp 0x4fa9f5
xor eax, eax
test eax, eax
jne 0x5006f9
test byte [edi + 0x1c], 0x12
jne 0x4faa1b
xor edx, edx
mov dl, byte [ebp - 0xe]
push edx
push edi
call fcn.004f4a5c
add esp, 8
test eax, eax
je 0x4faa1b
jmp 0x5006f9
mov ecx, dword [ebp - 0x20]
test byte [ecx + 0x1c], 0x12
jne 0x4faa3f
xor ecx, ecx
mov cl, byte [ebp - 0xe]
push ecx
mov eax, dword [ebp - 0x20]
push eax
call fcn.004f4a5c
add esp, 8
test eax, eax
je 0x4faa3f
jmp 0x5006f9
mov eax, dword [edi + 0x18]
mov edx, dword [ebp - 0x20]
add eax, dword [edx + 0x18]
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
mov eax, dword [ebx + 0x58]
cdq
cmp edx, dword [ebp - 0x12c]
jne 0x4faa6e
cmp eax, dword [ebp - 0x130]
jae 0x4faa75
jmp 0x5006d8
jge 0x4faa75
jmp 0x5006d8
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov cx, word [ecx + 0x1c]
and cx, 0xbe00
or cx, 2
mov word [eax + 0x1c], cx
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 0x20]
sete cl
and ecx, 1
push ecx
mov eax, dword [ebp - 0x130]
add eax, 2
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4868
add esp, 0xc
test eax, eax
je 0x4faab8
jmp 0x5006f9
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 0x20]
je 0x4faadd
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x18]
push eax
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + 4]
push ecx
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 4]
push edx
call fcn.005444b4
add esp, 0xc
mov ecx, dword [edi + 0x18]
push ecx
mov eax, dword [edi + 4]
push eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov ecx, dword [edx + 4]
add ecx, dword [eax + 0x18]
push ecx
call fcn.005444b4
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x130]
add esp, 0xc
mov ecx, dword [edx + 4]
mov byte [ecx + eax], 0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x130]
mov ecx, dword [edx + 4]
mov byte [ecx + eax + 1], 0
mov ecx, dword [ebp - 0x28]
or word [ecx + 0x1c], 0x200
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x130]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp - 0xe]
mov byte [ecx + 0x1f], al
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
push edi
call fcn.004f9e70
pop ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
push edx
call fcn.004f9e70
pop ecx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov cx, word [edi + 0x1c]
mov eax, dword [ebp - 0x20]
or cx, word [eax + 0x1c]
movzx edx, cx
mov dword [ebp - 0x12c], edx
test byte [ebp - 0x12c], 1
jne 0x4faf38
mov cx, word [edi + 0x1c]
mov eax, dword [ebp - 0x20]
and cx, word [eax + 0x1c]
movzx edx, cx
and edx, 4
cmp edx, 4
jne 0x4fad74
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x128], ecx
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x124], ecx
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x120], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x11c], edx
mov byte [ebp - 0x130], 1
mov cl, byte [esi]
sub cl, 0x56
je 0x4fabfa
dec cl
je 0x4fac22
dec cl
je 0x4fac4a
dec cl
je 0x4fac72
jmp 0x4facde
push dword [ebp - 0x124]
push dword [ebp - 0x128]
lea edx, [ebp - 0x120]
push edx
call fcn.004e08a0
add esp, 0xc
test eax, eax
jne 0x4fad7b
jmp 0x4fad43
push dword [ebp - 0x124]
push dword [ebp - 0x128]
lea eax, [ebp - 0x120]
push eax
call fcn.004e0968
add esp, 0xc
test eax, eax
jne 0x4fad7b
jmp 0x4fad43
push dword [ebp - 0x124]
push dword [ebp - 0x128]
lea ecx, [ebp - 0x120]
push ecx
call fcn.004e09c0
add esp, 0xc
test eax, eax
jne 0x4fad7b
jmp 0x4fad43
cmp dword [ebp - 0x124], 0
jne 0x4fac88
cmp dword [ebp - 0x128], 0
je 0x4faf38
cmp dword [ebp - 0x124], 0xffffffff
jne 0x4facb3
cmp dword [ebp - 0x128], 0xffffffff
jne 0x4facb3
cmp dword [ebp - 0x11c], 0x80000000
jne 0x4facb3
cmp dword [ebp - 0x120], 0
je 0x4fad7b
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
call fcn.005445b3
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
jmp 0x4fad43
cmp dword [ebp - 0x124], 0
jne 0x4facf4
cmp dword [ebp - 0x128], 0
je 0x4faf38
cmp dword [ebp - 0x124], 0xffffffff
jne 0x4fad1a
cmp dword [ebp - 0x128], 0xffffffff
jne 0x4fad1a
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x124], 0
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
call fcn.00544674
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x120]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x11c]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x4fa108.0
mov byte [ebp - 0x130], 0
push edi
call fcn.004f4ce0
pop ecx
fstp qword [ebp - 0x118]
wait
mov edx, dword [ebp - 0x20]
push edx
call fcn.004f4ce0
pop ecx
fstp qword [ebp - 0x110]
wait
mov cl, byte [esi]
sub cl, 0x56
je 0x4fadaf
dec cl
je 0x4fadc7
dec cl
je 0x4faddf
dec cl
je 0x4fadf7
jmp 0x4fae2a
fld qword [ebp - 0x118]
fadd qword [ebp - 0x110]
fstp qword [ebp - 0x110]
wait
jmp 0x4faeca
fld qword [ebp - 0x118]
fsubr qword [ebp - 0x110]
fstp qword [ebp - 0x110]
wait
jmp 0x4faeca
fld qword [ebp - 0x118]
fmul qword [ebp - 0x110]
fstp qword [ebp - 0x110]
wait
jmp 0x4faeca
fld qword [ebp - 0x118]
fld dword [0x50079c]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4faf38
fld qword [ebp - 0x118]
fdivr qword [ebp - 0x110]
fstp qword [ebp - 0x110]
wait
jmp 0x4faeca
fld qword [ebp - 0x118]
call fcn.00544790
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
fld qword [ebp - 0x110]
call fcn.00544790
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x124], 0
jne 0x4fae6e
cmp dword [ebp - 0x128], 0
je 0x4faf38
cmp dword [ebp - 0x124], 0xffffffff
jne 0x4fae94
cmp dword [ebp - 0x128], 0xffffffff
jne 0x4fae94
mov dword [ebp - 0x128], 1
mov dword [ebp - 0x124], 0
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
call fcn.00544674
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], edx
fild qword [ebp - 0x138]
fstp qword [ebp - 0x110]
wait
push dword [ebp - 0x10c]
push dword [ebp - 0x110]
call fcn.004df898
add esp, 8
test eax, eax
je 0x4faee4
jmp 0x4faf38
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x110]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x10c]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 8
mov word [edx + 0x1c], ax
test byte [ebp - 0x12c], 8
jne case.0x4fa108.0
cmp byte [ebp - 0x130], 0
jne case.0x4fa108.0
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4d50
pop ecx
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x28]
push eax
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
cmp dword [esi + 4], 0
je case.0x4fa108.0
push 0
push 0
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
push edx
call fcn.004f4efc
add esp, 0xc
jmp case.0x4fa108.0
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [ebp - 0xe4], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0xe8], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x12c], eax
xor edx, edx
mov dword [ebp - 0x130], edx
jmp 0x4faff6
mov edx, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x12c]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0x12c]
test byte [eax + 0x1d], 0x10
je 0x4fafdc
push eax
call fcn.004f4944
pop ecx
test eax, eax
je 0x4fafdc
jmp 0x5006f9
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004f9d5c
pop ecx
inc dword [ebp - 0x130]
add dword [ebp - 0x12c], 0x28
mov eax, dword [ebp - 0x130]
cmp eax, dword [ebp - 0xe4]
jl 0x4fafb1
cmp byte [esi + 1], 0xfb
jne 0x4fb01d
mov edx, dword [esi + 0x10]
xor ecx, ecx
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], ecx
jmp 0x4fb034
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x124]
mov ecx, dword [edx]
mov dword [ebp - 0x128], ecx
mov word [ebp - 0x104], 1
mov dword [ebp - 0x120], ebx
xor eax, eax
mov dword [ebp - 0x100], eax
xor edx, edx
mov dword [ebp - 0xfc], edx
mov ecx, dword [ebp - 0x28]
push ecx
lea eax, [ebp - 0x120]
push eax
call fcn.004f5080
mov dx, word [ebp - 0x104]
xor ecx, ecx
and dx, 0xbe00
add esp, 8
or dx, 1
mov word [ebp - 0x104], dx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ebp - 0x128]
test byte [eax + 3], 8
je 0x4fb09a
mov edx, dword [esi - 4]
mov dword [ebp - 0xf4], edx
mov ecx, dword [ebp - 0x38]
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebx + 0x24], ecx
lea ecx, [ebp - 0x128]
mov eax, dword [ebp - 0xe8]
push eax
mov edx, dword [ebp - 0xe4]
push edx
push ecx
mov eax, dword [ebp - 0x128]
call dword [eax + 0xc]
add esp, 0xc
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x38], edx
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x124], 0
je 0x4fb0fc
mov ecx, dword [esi + 4]
push ecx
mov eax, dword [ebp - 0x124]
push eax
call fcn.004f7ab8
add esp, 8
mov edx, dword [ebp - 0x124]
mov dword [esi + 0x10], edx
mov byte [esi + 1], 0xf9
cmp byte [ebx + 0x40], 0
je 0x4fb114
lea ecx, [ebp - 0x120]
push ecx
call fcn.004f4bc0
pop ecx
jmp 0x5006f9
cmp dword [ebp - 0xf0], 0
je 0x4fb149
lea eax, [ebp - 0x120]
push eax
call fcn.004f8908
pop ecx
push eax
push 0x571794
push ebx
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.004ddcb4
add esp, 0x10
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0xc], ecx
xor eax, eax
mov al, byte [ebp - 0xe]
push eax
lea edx, [ebp - 0x120]
push edx
call fcn.004f4840
add esp, 8
lea ecx, [ebp - 0x120]
push ecx
mov eax, dword [ebp - 0x28]
push eax
call fcn.004f5080
add esp, 8
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4fbc
pop ecx
test eax, eax
je case.0x4fa108.0
jmp 0x5006d8
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl edi, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov cx, word [edi + 0x1c]
mov eax, dword [ebp - 0x20]
or cx, word [eax + 0x1c]
test cl, 1
je 0x4fb1d6
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004f4c70
pop ecx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
push edi
call fcn.004f4c70
pop ecx
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
mov cl, byte [esi]
mov byte [ebp - 0x118], cl
xor eax, eax
mov al, byte [ebp - 0x118]
cmp eax, 0x52
jne 0x4fb231
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
and dword [ebp - 0x130], eax
and dword [ebp - 0x12c], edx
jmp 0x4fb3e9
xor ecx, ecx
mov cl, byte [ebp - 0x118]
cmp ecx, 0x53
jne 0x4fb25b
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
or dword [ebp - 0x130], eax
or dword [ebp - 0x12c], edx
jmp 0x4fb3e9
cmp dword [ebp - 0x11c], 0
jne 0x4fb271
cmp dword [ebp - 0x120], 0
je 0x4fb3e9
cmp dword [ebp - 0x11c], 0
jne 0x4fb285
cmp dword [ebp - 0x120], 0
jae 0x4fb2d3
jmp 0x4fb287
jge 0x4fb2d3
mov cl, 0xa9
sub cl, byte [ebp - 0x118]
mov byte [ebp - 0x118], cl
cmp dword [ebp - 0x11c], 0xffffffff
jne 0x4fb2a9
cmp dword [ebp - 0x120], 0xffffffc0
jbe 0x4fb2c0
jmp 0x4fb2ab
jle 0x4fb2c0
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
neg eax
adc edx, 0
neg edx
jmp 0x4fb2c7
mov eax, 0x40
xor edx, edx
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0
jne 0x4fb2e7
cmp dword [ebp - 0x120], 0x40
jb 0x4fb325
jmp 0x4fb2e9
jl 0x4fb325
cmp dword [ebp - 0x12c], 0
jne 0x4fb2fd
cmp dword [ebp - 0x130], 0
jae 0x4fb30c
jmp 0x4fb2ff
jge 0x4fb30c
xor ecx, ecx
mov cl, byte [ebp - 0x118]
cmp ecx, 0x54
jne 0x4fb310
xor eax, eax
jmp 0x4fb313
or eax, 0xffffffff
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
jmp 0x4fb3e9
push 8
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
push ecx
call fcn.005444b4
add esp, 0xc
xor eax, eax
mov al, byte [ebp - 0x118]
cmp eax, 0x54
jne 0x4fb371
mov eax, dword [ebp - 0x120]
mov ecx, eax
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x124]
call fcn.0054473c
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
jmp 0x4fb3d1
mov eax, dword [ebp - 0x120]
mov ecx, eax
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x124]
call fcn.00544774
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
cmp dword [ebp - 0x12c], 0
jne 0x4fb3aa
cmp dword [ebp - 0x130], 0
jae 0x4fb3d1
jmp 0x4fb3ac
jge 0x4fb3d1
mov eax, dword [ebp - 0x120]
mov ecx, 0x40
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
call fcn.0054473c
or dword [ebp - 0x128], eax
or dword [ebp - 0x124], edx
push 8
lea ecx, [ebp - 0x128]
push ecx
lea eax, [ebp - 0x130]
push eax
call fcn.005444b4
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x130]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 0x12c]
mov dword [edx + 0x14], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
push edi
call fcn.004f4dbc
pop ecx
mov eax, dword [esi + 8]
cdq
add dword [edi + 0x10], eax
adc dword [edi + 0x14], edx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov al, byte [ebp - 0xe]
push eax
push 0x63
push edi
call fcn.004f9ee8
add esp, 0xc
test byte [edi + 0x1c], 4
jne 0x4fb480
cmp dword [esi + 8], 0
jne 0x4fb474
mov dword [ebp - 0xc], 0x14
jmp 0x50071e
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov cx, word [edi + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [edi + 0x1c], cx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 4
je case.0x4fa108.0
push edi
call fcn.004f4de8
pop ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
jne case.0x4fa108.0
movzx eax, word [edi + 0x1c]
and eax, 0x10
sar eax, 3
or word [edi + 0x1c], ax
mov dl, byte [ebp - 0xe]
push edx
push 0x61
push edi
call fcn.004f9ee8
add esp, 0xc
test byte [edi + 0x1d], 0x40
je 0x4fb4fa
push edi
call fcn.004f49a8
pop ecx
jmp 0x4fb4fc
xor eax, eax
mov dword [ebp - 0xc], eax
and word [edi + 0x1c], 0xbfe3
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
jne case.0x4fa108.0
test byte [edi + 0x1c], 0x10
jne 0x4fb54b
mov al, byte [ebp - 0xe]
push eax
push 0x61
push edi
call fcn.004f9ee8
mov dx, word [edi + 0x1c]
add esp, 0xc
and dx, 0xbe00
or dx, 0x10
mov word [edi + 0x1c], dx
jmp case.0x4fa108.0
and word [edi + 0x1c], 0xfe10
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
push edi
call fcn.004f4e10
pop ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
jne case.0x4fa108.0
push edi
call fcn.004f4dbc
pop ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
jne case.0x4fa108.0
push edi
call fcn.004f4de8
pop ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov dx, word [edi + 0x1c]
mov word [ebp - 0x12a], dx
mov ecx, dword [ebp - 0x24]
mov cx, word [ecx + 0x1c]
mov word [ebp - 0x128], cx
mov ax, word [ebp - 0x12a]
or ax, word [ebp - 0x128]
test al, 1
je 0x4fb685
test byte [esi + 3], 0x80
je 0x4fb639
test byte [ebp - 0x12a], 1
je 0x4fb62a
test byte [ebp - 0x128], 1
je 0x4fb62a
test byte [ebp - 0x127], 1
jne 0x4fb62a
xor edx, edx
mov dword [ebp - 0x130], edx
jmp 0x4fb706
mov dword [ebp - 0x130], 1
jmp 0x4fb706
test byte [esi + 3], 0x10
je 0x4fb66a
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dx, word [eax + 0x1c]
mov eax, dword [ebp - 0x28]
and dx, 0xbe00
or dx, 1
mov word [eax + 0x1c], dx
jmp case.0x4fa108.0
test byte [esi + 3], 8
je case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov cl, byte [esi + 3]
and cl, 0x67
mov byte [ebp - 0x12c], cl
cmp byte [ebp - 0x12c], 0
je 0x4fb6cf
mov cl, byte [ebp - 0xe]
push ecx
mov al, byte [ebp - 0x12c]
push eax
push edi
call fcn.004f9ee8
add esp, 0xc
mov dl, byte [ebp - 0xe]
push edx
mov cl, byte [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x24]
push eax
call fcn.004f9ee8
add esp, 0xc
cmp byte [ebx + 0x40], 0
jne 0x5006f9
test byte [edi + 0x1d], 0x40
je 0x4fb6dc
push edi
call fcn.004f49a8
pop ecx
mov edx, dword [ebp - 0x24]
test byte [edx + 0x1d], 0x40
je 0x4fb6ef
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004f49a8
pop ecx
mov eax, dword [esi + 0x10]
push eax
push edi
mov edx, dword [ebp - 0x24]
push edx
call fcn.004f5240
add esp, 0xc
mov dword [ebp - 0x130], eax
xor ecx, ecx
mov cl, byte [esi]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x4fb716
jmp dword [ecx*4 + 0x4fb71d]
cmp dword [ebp - 0x130], 0
sete al
and eax, 1
mov dword [ebp - 0x130], eax
jmp 0x4fb7ad
cmp dword [ebp - 0x130], 0
setne dl
and edx, 1
mov dword [ebp - 0x130], edx
jmp 0x4fb7ad
cmp dword [ebp - 0x130], 0
setl cl
and ecx, 1
mov dword [ebp - 0x130], ecx
jmp 0x4fb7ad
cmp dword [ebp - 0x130], 0
setle al
and eax, 1
mov dword [ebp - 0x130], eax
jmp 0x4fb7ad
cmp dword [ebp - 0x130], 0
setg dl
and edx, 1
mov dword [ebp - 0x130], edx
jmp 0x4fb7ad
cmp dword [ebp - 0x130], 0
setge cl
and ecx, 1
mov dword [ebp - 0x130], ecx
test byte [esi + 3], 0x10
je 0x4fb7eb
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [eax + 0x1c], cx
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x4fb7fb
cmp dword [ebp - 0x130], 0
je 0x4fb7fb
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
mov ax, word [edi + 0x1c]
mov dx, word [ebp - 0x12a]
and dx, 0x1ff
and ax, 0xfe00
or ax, dx
mov word [edi + 0x1c], ax
mov dx, word [ebp - 0x128]
mov ecx, dword [ebp - 0x24]
and dx, 0x1ff
mov ax, word [ecx + 0x1c]
and ax, 0xfe00
or ax, dx
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
jmp case.0x4fa108.0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x30], eax
jmp case.0x4fa108.0
test byte [esi + 3], 1
jne 0x4fb852
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x120], eax
mov edx, dword [esi + 4]
mov dword [ebp - 0x128], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x124], ecx
xor eax, eax
mov dword [ebp - 0x12c], eax
jmp 0x4fb92c
cmp dword [ebp - 0x30], 0
je 0x4fb897
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x12c]
mov edx, dword [edx + eax*4]
jmp 0x4fb89d
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x12c]
mov ecx, dword [eax + ecx*4 + 0xc]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x120]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x12c]
movzx edx, byte [edx + eax]
mov dword [ebp - 0x114], edx
mov ecx, dword [ebp - 0x118]
push ecx
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x11c]
add edx, eax
mov ecx, edx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x128]
add edx, eax
mov eax, edx
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
push eax
call fcn.004f5240
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x4fb926
cmp dword [ebp - 0x114], 0
je 0x4fb93e
neg dword [ebp - 0x2c]
jmp 0x4fb93e
inc dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x130]
jl 0x4fb883
xor ecx, ecx
mov dword [ebp - 0x30], ecx
jmp case.0x4fa108.0
cmp dword [ebp - 0x2c], 0
jge 0x4fb95a
mov eax, dword [esi + 4]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
cmp dword [ebp - 0x2c], 0
jne 0x4fb96c
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
je 0x4fb996
mov dword [ebp - 0x130], 2
jmp 0x4fb9b1
push edi
call fcn.004f4c70
pop ecx
cmp edx, 0
jne 0x4fb9a5
cmp eax, 0
setne al
and eax, 1
mov dword [ebp - 0x130], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
test byte [ecx + 0x1c], 1
je 0x4fb9d5
mov dword [ebp - 0x12c], 2
jmp 0x4fb9f3
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004f4c70
pop ecx
cmp edx, 0
jne 0x4fb9e7
cmp eax, 0
setne al
and eax, 1
mov dword [ebp - 0x12c], eax
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x45
jne 0x4fba1e
mov ecx, dword [ebp - 0x130]
lea ecx, [ecx + ecx*2]
lea eax, [ecx + 0x56c834]
mov edx, dword [ebp - 0x12c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [ebp - 0x130], ecx
jmp 0x4fba3d
mov eax, dword [ebp - 0x130]
lea eax, [eax + eax*2]
lea edx, [eax + 0x56c83d]
mov eax, dword [ebp - 0x12c]
movzx edx, byte [edx + eax]
mov dword [ebp - 0x130], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x130], 2
jne 0x4fba70
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 1
mov word [edx + 0x1c], ax
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 4
mov word [edx + 0x1c], ax
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
test byte [edi + 0x1c], 1
je 0x4fbacb
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
push edi
call fcn.004f4c70
pop ecx
cmp edx, 0
jne 0x4fbada
cmp eax, 0
setne al
and eax, 1
cmp eax, 1
sbb eax, eax
neg eax
cdq
push edx
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4efc
add esp, 0xc
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
test byte [edi + 0x1c], 1
je 0x4fbb2b
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
push edi
call fcn.004f4c70
pop ecx
not eax
not edx
push edx
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4efc
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb8]
mov edx, dword [esi + 4]
cmp byte [eax + edx], 0
je 0x4fbb67
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xb8]
mov eax, dword [esi + 4]
mov byte [edx + eax], 1
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
je 0x4fbb99
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x130], eax
jmp 0x4fbbd7
push edi
call fcn.004f4ce0
pop ecx
fld dword [0x50079c]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
setp dl
and edx, 1
mov dword [ebp - 0x130], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x1c
jne 0x4fbbd7
mov ecx, dword [ebp - 0x130]
cmp ecx, 1
sbb eax, eax
neg eax
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
je case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 1
jne case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x120], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x11c], ecx
xor ecx, ecx
mov dword [ebp - 0x118], ecx
push 0x28
push 0
lea eax, [ebp - 0xf0]
push eax
call fcn.005444d8
mov edx, dword [esi + 0xc]
xor ecx, ecx
shl edx, 3
add esp, 0xc
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 0x120]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x118]
mov ecx, dword [ecx]
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0x110], 0
je 0x4fbd60
mov eax, dword [ebp - 0x118]
push eax
call fcn.004f7c28
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov edx, dword [ebp - 0x118]
cmp byte [edx + 0x1c], 0
je 0x4fbcde
xor ecx, ecx
mov dword [ebp - 0x130], ecx
jmp 0x4fbe2b
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0x50]
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x54]
jne 0x4fbd12
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx + 0x54]
mov dword [ebp - 0x130], ecx
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + 0x60]
mov dword [ebp - 0x114], eax
jmp 0x4fbe2b
mov edx, dword [ebp - 0x118]
cmp byte [edx + 0x1f], 0
je 0x4fbd45
lea ecx, [ebp - 0x128]
push ecx
mov eax, dword [ebp - 0x110]
push eax
call fcn.004eed28
add esp, 8
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x130], eax
jmp 0x4fbe2b
lea edx, [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004eed84
add esp, 8
jmp 0x4fbe2b
mov ecx, dword [ebp - 0x118]
cmp dword [ecx + 0x10], 0
jle 0x4fbe23
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0x10]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x118]
cmp byte [ecx + 0x22], 0
je 0x4fbdea
push 0x1000
mov eax, dword [ebp - 0x11c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0xac]
push eax
mov edx, dword [ebp - 0xf4]
push edx
call fcn.004f4fe8
add esp, 0xc
mov ecx, dword [ebp - 0xf4]
test byte [ecx + 0x1d], 0x10
je case.0x4fa108.0
mov eax, dword [ebp - 0xf4]
push eax
call fcn.004f4944
pop ecx
test eax, eax
je case.0x4fa108.0
jmp 0x5006f9
mov edx, dword [ebp - 0xac]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0xac]
mov edx, dword [eax + 4]
mov dword [ebp - 0x114], edx
test byte [esi + 3], 0x20
je 0x4fbe12
xor ecx, ecx
jmp 0x4fbe18
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x54]
mov eax, dword [ebp - 0x118]
mov dword [eax + 0x50], ecx
jmp 0x4fbe2b
xor edx, edx
mov dword [ebp - 0x130], edx
cmp dword [ebp - 0x130], 0
jne 0x4fbe55
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf4]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 1
mov word [edx + 0x1c], ax
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x130]
cmp ecx, dword [ebx + 0x58]
jbe 0x4fbe65
jmp 0x5006d8
mov eax, dword [ebp - 0x118]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x104], edx
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + 0x58]
mov dword [ebp - 0x10c], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x50]
cmp ecx, dword [eax + 0x54]
jne 0x4fbea8
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx + 0x5c]
mov dword [ebp - 0x108], ecx
jmp 0x4fc1ed
xor eax, eax
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0x104]
shl edx, 2
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x118]
mov dword [eax + 0x5c], edx
mov ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x130]
mov dword [ecx + 0x54], edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x118]
mov edx, dword [eax + 0x54]
mov dword [ecx + 0x50], edx
cmp dword [ebp - 0x114], 0
je 0x4fbf03
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0xf8], ecx
jmp 0x4fbf7f
mov eax, dword [ebp - 0x118]
cmp byte [eax + 0x1f], 0
je 0x4fbf2d
lea edx, [ebp - 0xb4]
push edx
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004ef28c
add esp, 8
mov dword [ebp - 0xf8], eax
jmp 0x4fbf49
lea eax, [ebp - 0xb4]
push eax
mov edx, dword [ebp - 0x110]
push edx
call fcn.004ef2b0
add esp, 8
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0x130]
cmp ecx, dword [ebp - 0xb4]
ja 0x4fbf74
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x114], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0xf8]
mov dword [edx + 0x60], eax
jmp 0x4fbf7f
mov edx, dword [ebp - 0x118]
xor ecx, ecx
mov dword [edx + 0x60], ecx
mov ecx, dword [ebp - 0xf8]
cmp byte [ecx], 0x80
jae 0x4fbf9e
mov eax, dword [ebp - 0xf8]
xor edx, edx
mov cl, 1
mov dl, byte [eax]
mov dword [ebp - 0xc0], edx
jmp 0x4fbfb6
lea eax, [ebp - 0xc0]
push eax
mov edx, dword [ebp - 0xf8]
push edx
call fcn.004e066c
add esp, 8
mov ecx, eax
xor eax, eax
mov al, cl
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xc0], 0x18003
jbe 0x4fbfdf
push 0x1085b
call fcn.0052e8f4
pop ecx
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov edx, dword [ebp - 0x104]
lea edx, [edx + edx*4]
add edx, 3
mov dword [ebp - 0x100], edx
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 0x100]
jge 0x4fc00b
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x114], 0
jne 0x4fc078
mov edx, dword [ebp - 0xb4]
cmp edx, dword [ebp - 0x100]
jge 0x4fc078
mov word [ebp - 0xd4], 0
xor ecx, ecx
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xf0], ecx
push eax
mov edx, dword [ebp - 0x118]
xor ecx, ecx
mov cl, byte [edx + 0x1f]
push ecx
mov eax, dword [ebp - 0x100]
push eax
push 0
mov edx, dword [ebp - 0x110]
push edx
call fcn.004f54ac
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fc06c
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xf8], ecx
mov eax, dword [ebp - 0xf8]
add eax, dword [ebp - 0x100]
mov dword [ebp - 0xc4], eax
mov edx, dword [ebp - 0xf8]
add edx, dword [ebp - 0xb8]
mov dword [ebp - 0xc8], edx
xor ecx, ecx
mov dword [ebp - 0xfc], ecx
jmp 0x4fc17a
mov edx, dword [ebp - 0xc8]
cmp edx, dword [ebp - 0xc4]
jae 0x4fc163
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0xc0]
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0xc8]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x80
jge 0x4fc0f4
mov eax, dword [ebp - 0xc8]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xb0], edx
inc dword [ebp - 0xc8]
jmp 0x4fc114
lea ecx, [ebp - 0xb0]
push ecx
mov eax, dword [ebp - 0xc8]
push eax
call fcn.004e066c
add esp, 8
xor edx, edx
mov dl, al
add dword [ebp - 0xc8], edx
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebp - 0xb0]
mov dword [ecx + eax*4], edx
mov ecx, dword [ebp - 0xb0]
push ecx
call fcn.004f7df4
pop ecx
mov edi, eax
mov dword [ebp - 0xbc], edi
add dword [ebp - 0xc0], edi
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0xbc]
jae 0x4fc174
mov edx, dword [ebp - 0xc4]
inc edx
mov dword [ebp - 0xc8], edx
jmp 0x4fc18c
mov ecx, dword [ebp - 0x108]
mov edi, dword [ebp - 0xfc]
xor eax, eax
mov dword [ecx + edi*4], eax
inc dword [ebp - 0xfc]
mov eax, dword [ebp - 0xfc]
cmp eax, dword [ebp - 0x104]
jl 0x4fc0a9
lea edx, [ebp - 0xf0]
push edx
call fcn.004f4bc0
pop ecx
mov word [ebp - 0xd4], 1
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0xc4]
ja 0x4fc1da
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 0x130]
ja 0x4fc1da
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0xc4]
jne 0x4fc1ed
mov edx, dword [ebp - 0xc0]
cmp edx, dword [ebp - 0x130]
je 0x4fc1ed
push 0x108ab
call fcn.0052e8f4
pop ecx
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x11c]
cmp dword [ecx + eax*4], 0
je 0x4fc356
cmp dword [ebp - 0x114], 0
je 0x4fc261
mov edx, dword [ebp - 0xf4]
test word [edx + 0x1c], 0x2460
je 0x4fc227
mov ecx, dword [ebp - 0xf4]
push ecx
call fcn.004f4b5c
pop ecx
mov eax, dword [ebp - 0xf4]
push eax
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x11c]
mov edx, dword [edx + eax*4]
push edx
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x11c]
mov edx, dword [ecx + eax*4]
add edx, dword [ebp - 0x114]
push edx
call fcn.004f7ee4
add esp, 0xc
jmp 0x4fc348
mov ecx, dword [ebp - 0x10c]
mov edi, dword [ebp - 0x11c]
mov eax, dword [ecx + edi*4]
mov dword [ebp - 0xb0], eax
test byte [esi + 3], 0xc0
je 0x4fc2af
cmp dword [ebp - 0xb0], 0xc
jb 0x4fc28e
test byte [ebp - 0xb0], 1
je 0x4fc294
test byte [esi + 3], 0x80
je 0x4fc2af
cmp dword [ebp - 0xb0], 0xc
jae 0x4fc2a5
lea edx, [ebp - 0x128]
jmp 0x4fc2a7
xor edx, edx
mov dword [ebp - 0xf8], edx
jmp 0x4fc32b
mov eax, dword [ebp - 0xb0]
push eax
call fcn.004f7df4
pop ecx
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xf4]
push ecx
lea ecx, [ebp - 0xf0]
push ecx
call fcn.004f5080
add esp, 8
lea eax, [ebp - 0xf0]
push eax
mov edx, dword [ebp - 0x118]
xor ecx, ecx
mov cl, byte [edx + 0x1f]
push ecx
mov eax, dword [ebp - 0x100]
push eax
mov edx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x11c]
mov edx, dword [edx + eax*4]
push edx
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004f54ac
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fc31f
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0xec]
mov dword [ebp - 0xf8], ecx
mov eax, dword [ebp - 0xf4]
push eax
mov edx, dword [ebp - 0xb0]
push edx
mov ecx, dword [ebp - 0xf8]
push ecx
call fcn.004f7ee4
add esp, 0xc
mov eax, dword [ebp - 0xf4]
mov dl, byte [ebp - 0xe]
mov byte [eax + 0x1f], dl
jmp 0x4fc393
cmp byte [esi + 1], 0xf8
jne 0x4fc376
push 0x800
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [ebp - 0xf4]
push eax
call fcn.004f4fe8
add esp, 0xc
jmp 0x4fc393
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xf4]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 1
mov word [eax + 0x1c], cx
cmp dword [ebp - 0xcc], 0
je 0x4fc3d2
mov edx, dword [ebp - 0xf4]
and word [edx + 0x1c], 0xe7ff
mov ecx, dword [ebp - 0xf4]
or word [ecx + 0x1c], 0x200
mov eax, dword [ebp - 0xf4]
mov edx, dword [ebp - 0xec]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0xf4]
push edx
call fcn.004f4944
pop ecx
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x130], ecx
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
jmp 0x4fc422
test byte [edi + 0x1d], 0x40
je 0x4fc40b
push edi
call fcn.004f49a8
pop ecx
mov al, byte [ebp - 0xe]
push eax
mov dl, byte [ebp - 0x12c]
push edx
push edi
call fcn.004f9ee8
add esp, 0xc
add edi, 0x28
mov ecx, dword [ebp - 0x130]
inc dword [ebp - 0x130]
mov cl, byte [ecx]
mov byte [ebp - 0x12c], cl
test cl, cl
jne 0x4fc3fe
jmp case.0x4fa108.0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0
xor eax, eax
xor edx, edx
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x110], edx
mov ecx, dword [esi + 4]
mov dword [ebp - 0xfc], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xf8], eax
mov edx, dword [ebp - 0xfc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x104], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0xfc], ecx
xor ecx, ecx
mov eax, dword [ebp - 0xfc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x104]
add eax, 0xffffffd8
mov dword [ebp - 0x100], eax
mov edx, dword [ebp + 8]
mov cl, byte [edx + 0x61]
mov dword [ebp - 0xf4], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x12c], edx
jmp 0x4fc5b8
cmp dword [ebp - 0xf8], 0
je 0x4fc516
mov cl, byte [ebp - 0xe]
push ecx
mov eax, dword [ebp - 0x12c]
sub eax, dword [ebp - 0x104]
mov ecx, 0x28
cdq
idiv ecx
mov edx, dword [ebp - 0xf8]
mov al, byte [edx + eax]
push eax
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004f9ee8
add esp, 0xc
mov eax, dword [ebp - 0x12c]
test byte [eax + 0x1d], 0x40
je 0x4fc52f
cmp dword [eax + 0x18], 0
jle 0x4fc52f
push eax
call fcn.004f49a8
pop ecx
mov edx, dword [ebp - 0xf4]
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004f7cb0
add esp, 8
mov edi, eax
mov dword [ebp - 0x108], edi
push edi
call fcn.004f7df4
mov esi, eax
pop ecx
mov eax, esi
mov dword [ebp - 0xec], esi
cdq
add dword [ebp - 0x128], eax
adc dword [ebp - 0x124], edx
xor edx, edx
mov eax, dword [ebp - 0x108]
push edx
push eax
call fcn.004e06f4
add esp, 8
add dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x12c]
test byte [ecx + 0x1d], 0x40
je 0x4fc5a0
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ecx + 0x10]
add dword [ebp - 0x110], eax
jmp 0x4fc5b1
cmp dword [ebp - 0xec], 0
je 0x4fc5b1
xor edx, edx
mov dword [ebp - 0x110], edx
add dword [ebp - 0x12c], 0x28
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x100]
jbe 0x4fc4dc
mov eax, dword [ebp - 0x120]
cdq
push edx
push eax
call fcn.004e06f4
add esp, 8
mov dword [ebp - 0x10c], eax
add dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
push edx
push eax
call fcn.004e06f4
add esp, 8
cmp eax, dword [ebp - 0x10c]
jle 0x4fc606
inc dword [ebp - 0x120]
mov eax, dword [ebp - 0x120]
cdq
add eax, dword [ebp - 0x128]
adc edx, dword [ebp - 0x124]
push edx
push eax
mov eax, dword [ebp - 0x110]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], edx
mov eax, dword [ebx + 0x58]
cdq
cmp edx, dword [ebp - 0x114]
jne 0x4fc650
cmp eax, dword [ebp - 0x118]
jae 0x4fc657
jmp 0x5006d8
jge 0x4fc657
jmp 0x5006d8
push 0
mov eax, dword [ebp - 0x118]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4868
add esp, 0xc
test eax, eax
je 0x4fc675
jmp 0x5006f9
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x130], ecx
cmp dword [ebp - 0x120], 0x80
jae 0x4fc69f
mov eax, dword [ebp - 0x130]
mov dl, byte [ebp - 0x120]
mov byte [eax], dl
mov cl, 1
jmp 0x4fc6b7
mov eax, dword [ebp - 0x120]
push eax
mov edx, dword [ebp - 0x130]
push edx
call fcn.004e0414
add esp, 8
mov ecx, eax
xor eax, eax
mov al, cl
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0x104]
mov dword [ebp - 0x12c], edx
jmp 0x4fc738
mov ecx, dword [ebp - 0xf4]
push ecx
push esi
call fcn.004f7cb0
add esp, 8
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0x80
jae 0x4fc70a
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0xf0]
mov cl, byte [ebp - 0x108]
mov byte [eax + edx], cl
mov al, 1
jmp 0x4fc726
mov edx, dword [ebp - 0x108]
push edx
mov ecx, dword [ebp - 0x130]
add ecx, dword [ebp - 0xf0]
push ecx
call fcn.004e0414
add esp, 8
and eax, 0xff
add dword [ebp - 0xf0], eax
add dword [ebp - 0x12c], 0x28
mov esi, dword [ebp - 0x12c]
cmp esi, dword [ebp - 0x100]
jbe 0x4fc6cf
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x12c], eax
jmp 0x4fc797
mov edx, dword [ebp - 0xf4]
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x118]
sub eax, dword [ebp - 0xf0]
push eax
mov edx, dword [ebp - 0x130]
add edx, dword [ebp - 0xf0]
push edx
call fcn.004f7e14
add esp, 0x10
add eax, dword [ebp - 0xf0]
mov dword [ebp - 0xf0], eax
add dword [ebp - 0x12c], 0x28
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x100]
jbe 0x4fc754
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x28]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], 0x410
mov ecx, dword [ebp - 0x28]
xor eax, eax
mov dword [ecx + 0x20], eax
cmp dword [ebp - 0x110], 0
je 0x4fc7e0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x110]
mov dword [edx + 0x10], eax
mov edx, dword [ebp - 0x28]
or word [edx + 0x1c], 0x4000
mov ecx, dword [ebp - 0x28]
mov byte [ecx + 0x1f], 1
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x4fc824
lea edx, [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.004f2bf0
add esp, 8
mov dword [ebp - 0xc], eax
jmp 0x4fc838
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x130]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x12c]
mov dword [eax + 0x14], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x130], 0
jne 0x4fc978
cmp dword [ebx + 0x90], 0
jle 0x4fc89b
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.004ddcb4
mov dword [ebp - 0xc], 5
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004df8d0
pop ecx
mov dword [ebp - 0x128], eax
mov eax, dword [ebx + 0x1ec]
add eax, dword [ebx + 0x1e8]
push eax
push 0
push ebx
call fcn.00522ba0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov edx, dword [ebp - 0x128]
add edx, 0x19
push edx
push ebx
call fcn.004ddae4
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je case.0x4fa108.0
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x124]
add ecx, 0x18
mov dword [eax], ecx
mov edx, dword [ebp - 0x128]
inc edx
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x124]
mov edx, dword [eax]
push edx
call fcn.005444b4
add esp, 0xc
cmp byte [ebx + 0x3e], 0
je 0x4fc93a
mov byte [ebx + 0x3e], 0
mov byte [ebx + 0x45], 1
jmp 0x4fc940
inc dword [ebx + 0x1e8]
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x1e0]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x124]
mov dword [ebx + 0x1e0], edx
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x1f0]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x1f4]
mov dword [ecx + 0xc], eax
jmp case.0x4fa108.0
xor edx, edx
mov dword [ebp - 0x118], edx
mov ecx, dword [ebx + 0x1e0]
mov dword [ebp - 0x120], ecx
jmp 0x4fc9a3
inc dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x120], edx
cmp dword [ebp - 0x120], 0
je 0x4fc9c8
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x120]
mov edx, dword [eax]
push edx
call fcn.004dfa30
add esp, 8
test eax, eax
jne 0x4fc98e
cmp dword [ebp - 0x120], 0
jne 0x4fc9f9
mov ecx, dword [ebp - 0x12c]
push ecx
push str.no_such_savepoint:__s
push ebx
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
call fcn.004ddcb4
add esp, 0x10
mov dword [ebp - 0xc], 1
jmp case.0x4fa108.0
cmp dword [ebx + 0x90], 0
jle 0x4fca2c
cmp dword [ebp - 0x130], 1
jne 0x4fca2c
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.004ddcb4
mov dword [ebp - 0xc], 5
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x120]
cmp dword [ecx + 0x10], 0
jne 0x4fca3e
cmp byte [ebx + 0x45], 0
jne 0x4fca42
xor eax, eax
jmp 0x4fca47
mov eax, 1
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x4fcab8
cmp dword [ebp - 0x130], 1
jne 0x4fcab8
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.004f7640
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4fca73
jmp 0x5006ba
mov byte [ebx + 0x3e], 1
mov edx, dword [ebp + 8]
push edx
call fcn.004f76ac
pop ecx
cmp eax, 5
jne 0x4fcaa6
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov edx, 5
mov dword [ecx + 0x58], eax
mov byte [ebx + 0x3e], 0
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], edx
jmp 0x5006ba
mov byte [ebx + 0x45], 0
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x5c]
mov dword [ebp - 0xc], ecx
jmp 0x4fcbae
mov eax, dword [ebx + 0x1e8]
sub eax, dword [ebp - 0x118]
dec eax
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x130], 2
jne 0x4fcb0a
xor edx, edx
mov dword [ebp - 0x114], edx
jmp 0x4fcaff
push 4
mov ecx, dword [ebp - 0x114]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004ee990
add esp, 8
inc dword [ebp - 0x114]
mov ecx, dword [ebp - 0x114]
cmp ecx, dword [ebx + 0x14]
jl 0x4fcade
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x4fcb4f
mov edx, dword [ebp - 0x118]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
mov eax, dword [ebp - 0x114]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.004eeb00
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fcb49
jmp 0x50071e
inc dword [ebp - 0x114]
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebx + 0x14]
jl 0x4fcb14
cmp dword [ebp - 0x130], 2
jne 0x4fcbae
test byte [ebx + 0x18], 2
je 0x4fcbae
push ebx
call fcn.004f8638
pop ecx
push ebx
call fcn.0050ac34
pop ecx
or dword [ebx + 0x18], 2
jmp 0x4fcbae
mov edx, dword [ebx + 0x1e0]
mov dword [ebp - 0x11c], edx
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x1e0], eax
mov edx, dword [ebp - 0x11c]
push edx
push ebx
call fcn.004dd8c8
add esp, 8
dec dword [ebx + 0x1e8]
mov ecx, dword [ebx + 0x1e0]
cmp ecx, dword [ebp - 0x120]
jne 0x4fcb7d
cmp dword [ebp - 0x130], 1
jne 0x4fcbf2
mov eax, dword [ebp - 0x120]
mov edx, dword [eax + 0x10]
mov dword [ebx + 0x1e0], edx
mov ecx, dword [ebp - 0x120]
push ecx
push ebx
call fcn.004dd8c8
add esp, 8
cmp dword [ebp - 0x40], 0
jne 0x4fcc0a
dec dword [ebx + 0x1e8]
jmp 0x4fcc0a
mov eax, dword [ebp - 0x120]
mov edx, dword [eax + 8]
mov dword [ebx + 0x1f0], edx
mov edx, dword [eax + 0xc]
mov dword [ebx + 0x1f4], edx
cmp dword [ebp - 0x40], 0
jne case.0x4fa108.0
mov ecx, dword [ebp - 0x118]
push ecx
mov eax, dword [ebp - 0x130]
push eax
push ebx
call fcn.00522ba0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x130], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x12c], ecx
cmp dword [ebp - 0x130], 0
je 0x4fcc5e
cmp byte [ebx + 0x3e], 0
je 0x4fcc62
xor eax, eax
jmp 0x4fcc67
mov eax, 1
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x4fcca9
cmp dword [ebp - 0x12c], 0
jne 0x4fcca9
cmp dword [ebx + 0x90], 0
jle 0x4fcca9
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebx
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.004ddcb4
mov dword [ebp - 0xc], 5
add esp, 0xc
jmp case.0x4fa108.0
xor ecx, ecx
mov cl, byte [ebx + 0x3e]
cmp ecx, dword [ebp - 0x130]
je 0x4fcd5f
cmp dword [ebp - 0x12c], 0
je 0x4fccd7
push 0x204
push ebx
call fcn.0052d16c
mov byte [ebx + 0x3e], 1
add esp, 8
jmp 0x4fcd32
push 1
mov eax, dword [ebp + 8]
push eax
call fcn.004f7640
add esp, 8
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4fccf3
jmp 0x5006ba
mov dl, byte [ebp - 0x130]
mov byte [ebx + 0x3e], dl
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f76ac
pop ecx
cmp eax, 5
jne 0x4fcd32
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dl, 1
mov dword [ecx + 0x58], eax
sub dl, byte [ebp - 0x130]
mov ecx, 5
mov byte [ebx + 0x3e], dl
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], ecx
jmp 0x5006ba
push ebx
call fcn.0052cdac
pop ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x5c], 0
jne 0x4fcd4e
mov dword [ebp - 0xc], 0x65
jmp 0x5006ba
mov dword [ebp - 0xc], 1
jmp 0x5006ba
cmp dword [ebp - 0x130], 0
jne 0x4fcd6f
mov ecx, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4fcd84
cmp dword [ebp - 0x12c], 0
je 0x4fcd7f
mov ecx, str.cannot_rollback___no_transaction_is_active
jmp 0x4fcd84
mov ecx, str.cannot_commit___no_transaction_is_active
push ecx
push ebx
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
call fcn.004ddcb4
mov dword [ebp - 0xc], 1
add esp, 0xc
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
shl edx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + edx + 4]
mov dword [ebp - 0x130], edx
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov ecx, dword [esi + 8]
push ecx
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.004ede38
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 5
jne 0x4fcdf9
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x58], edx
mov ecx, 5
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 0x5c], ecx
jmp 0x5006ba
cmp dword [ebp - 0xc], 0
je 0x4fce04
jmp 0x50071e
cmp dword [esi + 8], 0
je case.0x4fa108.0
mov edx, dword [ebp + 8]
test byte [edx + 0x62], 0x80
je case.0x4fa108.0
cmp byte [ebx + 0x3e], 0
je 0x4fce2e
cmp dword [ebx + 0x8c], 1
jle case.0x4fa108.0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x70], 0
jne 0x4fce4f
inc dword [ebx + 0x1ec]
mov eax, dword [ebx + 0x1e8]
mov edx, dword [ebp + 8]
add eax, dword [ebx + 0x1ec]
mov dword [edx + 0x70], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x70]
dec eax
push eax
push 0
push ebx
call fcn.00522ba0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4fce84
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x70]
push ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004eead0
add esp, 8
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 0x1f0]
mov dword [edx + 0x90], eax
mov eax, dword [ebx + 0x1f4]
mov dword [edx + 0x94], eax
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
mov dword [ebp - 0x12c], edx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x128], ecx
lea ecx, [ebp - 0x130]
push ecx
mov eax, dword [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x12c]
shl edx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + edx + 4]
push edx
call fcn.004f2b54
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [esi + 4]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x24]
push edx
call fcn.004f4dbc
pop ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x10]
push eax
mov edx, dword [esi + 8]
push edx
mov ecx, dword [ebp - 0x130]
mov ecx, dword [ecx + 4]
push ecx
call fcn.004f2b8c
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [esi + 8], 1
jne 0x4fcf57
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x24]
mov ecx, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x4fcf6f
cmp dword [esi + 8], 2
jne 0x4fcf6f
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x130]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [esi + 4], 1
jne case.0x4fa108.0
push ebx
call fcn.004f8638
pop ecx
mov ecx, dword [ebp + 8]
and byte [ecx + 0x62], 0xdf
jmp case.0x4fa108.0
mov eax, dword [esi + 4]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax + 4]
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x128], 0
je 0x4fcfd8
lea eax, [ebp - 0x130]
push eax
push 1
mov edx, dword [ebp - 0x128]
push edx
call fcn.004f2b54
add esp, 0xc
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x12c], ecx
jmp 0x4fcfe6
xor eax, eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x130]
cmp edx, dword [esi + 8]
jne 0x4fd000
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [esi + 0xc]
je case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x38]
push eax
push ebx
call fcn.004dd8c8
add esp, 8
push 0x5718d1
push ebx
call fcn.004ddc34
add esp, 8
mov edx, dword [ebp + 8]
mov dword [edx + 0x38], eax
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx]
cmp ecx, dword [ebp - 0x130]
je 0x4fd048
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.0050abfc
add esp, 8
mov edx, dword [ebp + 8]
or byte [edx + 0x62], 0x20
mov dword [ebp - 0xc], 0x11
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
test byte [ecx + 0x62], 0x20
je 0x4fd070
mov dword [ebp - 0xc], 4
jmp case.0x4fa108.0
xor eax, eax
xor edx, edx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x128], ecx
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x124], eax
mov edx, dword [ebp - 0x124]
shl edx, 4
add edx, dword [ebx + 0x10]
mov dword [ebp - 0x114], edx
xor edx, edx
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x11c], eax
mov dl, byte [esi]
cmp edx, 0x28
jne 0x4fd0ee
mov dword [ebp - 0x120], 1
mov ecx, dword [ebp - 0x114]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4c]
mov eax, dword [ebp + 8]
cmp dl, byte [eax + 0x61]
jae 0x4fd0f6
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0xc]
mov cl, byte [ecx + 0x4c]
mov byte [eax + 0x61], cl
jmp 0x4fd0f6
xor edx, edx
mov dword [ebp - 0x120], edx
test byte [esi + 3], 2
je 0x4fd140
mov ecx, dword [ebp - 0x128]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
push eax
call fcn.004f4dbc
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 2
jge 0x4fd140
push 0x10bd7
call fcn.0052e8f4
pop ecx
mov dword [ebp - 0xc], eax
jmp 0x50071e
cmp byte [esi + 1], 0xfa
jne 0x4fd179
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x12c]
mov cl, byte [edx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [ebp - 0x12c]
movzx ecx, word [edx + 6]
inc ecx
mov dword [ebp - 0x130], ecx
jmp 0x4fd188
cmp byte [esi + 1], 0xf2
jne 0x4fd188
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x130], eax
push 1
mov edx, dword [ebp - 0x124]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
mov eax, dword [esi + 4]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9d94
add esp, 0x14
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
je 0x5006f9
mov ecx, dword [ebp - 0x118]
mov byte [ecx + 0x1c], 1
mov eax, dword [ebp - 0x118]
mov byte [eax + 0x20], 1
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx]
push ecx
mov eax, dword [ebp - 0x12c]
push eax
mov edx, dword [ebp - 0x120]
push edx
mov ecx, dword [ebp - 0x128]
push ecx
mov eax, dword [ebp - 0x11c]
push eax
call fcn.004eebf8
add esp, 0x14
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x12c]
mov dword [edx + 8], eax
xor edx, edx
mov dl, byte [esi + 3]
and edx, 1
push edx
mov ecx, dword [ebp - 0x118]
mov ecx, dword [ecx]
push ecx
call fcn.004f3c98
add esp, 8
mov edx, dword [ebp - 0x118]
cmp byte [esi + 1], 0xfa
setne al
and eax, 1
mov byte [edx + 0x1e], al
xor eax, eax
mov ecx, dword [ebp - 0x118]
mov al, byte [ecx + 0x1e]
cmp eax, 1
mov eax, dword [ebp - 0x118]
sbb edx, edx
neg edx
mov byte [eax + 0x1f], dl
jmp case.0x4fa108.0
push 1
push 0xffffffffffffffff
mov edx, dword [esi + 8]
push edx
mov ecx, dword [esi + 4]
push ecx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f9d94
add esp, 0x14
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x5006f9
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x1c], 1
mov edx, dword [0x56c848]
push edx
xor ecx, ecx
mov cl, byte [esi + 3]
or ecx, 5
push ecx
mov eax, dword [ebp - 0x130]
add eax, 4
push eax
push ebx
push 0
mov edx, dword [ebx]
push edx
call fcn.004ed0d0
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4fd2d8
push 1
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + 4]
push eax
call fcn.004ede38
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4fd39c
cmp dword [esi + 0x10], 0
je 0x4fd36e
xor edx, edx
lea ecx, [ebp - 0x44]
mov dl, byte [esi + 3]
or edx, 2
push edx
push ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 4]
push edx
call fcn.004f2728
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4fd362
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx]
push eax
mov edx, dword [esi + 0x10]
push edx
push 1
mov ecx, dword [ebp - 0x44]
push ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 4]
push edx
call fcn.004eebf8
mov dword [ebp - 0xc], eax
add esp, 0x14
mov ecx, dword [ebp - 0x130]
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x130]
mov cl, byte [edx + 0x4d]
mov edx, dword [eax + 8]
mov byte [edx + 4], cl
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x1e], 0
jmp 0x4fd39c
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
push edx
push 0
push 1
push 1
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + 4]
push eax
call fcn.004eebf8
add esp, 0x14
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x1e], 1
xor ecx, ecx
mov edx, dword [ebp - 0x130]
mov cl, byte [esi + 3]
cmp ecx, 8
setne al
and eax, 1
mov byte [edx + 0x20], al
xor eax, eax
mov ecx, dword [ebp - 0x130]
mov al, byte [ecx + 0x1e]
cmp eax, 1
mov eax, dword [ebp - 0x130]
sbb edx, edx
neg edx
mov byte [eax + 0x1f], dl
jmp case.0x4fa108.0
push 1
push 0xffffffffffffffff
mov edx, dword [esi + 8]
push edx
mov ecx, dword [esi + 4]
push ecx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f9d94
add esp, 0x14
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x5006f9
mov eax, dword [ebp - 0x130]
mov edx, dword [esi + 0x10]
mov dword [eax + 8], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
mov ecx, dword [edx + 0xc]
mov edx, dword [ebp - 0x130]
mov edx, dword [edx + 8]
mov al, byte [ecx + 0x4d]
mov byte [edx + 4], al
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x21], 1
mov ecx, dword [ebp - 0x130]
push ecx
push ebx
call fcn.00501514
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
push 0
push 0xffffffffffffffff
mov ecx, dword [esi + 0xc]
push ecx
mov eax, dword [esi + 4]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9d94
add esp, 0x14
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x5006f9
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x1c], 1
mov eax, dword [ebp - 0x130]
mov edx, dword [esi + 8]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x1e], 1
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x1f], 0
mov edx, dword [ebp - 0x130]
mov al, byte [esi + 3]
mov byte [edx + 0x22], al
jmp case.0x4fa108.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov edi, dword [esi + 4]
mov eax, dword [ecx + edi*4]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f6eb4
add esp, 8
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x44]
mov eax, dword [esi + 4]
xor edx, edx
mov dword [ecx + eax*4], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x128]
cmp dword [eax], 0
je 0x4fd900
xor edx, edx
mov dl, byte [esi]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x128]
mov byte [ecx + 0x1c], 0
mov eax, dword [ebp - 0x128]
cmp byte [eax + 0x1e], 0
je 0x4fd774
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004f9e70
pop ecx
mov eax, dword [ebp - 0x24]
push eax
call fcn.004f4c70
pop ecx
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], edx
mov edx, dword [ebp - 0x128]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x24]
test byte [ecx + 0x1c], 4
jne 0x4fd70a
mov eax, dword [ebp - 0x24]
test byte [eax + 0x1c], 8
jne 0x4fd578
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
cmp dword [ebp - 0xfc], 0x80000000
jne 0x4fd67c
cmp dword [ebp - 0x100], 0
jne 0x4fd67c
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x13c], edx
fild qword [ebp - 0x140]
mov ecx, dword [ebp - 0x24]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x4fd5df
mov edx, dword [ebp - 0x24]
fld qword [edx + 8]
fld dword [0x50079c]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x4fd67c
mov dword [ebp - 0x130], 1
mov edx, dword [ebp - 0x24]
fld qword [edx + 8]
fld dword [0x50079c]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x4fd630
cmp dword [ebp - 0x12c], 0x30
jl 0x4fd65e
lea edx, [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x128]
mov ecx, dword [ecx]
push ecx
call fcn.004ef5b8
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
jmp 0x4fd65e
cmp dword [ebp - 0x12c], 0x2f
jg 0x4fd65e
lea eax, [ebp - 0x130]
push eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx]
push ecx
call fcn.004ef5ec
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
cmp dword [ebp - 0x12c], 0x2e
je 0x4fd68e
cmp dword [ebp - 0x12c], 0x30
jne 0x4fd6cd
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], edx
fild qword [ebp - 0x148]
mov ecx, dword [ebp - 0x24]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x4fd70a
add dword [ebp - 0x100], 1
adc dword [ebp - 0xfc], 0
jmp 0x4fd70a
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], edx
fild qword [ebp - 0x150]
mov ecx, dword [ebp - 0x24]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x4fd70a
sub dword [ebp - 0x100], 1
sbb dword [ebp - 0xfc], 0
lea edx, [ebp - 0x130]
push edx
push 0
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push 0
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
push edx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fd740
jmp 0x50071e
cmp dword [ebp - 0x130], 0
jne 0x4fd812
mov ecx, dword [ebp - 0x128]
mov byte [ecx + 0x19], 1
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x100]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0xfc]
mov dword [eax + 0x44], edx
jmp 0x4fd812
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x108], ecx
mov eax, dword [ebp - 0x128]
mov edx, dword [eax + 8]
mov dword [ebp - 0x120], edx
mov cx, word [ebp - 0x108]
mov word [ebp - 0x11c], cx
mov al, byte [ebp - 0x12c]
add al, 0xd2
and al, 1
mov byte [ebp - 0x11a], al
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x110]
test byte [ecx + 0x1d], 0x40
je 0x4fd7d5
mov eax, dword [ebp - 0x110]
push eax
call fcn.004f49a8
pop ecx
lea edx, [ebp - 0x130]
lea ecx, [ebp - 0x120]
push edx
push 0
push 0
push 0
push ecx
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
push edx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fd808
jmp 0x50071e
mov ecx, dword [ebp - 0x128]
mov byte [ecx + 0x19], 0
mov eax, dword [ebp - 0x128]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x128]
xor eax, eax
mov dword [edx + 0x50], eax
cmp dword [ebp - 0x12c], 0x30
jl 0x4fd886
cmp dword [ebp - 0x130], 0
jl 0x4fd84b
cmp dword [ebp - 0x130], 0
jne 0x4fd87c
cmp dword [ebp - 0x12c], 0x31
jne 0x4fd87c
lea edx, [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x128]
mov ecx, dword [ecx]
push ecx
call fcn.004ef9dc
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov eax, dword [ebp - 0x128]
mov byte [eax + 0x19], 0
jmp 0x4fd8e7
xor edx, edx
mov dword [ebp - 0x130], edx
jmp 0x4fd8e7
cmp dword [ebp - 0x130], 0
jg 0x4fd8a1
cmp dword [ebp - 0x130], 0
jne 0x4fd8d2
cmp dword [ebp - 0x12c], 0x2e
jne 0x4fd8d2
lea ecx, [ebp - 0x130]
push ecx
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
push edx
call fcn.004efafc
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov ecx, dword [ebp - 0x128]
mov byte [ecx + 0x19], 0
jmp 0x4fd8e7
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
push edx
call fcn.004ef9c8
pop ecx
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
cmp dword [ecx], 0
je case.0x4fa108.0
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x1c], 0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004f4c70
pop ecx
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x19], 0
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x1d], 1
jmp case.0x4fa108.0
xor ecx, ecx
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x12c], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x12c]
cmp dword [ecx], 0
je 0x4fdac5
cmp dword [esi + 0x10], 0
jle 0x4fd9eb
mov eax, dword [ebp - 0x12c]
mov edx, dword [eax + 8]
mov dword [ebp - 0x118], edx
lea edx, [ebp - 0x118]
mov cx, word [esi + 0x10]
mov word [ebp - 0x114], cx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x108], eax
mov byte [ebp - 0x112], 2
mov dword [ebp - 0x120], edx
jmp 0x4fda54
lea ecx, [ebp - 0x124]
lea eax, [ebp - 0x100]
push ecx
push 0x97
push eax
mov edx, dword [ebp - 0x12c]
mov ecx, dword [edx + 8]
push ecx
call fcn.004f8158
add esp, 0x10
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x5006f9
mov eax, dword [ebp - 0x120]
push eax
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 4]
push ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x18]
push edx
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ecx + 8]
push eax
call fcn.004f81c8
add esp, 0x10
mov edx, dword [ebp - 0x120]
or byte [edx + 6], 2
lea ecx, [ebp - 0x128]
push ecx
push 0
push 0
push 0
mov eax, dword [ebp - 0x120]
push eax
mov edx, dword [ebp - 0x12c]
mov ecx, dword [edx]
push ecx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [esi + 0x10], 0
jne 0x4fda92
mov eax, dword [ebp - 0x124]
push eax
push ebx
call fcn.004dd8c8
add esp, 8
cmp dword [ebp - 0xc], 0
je 0x4fda9d
jmp case.0x4fa108.0
cmp dword [ebp - 0x128], 0
sete dl
and edx, 1
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x12c]
mov byte [ecx + 0x1d], 0
mov eax, dword [ebp - 0x12c]
xor edx, edx
mov dword [eax + 0x50], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x34
jne 0x4fdae7
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
cmp dword [ebp - 0x130], 0
jne case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov eax, dword [esi + 0x10]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x120], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x12c]
xor eax, eax
mov dword [ecx + 0x4c], eax
mov edx, dword [ebp - 0x12c]
xor eax, eax
mov dword [edx + 0x50], eax
mov edx, dword [ebp - 0x12c]
mov ecx, dword [edx]
mov dword [ebp - 0x128], ecx
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ecx + 8]
mov dx, word [eax + 6]
mov word [ebp - 0x124], dx
mov word [ebp - 0x130], 0
jmp 0x4fdba5
movzx ecx, word [ebp - 0x130]
lea eax, [ecx + ecx*4]
mov edx, dword [ebp - 0x120]
test byte [edx + eax*8 + 0x1c], 1
je 0x4fdb9e
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
xor eax, eax
mov dword [ebp - 0x128], eax
jmp 0x4fdbb5
inc word [ebp - 0x130]
mov dx, word [ebp - 0x130]
cmp dx, word [ebp - 0x124]
jb 0x4fdb76
cmp dword [ebp - 0x128], 0
je case.0x4fa108.0
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x118], eax
mov dx, word [ebp - 0x124]
inc edx
mov word [ebp - 0x114], dx
mov byte [ebp - 0x112], 4
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x108], ecx
mov eax, dword [ebp - 0x24]
push eax
call fcn.004f4dbc
mov edx, dword [ebp - 0x24]
pop ecx
lea ecx, [ebp - 0x118]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x100], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x12c]
add edx, 0x4c
push edx
push 0
push 0
push 0
push ecx
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
test byte [ebp - 0x112], 4
jne 0x4fdc60
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0xfc]
jne 0x4fdc6c
cmp eax, dword [ebp - 0x100]
jne 0x4fdc6c
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x110]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x10c]
mov dword [eax + 0x14], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
mov ecx, dword [ecx]
mov dword [ebp - 0x12c], ecx
cmp dword [ebp - 0x12c], 0
je 0x4fdd78
xor eax, eax
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x120], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x11c], eax
lea edx, [ebp - 0x128]
push edx
push 0
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push 0
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x40], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x44], ecx
cmp dword [ebp - 0x128], 0
jne 0x4fdd2a
mov al, 1
jmp 0x4fdd2c
xor eax, eax
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x19], al
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x1c], 0
mov ecx, dword [ebp - 0x130]
xor eax, eax
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x1d], 0
cmp dword [ebp - 0x128], 0
je 0x4fdd64
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x128]
mov dword [eax + 0x4c], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x130]
xor edx, edx
mov dword [eax + 0x4c], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x44]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + esi*4]
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
add dword [ecx + 0x30], 1
adc dword [ecx + 0x34], 0
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4fa108.0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
xor eax, eax
mov dword [ebp - 0x124], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x128]
cmp dword [ecx], 0
jne 0x4fddf5
jmp 0x4fe134
mov eax, dword [ebp - 0x128]
cmp byte [eax + 0x1b], 0
jne 0x4fe013
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx]
push ecx
call fcn.004eec80
pop ecx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
jne 0x4fde30
cmp dword [ebp - 0x130], 0
jne 0x4fdec9
lea eax, [ebp - 0x124]
push eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx]
push ecx
call fcn.004ef5ec
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fde5c
jmp 0x50071e
cmp dword [ebp - 0x124], 0
je 0x4fde7b
mov dword [ebp - 0x130], 1
mov dword [ebp - 0x12c], 0
jmp 0x4fdec9
lea eax, [ebp - 0x130]
push eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx]
push ecx
call fcn.004eed28
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x12c], 0x7fffffff
jne 0x4fdead
cmp dword [ebp - 0x130], 0xffffffff
jb 0x4fdebb
jmp 0x4fdeaf
jl 0x4fdebb
mov eax, dword [ebp - 0x128]
mov byte [eax + 0x1b], 1
jmp 0x4fdec9
add dword [ebp - 0x130], 1
adc dword [ebp - 0x12c], 0
cmp dword [esi + 0xc], 0
je 0x4fdfcf
mov edx, dword [ebp + 8]
cmp dword [edx + 0xa0], 0
je 0x4fdf27
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xa0]
mov dword [ebp - 0x118], eax
jmp 0x4fdeff
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x118]
cmp dword [eax + 4], 0
jne 0x4fdef0
mov eax, dword [esi + 0xc]
mov edx, dword [ebp - 0x118]
shl eax, 3
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*4]
add ecx, eax
mov dword [ebp - 0x11c], ecx
jmp 0x4fdf39
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x11c], edx
mov ecx, dword [ebp - 0x11c]
push ecx
call fcn.004f4dbc
pop ecx
mov eax, dword [ebp - 0x11c]
cmp dword [eax + 0x14], 0x7fffffff
jne 0x4fdf59
cmp dword [eax + 0x10], 0xffffffff
je 0x4fdf67
mov edx, dword [ebp - 0x128]
cmp byte [edx + 0x1b], 0
je 0x4fdf73
mov dword [ebp - 0xc], 0xd
jmp 0x50071e
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
add eax, 1
adc edx, 0
cmp edx, dword [ebp - 0x12c]
jne 0x4fdf97
cmp eax, dword [ebp - 0x130]
jbe 0x4fdfb7
jmp 0x4fdf99
jle 0x4fdfb7
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
add eax, 1
adc edx, 0
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x130]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x12c]
mov dword [ecx + 0x14], eax
cmp dword [ebp - 0x12c], 0x7fffffff
jne 0x4fdfe6
cmp dword [ebp - 0x130], 0xffffffff
jae 0x4fdffc
jmp 0x4fdfe8
jge 0x4fdffc
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
add eax, 1
adc edx, 0
jmp 0x4fe000
xor eax, eax
xor edx, edx
push edx
push eax
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx]
push eax
call fcn.004eec50
add esp, 0xc
mov edx, dword [ebp - 0x128]
cmp byte [edx + 0x1b], 0
je 0x4fe115
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x130], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x12c], ecx
and dword [ebp - 0x130], 0xffffffff
and dword [ebp - 0x12c], 0x3fffffff
add dword [ebp - 0x130], 1
adc dword [ebp - 0x12c], 0
xor eax, eax
mov dword [ebp - 0x120], eax
jmp 0x4fe0ad
lea edx, [ebp - 0x130]
push edx
push 8
call fcn.004df138
add esp, 8
cmp dword [ebp - 0x120], 5
jge 0x4fe08e
and dword [ebp - 0x130], 0xffffff
mov dword [ebp - 0x12c], 0
jmp 0x4fe09f
and dword [ebp - 0x130], 0xffffffff
and dword [ebp - 0x12c], 0x3fffffff
add dword [ebp - 0x130], 1
adc dword [ebp - 0x12c], 0
lea ecx, [ebp - 0x124]
push ecx
push 0
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
push 0
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx]
push ecx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x4fe0fa
cmp dword [ebp - 0x124], 0
jne 0x4fe0fa
inc dword [ebp - 0x120]
mov edx, dword [ebp - 0x120]
cmp edx, 0x64
jl 0x4fe05e
cmp dword [ebp - 0xc], 0
jne 0x4fe115
cmp dword [ebp - 0x124], 0
jne 0x4fe115
mov dword [ebp - 0xc], 0xd
jmp 0x50071e
mov ecx, dword [ebp - 0x128]
mov byte [ecx + 0x19], 0
mov eax, dword [ebp - 0x128]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x128]
xor eax, eax
mov dword [edx + 0x50], eax
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x130]
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x12c]
mov dword [edx + 0x14], ecx
jmp case.0x4fa108.0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x120], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x39
jne 0x4fe1a7
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x12c], ecx
mov eax, dword [ebp - 0x12c]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x128], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x124], edx
jmp 0x4fe1b7
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
test byte [esi + 3], 1
je 0x4fe1c3
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x64]
test byte [esi + 3], 2
je 0x4fe1e1
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov ecx, dword [ebp - 0x130]
test byte [ecx + 0x1c], 1
je 0x4fe203
mov eax, dword [ebp - 0x130]
xor edx, edx
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x130]
xor eax, eax
mov dword [ecx + 0x18], eax
test byte [esi + 3], 0x10
je 0x4fe214
mov edx, dword [ebp - 0x120]
mov ecx, dword [edx + 0x4c]
jmp 0x4fe216
xor ecx, ecx
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x130]
test byte [eax + 0x1d], 0x40
je 0x4fe239
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x11c], ecx
jmp 0x4fe241
xor eax, eax
mov dword [ebp - 0x11c], eax
push 0
push 0
mov edx, dword [ebp - 0x120]
mov ecx, dword [edx]
push ecx
call fcn.004eec50
add esp, 0xc
mov eax, dword [ebp - 0x118]
push eax
xor edx, edx
mov dl, byte [esi + 3]
and edx, 8
push edx
mov ecx, dword [ebp - 0x11c]
push ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x18]
push edx
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + 4]
push eax
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push 0
mov ecx, dword [ebp - 0x120]
mov eax, dword [ecx]
push eax
call fcn.004f2040
add esp, 0x24
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x120]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x120]
mov byte [ecx + 0x1d], 0
mov eax, dword [ebp - 0x120]
xor edx, edx
mov dword [eax + 0x50], edx
cmp dword [ebp - 0xc], 0
jne case.0x4fa108.0
cmp dword [ebx + 0xc4], 0
je case.0x4fa108.0
cmp dword [esi + 0x10], 0
je case.0x4fa108.0
mov ecx, dword [ebp - 0x120]
mov eax, dword [ecx + 0xc]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax]
mov dword [ebp - 0x114], ecx
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x110], eax
test byte [esi + 3], 4
je 0x4fe311
mov edx, 0x17
jmp 0x4fe316
mov edx, 0x12
mov dword [ebp - 0x10c], edx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov ecx, dword [ebp - 0x110]
push ecx
mov ecx, dword [ebp - 0x114]
push ecx
mov eax, dword [ebp - 0x10c]
push eax
mov edx, dword [ebx + 0xc0]
push edx
call dword [ebx + 0xc4]
add esp, 0x18
jmp case.0x4fa108.0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x128], ecx
cmp dword [ebx + 0xc4], 0
je 0x4fe39f
cmp dword [esi + 0x10], 0
je 0x4fe39f
mov eax, dword [ebp - 0x128]
mov edx, dword [eax + 0x40]
mov dword [ebp - 0x130], edx
mov edx, dword [eax + 0x44]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.004f7c28
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
push 0
push 0
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
push edx
call fcn.004eec50
add esp, 0xc
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx]
push eax
call fcn.004f224c
pop ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x128]
xor eax, eax
mov dword [edx + 0x50], eax
cmp dword [ebp - 0xc], 0
jne 0x4fe441
cmp dword [ebx + 0xc4], 0
je 0x4fe441
cmp dword [esi + 0x10], 0
je 0x4fe441
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx + 0xc]
shl ecx, 4
mov edi, dword [ebx + 0x10]
mov eax, dword [edi + ecx]
mov dword [ebp - 0x48], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x4c], edx
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
mov ecx, dword [ebp - 0x4c]
push ecx
mov eax, dword [ebp - 0x48]
push eax
push 9
mov edx, dword [ebx + 0xc0]
push edx
call dword [ebx + 0xc4]
add esp, 0x18
test byte [esi + 8], 1
je case.0x4fa108.0
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x64]
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x64]
push edx
push ebx
call fcn.004f8618
add esp, 8
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 0x64], eax
jmp case.0x4fa108.0
mov edx, dword [ebp + 8]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x44]
mov edx, dword [ecx + eax*4]
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x130], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
push eax
mov edx, dword [ebp - 0x24]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.00501f6c
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x12c], 0
je case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x130]
push edx
call fcn.00501f04
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
mov ecx, dword [ecx]
mov dword [ebp - 0x12c], ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004f7c28
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov edx, dword [ebp - 0x130]
cmp byte [edx + 0x1f], 0
je 0x4fe59f
lea ecx, [ebp - 0x120]
push ecx
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004eed28
add esp, 8
mov eax, dword [ebx + 0x58]
cdq
cmp edx, dword [ebp - 0x11c]
jne 0x4fe58a
cmp eax, dword [ebp - 0x120]
jae 0x4fe591
jmp 0x5006d8
jge 0x4fe591
jmp 0x5006d8
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x128], eax
jmp 0x4fe5c5
lea edx, [ebp - 0x128]
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004eed84
add esp, 8
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebx + 0x58]
jbe 0x4fe5c5
jmp 0x5006d8
push 0
mov eax, dword [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4868
add esp, 0xc
test eax, eax
je 0x4fe5e3
jmp 0x5006f9
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x128]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 0x10
mov word [eax + 0x1c], cx
mov edx, dword [ebp - 0x130]
cmp byte [edx + 0x1f], 0
je 0x4fe636
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
push eax
mov edx, dword [ebp - 0x128]
push edx
push 0
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004ef1b4
add esp, 0x10
mov dword [ebp - 0xc], eax
jmp 0x4fe658
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp - 0x128]
push ecx
push 0
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004ef1d4
add esp, 0x10
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x28]
mov byte [edx + 0x1f], 1
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
cmp byte [eax + 0x1c], 0
je 0x4fe695
mov edx, dword [ebp - 0x28]
mov word [edx + 0x1c], 1
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x130]
cmp byte [ecx + 0x1d], 0
je 0x4fe6be
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x38]
mov dword [ebp - 0x128], edx
mov edx, dword [eax + 0x3c]
mov dword [ebp - 0x124], edx
jmp 0x4fe779
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + 0x24], 0
je 0x4fe71e
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov dword [ebp - 0x120], ecx
lea ecx, [ebp - 0x128]
mov eax, dword [ebp - 0x120]
mov edx, dword [eax]
mov dword [ebp - 0x11c], edx
push ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x24]
push edx
mov ecx, dword [ebp - 0x11c]
call dword [ecx + 0x30]
add esp, 8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x120]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9f7c
add esp, 8
jmp 0x4fe779
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.004f7c28
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov eax, dword [ebp - 0x130]
cmp byte [eax + 0x19], 0
je 0x4fe75e
mov edx, dword [ebp - 0x130]
mov eax, dword [edx + 0x40]
mov dword [ebp - 0x128], eax
mov eax, dword [edx + 0x44]
mov dword [ebp - 0x124], eax
jmp 0x4fe779
lea edx, [ebp - 0x128]
push edx
mov ecx, dword [ebp - 0x130]
mov ecx, dword [ecx]
push ecx
call fcn.004eed28
add esp, 8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x128]
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x124]
mov dword [eax + 0x14], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
mov byte [eax + 0x1c], 1
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x130]
cmp dword [ecx], 0
je case.0x4fa108.0
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
push edx
call fcn.004ebfbc
pop ecx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x44]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x12c], 0
je 0x4fe826
lea eax, [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x12c]
push edx
call fcn.004ef5ec
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x130]
mov al, byte [ebp - 0x128]
mov byte [ecx + 0x1c], al
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x1d], 0
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x19], 0
mov eax, dword [ebp - 0x130]
xor edx, edx
mov dword [eax + 0x50], edx
cmp dword [esi + 8], 0
jle case.0x4fa108.0
cmp dword [ebp - 0x128], 0
je case.0x4fa108.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
inc dword [eax + 0x78]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x128], 1
mov ecx, dword [ebp - 0x130]
cmp dword [ecx + 0x48], 0
je 0x4fe8c1
lea eax, [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x130]
push edx
push ebx
call fcn.00501bcc
add esp, 0xc
mov dword [ebp - 0xc], eax
jmp 0x4fe91f
mov ecx, dword [ebp - 0x130]
lea edx, [ebp - 0x128]
mov eax, dword [ecx]
mov dword [ebp - 0x12c], eax
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004ef5b8
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x128], 0
jne 0x4fe8f5
mov al, 1
jmp 0x4fe8f7
xor eax, eax
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x1a], al
mov ecx, dword [ebp - 0x130]
mov byte [ecx + 0x1d], 0
mov ecx, dword [ebp - 0x130]
xor eax, eax
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x130]
mov al, byte [ebp - 0x128]
mov byte [ecx + 0x1c], al
cmp dword [ebp - 0x128], 0
je case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
cmp dword [ebx + 0xe8], 0
jne 0x50075d
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
cmp dword [ebp - 0x130], 0
jne 0x4fe974
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x130]
cmp dword [eax + 0x48], 0
je 0x4fe99c
lea edx, [ebp - 0x12c]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
push ebx
call fcn.00501e28
add esp, 0xc
mov dword [ebp - 0xc], eax
jmp 0x4fe9bf
mov dword [ebp - 0x12c], 1
lea eax, [ebp - 0x12c]
push eax
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx]
push ecx
call dword [esi + 0x10]
add esp, 8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x130]
mov dl, byte [ebp - 0x12c]
mov byte [eax + 0x1c], dl
mov ecx, dword [ebp - 0x130]
xor eax, eax
mov dword [ecx + 0x50], eax
cmp dword [ebp - 0x12c], 0
jne 0x4fe9fb
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
cmp byte [esi + 3], 0
je 0x4fe9fb
xor ecx, ecx
mov cl, byte [esi + 3]
mov eax, dword [ebp + 8]
inc dword [eax + ecx*4 + 0x70]
mov edx, dword [ebp - 0x130]
mov byte [edx + 0x19], 0
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx]
mov dword [ebp - 0x12c], ecx
cmp dword [ebp - 0x12c], 0
je case.0x4fa108.0
mov eax, dword [ebp - 0x20]
test byte [eax + 0x1d], 0x40
je 0x4fea5b
mov edx, dword [ebp - 0x20]
push edx
call fcn.004f49a8
pop ecx
jmp 0x4fea5d
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne case.0x4fa108.0
mov edx, dword [ebp - 0x130]
cmp dword [edx + 0x48], 0
je 0x4fea92
mov ecx, dword [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x130]
push ecx
push ebx
call fcn.00501a70
add esp, 0xc
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x18]
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x124], eax
test byte [esi + 3], 0x10
je 0x4feabb
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx + 0x4c]
jmp 0x4feabd
xor ecx, ecx
push ecx
mov eax, dword [esi + 0xc]
push eax
push 0
push 0
push 0x5718ed
mov eax, dword [ebp - 0x128]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x124]
push ecx
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004f2040
add esp, 0x24
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x130]
xor edx, edx
mov dword [eax + 0x50], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
je case.0x4fa108.0
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x128]
mov dx, word [esi + 0xc]
mov word [ebp - 0x11c], dx
lea edx, [ebp - 0x120]
mov byte [ebp - 0x11a], 0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x110], ecx
push eax
push 0
push 0
push 0
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004ef640
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4feba2
cmp dword [ebp - 0x128], 0
jne 0x4feba2
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004f224c
pop ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x130]
xor eax, eax
mov dword [edx + 0x50], eax
jmp case.0x4fa108.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x12c]
mov ecx, dword [ecx]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov edx, dword [ebp - 0x12c]
push edx
call fcn.004f7c28
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x50071e
mov ecx, dword [ebp - 0x12c]
cmp byte [ecx + 0x1c], 0
jne case.0x4fa108.0
lea eax, [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x130]
push edx
push ebx
call fcn.004f8434
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4fec37
jmp 0x50071e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x128]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x124]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x28]
mov word [edx + 0x1c], 4
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x44]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
cmp dword [eax], 0
je case.0x4fa108.0
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x128], ecx
mov ax, word [esi + 0x10]
mov word [ebp - 0x124], ax
cmp byte [esi + 3], 0
je 0x4feca4
mov byte [ebp - 0x122], 3
jmp 0x4fecab
mov byte [ebp - 0x122], 2
mov edx, dword [esi + 0xc]
lea ecx, [ebp - 0x12c]
shl edx, 3
lea eax, [ebp - 0x128]
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x118], edx
push ecx
push eax
mov edx, dword [ebp - 0x130]
push edx
call fcn.004f8564
mov dword [ebp - 0xc], eax
xor ecx, ecx
mov cl, byte [esi]
add esp, 0xc
cmp ecx, 0x64
jne 0x4fecee
neg dword [ebp - 0x12c]
jmp 0x4fecf4
inc dword [ebp - 0x12c]
cmp dword [ebp - 0x12c], 0
jle case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
xor edx, edx
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x128], ecx
jmp 0x4fed64
mov eax, dword [ebp - 0x128]
cmp dword [eax + 0x34], 0xbdf20da3
jne 0x4fed55
mov edx, dword [ebp - 0x128]
mov cl, byte [edx + 0x62]
shr ecx, 2
and ecx, 3
cmp ecx, 2
jae 0x4fed55
mov eax, dword [ebp - 0x128]
cmp dword [eax + 0x58], 0
jl 0x4fed55
inc dword [ebp - 0x12c]
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx + 0x40]
mov dword [ebp - 0x128], ecx
cmp dword [ebp - 0x128], 0
jne 0x4fed20
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], 1
cmp dword [ebp - 0x12c], 1
jle 0x4fed92
mov dword [ebp - 0xc], 6
mov edx, dword [ebp + 8]
mov byte [edx + 0x60], 2
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
lea eax, [ebp - 0x130]
mov dword [ebp - 0x124], ecx
push eax
mov edx, dword [esi + 4]
push edx
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebx + 0x10]
shl ecx, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004f2b24
mov dword [ebp - 0xc], eax
add esp, 0xc
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], 4
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
cmp dword [ebp - 0xc], 0
jne case.0x4fa108.0
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov eax, dword [esi + 4]
push eax
mov edx, dword [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x124]
push ecx
push ebx
call fcn.0050c3a8
add esp, 0x10
mov al, byte [ebp - 0x124]
inc eax
mov byte [ebp - 0xd], al
jmp case.0x4fa108.0
xor edx, edx
mov dword [ebp - 0x130], edx
cmp dword [esi + 0xc], 0
je 0x4fee32
lea ecx, [ebp - 0x130]
jmp 0x4fee34
xor ecx, ecx
push ecx
mov eax, dword [esi + 4]
push eax
mov edx, dword [esi + 8]
shl edx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + edx + 4]
push edx
call fcn.004f28c0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [esi + 0xc], 0
je case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x130]
add dword [ecx + 0x64], edi
cmp dword [esi + 0xc], 0
jle case.0x4fa108.0
mov ecx, dword [esi + 0xc]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x130]
cdq
lea ecx, [ecx + ecx*4]
add dword [esi + ecx*8 + 0x10], eax
adc dword [esi + ecx*8 + 0x14], edx
jmp case.0x4fa108.0
xor eax, eax
mov dword [ebp - 0x130], eax
mov edx, dword [esi + 4]
shl edx, 4
add edx, dword [ebx + 0x10]
mov dword [ebp - 0x128], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x69
jne 0x4feebb
mov dword [ebp - 0x12c], 1
jmp 0x4feec5
mov dword [ebp - 0x12c], 2
mov ecx, dword [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
push eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [edx + 4]
push ecx
call fcn.004f2728
mov dword [ebp - 0xc], eax
add esp, 0xc
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x28]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4fa108.0
mov eax, dword [esi + 4]
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 1
jne 0x4fef16
mov edx, 0x5718ee
jmp 0x4fef1b
mov edx, 0x571901
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x124], ebx
mov eax, dword [esi + 4]
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp + 8]
add ecx, 0x38
mov dword [ebp - 0x120], ecx
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [ebp - 0x12c]
push eax
mov edx, dword [ebp - 0x130]
shl edx, 4
mov eax, dword [ebx + 0x10]
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.004deea8
add esp, 0x14
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne 0x4fef7d
mov dword [ebp - 0xc], 7
jmp 0x4fefd3
mov byte [ebx + 0x89], 1
xor ecx, ecx
mov dword [ebp - 0x118], ecx
push 0
lea ecx, [ebp - 0x124]
push ecx
push fcn.00518b90
mov eax, dword [ebp - 0x128]
push eax
push ebx
call fcn.00515034
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4fefbc
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0x128]
push ecx
push ebx
call fcn.004dd8c8
add esp, 8
mov byte [ebx + 0x89], 0
cmp dword [ebp - 0xc], 0
je 0x4fefe0
push ebx
call fcn.0050ac34
pop ecx
cmp dword [ebp - 0xc], 7
jne case.0x4fa108.0
jmp 0x5006f9
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.00509734
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [esi + 4]
push ecx
push ebx
call fcn.0050adf4
add esp, 0xc
jmp case.0x4fa108.0
mov eax, dword [esi + 0x10]
push eax
mov edx, dword [esi + 4]
push edx
push ebx
call fcn.0050aab4
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.00520148
add esp, 0xc
jmp case.0x4fa108.0
mov edx, dword [esi + 8]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
inc ecx
shl ecx, 2
push ecx
push ebx
call fcn.004ddae4
add esp, 8
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x5006f9
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x11c], eax
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x128], eax
jmp 0x4ff0cd
mov edx, dword [ebp - 0x128]
shl edx, 3
lea edx, [edx + edx*4]
add edx, edi
push edx
call fcn.004f4c70
pop ecx
mov edx, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x128]
mov dword [edx + ecx*4], eax
inc dword [ebp - 0x128]
mov ecx, dword [ebp - 0x128]
cmp ecx, dword [ebp - 0x130]
jl 0x4ff0a3
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebp - 0x128]
xor ecx, ecx
mov dword [eax + edx*4], ecx
lea eax, [ebp - 0x124]
push eax
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx + 0x10]
push eax
mov edx, dword [ebp - 0x130]
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
xor ecx, ecx
mov cl, byte [esi + 3]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004f3798
add esp, 0x14
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x12c]
push ecx
push ebx
call fcn.004dd8c8
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x124]
cdq
add esp, 8
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
push edi
call fcn.004f4e7c
cmp dword [ebp - 0x124], 0
pop ecx
jne 0x4ff15e
jmp 0x4ff187
cmp dword [ebp - 0x120], 0
jne 0x4ff16e
jmp 0x5006f9
push fcn.004dd864
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x120]
push eax
push edi
call fcn.004f50b4
add esp, 0x14
xor edx, edx
mov dl, byte [ebp - 0xe]
push edx
push edi
call fcn.004f4840
add esp, 8
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
shl edi, 3
shl eax, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
test byte [edi + 0x1c], 0x20
jne 0x4ff1cd
push edi
call fcn.004f4f68
test byte [edi + 0x1c], 0x20
pop ecx
je 0x5006f9
mov edx, dword [ebp - 0x20]
push dword [edx + 0x14]
push dword [edx + 0x10]
mov ecx, dword [edi + 0x10]
push ecx
call fcn.004e4d4c
add esp, 0xc
jmp case.0x4fa108.0
cmp dword [ebx + 0xe8], 0
jne 0x50075d
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
test byte [edi + 0x1c], 0x20
je 0x4ff21d
lea eax, [ebp - 0x130]
push eax
mov edx, dword [edi + 0x10]
push edx
call fcn.004e4fbc
add esp, 8
test eax, eax
jne 0x4ff230
push edi
call fcn.004f4e7c
pop ecx
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
push eax
call fcn.004f4efc
add esp, 0xc
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl eax, 3
shl edi, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x130], edx
test byte [edi + 0x1c], 0x20
jne 0x4ff291
push edi
call fcn.004f4f68
test byte [edi + 0x1c], 0x20
pop ecx
je 0x5006f9
cmp dword [ebp - 0x130], 0
je 0x4ff2e1
mov ecx, dword [ebp - 0x24]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
cmp dword [ebp - 0x130], 0
jl 0x4ff2b7
mov dl, byte [ebp - 0x130]
and dl, 0xf
jmp 0x4ff2b9
mov dl, 0xff
push edx
mov eax, dword [edi + 0x10]
push eax
call fcn.004e5008
add esp, 0x10
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x4ff2e1
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
cmp dword [ebp - 0x130], 0
jl case.0x4fa108.0
mov ecx, dword [ebp - 0x24]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov edx, dword [edi + 0x10]
push edx
call fcn.004e4d4c
add esp, 0xc
jmp case.0x4fa108.0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x118], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x128], eax
cmp byte [esi + 3], 0
je 0x4ff37f
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xa0]
mov dword [ebp - 0x11c], edx
jmp 0x4ff358
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x4ff372
mov edx, dword [ebp - 0x11c]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [ebp - 0x114]
jne 0x4ff349
cmp dword [ebp - 0x11c], 0
jne case.0x4fa108.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xa8]
cmp edx, dword [ebx + 0x80]
jl 0x4ff3b1
mov dword [ebp - 0xc], 1
push str.too_many_levels_of_trigger_recursion
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
add esp, 0xc
jmp case.0x4fa108.0
mov eax, dword [ebp - 0x128]
test byte [eax + 0x1c], 0x40
jne 0x4ff573
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x118]
mov ecx, dword [edx + 8]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x118]
shl edx, 3
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x118]
shl ecx, 2
lea edx, [edx + edx*4]
add edx, ecx
add edx, dword [eax + 0x10]
add edx, 0x48
mov dword [ebp - 0x12c], edx
mov edx, dword [ebp - 0x12c]
push edx
push ebx
call fcn.004ddab4
add esp, 8
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jne 0x4ff429
jmp 0x5006f9
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.004f4bc0
pop ecx
mov ecx, dword [ebp - 0x128]
mov word [ecx + 0x1c], 0x40
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x11c]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp + 8]
mov dword [ecx], eax
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x130]
mov dword [edx + 0x3c], eax
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [edx + 0xc]
mov dword [eax + 0x40], ecx
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 4]
mov dword [edx + 0x2c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 8]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x44]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x30]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 4]
mov dword [edx + 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x14]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0xb8]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0xb4]
mov dword [edx + 0x38], eax
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0x3c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x11c]
add eax, 0x48
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x11c]
add edx, 0x48
mov dword [ebp - 0x124], edx
jmp 0x4ff563
mov ecx, dword [ebp - 0x124]
mov word [ecx + 0x1c], 0x80
mov eax, dword [ebp - 0x124]
mov dword [eax], ebx
add dword [ebp - 0x124], 0x28
mov edx, dword [ebp - 0x124]
cmp edx, dword [ebp - 0x120]
jne 0x4ff548
jmp 0x4ff582
mov ecx, dword [ebp - 0x128]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x11c], eax
mov edx, dword [ebp + 8]
inc dword [edx + 0xa8]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x11c]
mov eax, dword [ecx + 0xa0]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x38]
mov dword [ecx + 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [edx + 0x64]
mov dword [eax + 0x44], ecx
xor eax, eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x64], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x11c]
mov dword [edx + 0xa0], ecx
mov ecx, dword [ebp - 0x11c]
add ecx, 0x20
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [ebp + 8]
movzx ecx, word [edx + 0x40]
mov dword [eax + 0x30], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x18]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
add ecx, 0x28
mov dword [eax + 0x44], ecx
mov edx, dword [ebp - 0x118]
mov ecx, dword [edx]
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 4]
mov dword [eax + 0x1c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x44]
mov edx, dword [eax + 0x30]
mov eax, dword [ebp + 8]
shl edx, 2
add ecx, edx
mov dword [eax + 0xb8], ecx
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0xb4], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xb4]
push ecx
push 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb8]
push eax
call fcn.005444d8
add esp, 0xc
jmp case.0x4fa108.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xa0]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + 8]
lea edx, [edx + edx*4]
mov eax, dword [ebp - 0x130]
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 + 0xc]
mov dword [ebp - 0x12c], ecx
push 0x1000
mov edx, dword [ebp - 0x12c]
push edx
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.004f4fe8
add esp, 0xc
jmp case.0x4fa108.0
cmp dword [esi + 4], 0
je 0x4ff70e
mov eax, dword [esi + 8]
cdq
add dword [ebx + 0x1f0], eax
adc dword [ebx + 0x1f4], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 8]
cdq
add dword [ecx + 0x88], eax
adc dword [ecx + 0x8c], edx
jmp case.0x4fa108.0
cmp dword [esi + 4], 0
je 0x4ff752
cmp dword [ebx + 0x1f4], 0
jne case.0x4fa108.0
cmp dword [ebx + 0x1f0], 0
jne case.0x4fa108.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x8c], 0
jne case.0x4fa108.0
cmp dword [eax + 0x88], 0
jne case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa0], 0
je 0x4ff7cf
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xa0]
mov dword [ebp - 0x12c], edx
jmp 0x4ff7a7
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x12c]
cmp dword [edx + 4], 0
jne 0x4ff798
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0x12c]
shl edx, 3
mov eax, dword [ecx + 0xc]
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebp - 0x130], eax
jmp 0x4ff7e1
mov ecx, dword [esi + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004f4dbc
pop ecx
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004f4dbc
pop ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 0x20]
cmp edx, dword [ecx + 0x14]
jne 0x4ff826
cmp eax, dword [ecx + 0x10]
jae case.0x4fa108.0
jmp 0x4ff82c
jge case.0x4fa108.0
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x14], ecx
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
cmp dword [edi + 0x14], 0
jne 0x4ff864
cmp dword [edi + 0x10], 0
jbe case.0x4fa108.0
jmp 0x4ff86a
jle case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
cmp dword [edi + 0x14], 0
jne 0x4ff894
cmp dword [edi + 0x10], 0
jae case.0x4fa108.0
jmp 0x4ff89a
jge case.0x4fa108.0
mov eax, dword [esi + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x4fa108.0
mov edi, dword [esi + 4]
shl edi, 3
lea edi, [edi + edi*4]
add edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0xc]
cdq
add dword [edi + 0x10], eax
adc dword [edi + 0x14], edx
cmp dword [edi + 0x14], 0
jne case.0x4fa108.0
cmp dword [edi + 0x10], 0
jne case.0x4fa108.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x4fa108.0
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x124], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xe0], ecx
xor eax, eax
mov dword [ebp - 0x12c], eax
jmp 0x4ff93e
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x124]
mov dword [edx + eax*4], ecx
mov edx, dword [ebp - 0x124]
push edx
call fcn.004f9d5c
pop ecx
inc dword [ebp - 0x12c]
add dword [ebp - 0x124], 0x28
mov ecx, dword [ebp - 0x12c]
cmp ecx, dword [ebp - 0x130]
jl 0x4ff90f
mov eax, dword [esi + 0x10]
xor ecx, ecx
mov dword [ebp - 0x120], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x128], edx
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0x128]
xor edx, edx
inc dword [eax + 0x18]
xor eax, eax
mov word [ebp - 0xfc], 1
mov dword [ebp - 0x114], ecx
xor ecx, ecx
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0xe8], edx
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe4], eax
mov edx, dword [ebp - 0x120]
test byte [edx + 3], 8
je 0x4ff9ca
mov ecx, dword [esi - 4]
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0x120]
push eax
mov edx, dword [ebp - 0x130]
push edx
push ecx
mov eax, dword [ebp - 0x120]
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebp - 0xe8], 0
je 0x4ffa20
lea edx, [ebp - 0x118]
push edx
call fcn.004f8908
pop ecx
push eax
push 0x571974
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
add esp, 0x10
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xe4], 0
je 0x4ffa57
mov edx, dword [esi - 0x10]
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
je 0x4ffa57
push 0
push 1
mov ecx, dword [ebp - 0x12c]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
push ecx
call fcn.004f4efc
add esp, 0xc
lea eax, [ebp - 0x118]
push eax
call fcn.004f4bc0
pop ecx
jmp case.0x4fa108.0
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x130], edx
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004f4af0
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4ffaba
mov edx, dword [ebp - 0x130]
push edx
call fcn.004f8908
pop ecx
push eax
push 0x571977
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
add esp, 0x10
xor eax, eax
mov al, byte [ebp - 0xe]
push eax
mov edx, dword [ebp - 0x130]
push edx
call fcn.004f4840
add esp, 8
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.004f4fbc
pop ecx
test eax, eax
je case.0x4fa108.0
jmp 0x5006d8
xor eax, eax
or edx, 0xffffffff
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x128], edx
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x128]
push ecx
mov ecx, dword [esi + 8]
push ecx
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.0052da1c
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 5
jne 0x4ffb3c
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x12c], 1
xor ecx, ecx
mov dword [ebp - 0x130], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x120], eax
jmp 0x4ffb84
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp + edx*4 - 0x12c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.004f4efc
add esp, 0xc
inc dword [ebp - 0x130]
add dword [ebp - 0x120], 0x28
cmp dword [ebp - 0x130], 3
jl 0x4ffb58
jmp case.0x4fa108.0
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x128], ecx
mov eax, dword [esi + 4]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax + 4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004f2d14
pop ecx
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x12c]
push edx
call fcn.004e94f0
pop ecx
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x128], 0xffffffff
jne 0x4ffbe9
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004e94fc
pop ecx
test eax, eax
jne 0x4ffc06
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x128], edx
push 1
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004e91b4
add esp, 8
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x128], 5
jne 0x4ffc54
mov eax, dword [ebp - 0x120]
push eax
call fcn.004df8d0
pop ecx
test eax, eax
je 0x4ffc48
mov edx, dword [ebp - 0x12c]
push edx
call fcn.004e9614
pop ecx
test eax, eax
jne 0x4ffc54
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x124]
je 0x4ffd43
cmp dword [ebp - 0x124], 5
je 0x4ffc7c
cmp dword [ebp - 0x128], 5
jne 0x4ffd43
cmp byte [ebx + 0x3e], 0
je 0x4ffc8b
cmp dword [ebx + 0x8c], 1
jle 0x4ffcc4
mov dword [ebp - 0xc], 1
cmp dword [ebp - 0x128], 5
jne 0x4ffca2
mov edx, str.into
jmp 0x4ffca7
mov edx, str.out_of
push edx
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
call fcn.004ddcb4
add esp, 0x10
jmp case.0x4fa108.0
cmp dword [ebp - 0x124], 5
jne 0x4ffcfb
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004e9720
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4ffd15
mov ecx, dword [ebp - 0x128]
push ecx
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004e9404
add esp, 8
jmp 0x4ffd15
cmp dword [ebp - 0x124], 4
jne 0x4ffd15
push 2
mov edx, dword [ebp - 0x12c]
push edx
call fcn.004e9404
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x4ffd43
cmp dword [ebp - 0x128], 5
jne 0x4ffd2b
mov ecx, 2
jmp 0x4ffd30
mov ecx, 1
push ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004f3c10
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4ffd55
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x128], edx
mov ecx, dword [ebp - 0x128]
push ecx
mov eax, dword [ebp - 0x12c]
push eax
call fcn.004e9404
add esp, 8
mov dword [ebp - 0x128], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], 0xa02
mov eax, dword [ebp - 0x128]
push eax
call fcn.00515ce4
pop ecx
mov edx, dword [ebp - 0x28]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 4]
push eax
call fcn.004df8d0
mov edx, dword [ebp - 0x28]
pop ecx
mov dword [edx + 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x28]
mov byte [ecx + 0x1f], 1
mov al, byte [ebp - 0xe]
push eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.004f4840
add esp, 8
jmp case.0x4fa108.0
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.00521914
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov eax, dword [esi + 4]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax + 4]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
push eax
call fcn.004ee600
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x65
jne case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
xor ecx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], ecx
jmp case.0x4fa108.0
cmp dword [esi + 4], 0
jne 0x4ffe35
push ebx
call fcn.004f8638
pop ecx
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
or byte [eax + 0x62], 0x20
jmp case.0x4fa108.0
mov dl, byte [esi + 0xc]
mov byte [ebp - 0x4d], dl
cmp byte [ebp - 0x4d], 0
jne 0x4ffe57
test byte [ebx + 0x19], 8
jne case.0x4fa108.0
mov ecx, dword [esi + 4]
mov dword [ebp - 0x54], ecx
mov al, byte [ebp - 0x4d]
push eax
mov edx, dword [esi + 8]
push edx
mov ecx, dword [ebp - 0x54]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004f3b3c
add esp, 0xc
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
cmp ecx, 6
jne case.0x4fa108.0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x58]
push edx
push str.database_table_is_locked:__s
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
add esp, 0x10
jmp case.0x4fa108.0
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x130]
push edx
push ebx
call fcn.00522b10
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x130], 0
je case.0x4fa108.0
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx + 8]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9f7c
add esp, 8
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
mov eax, dword [esi + 0x10]
push eax
mov edx, dword [esi + 4]
push edx
push ebx
call fcn.00522724
add esp, 0x10
mov dword [ebp - 0xc], eax
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x62]
and al, 0xf3
or al, 8
mov byte [edx + 0x62], al
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.0052296c
add esp, 0xc
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
and byte [edx + 0x62], 0xf3
jmp case.0x4fa108.0
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], eax
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x128], ecx
lea ecx, [ebp - 0x12c]
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
mov dword [ebp - 0x124], edx
push ecx
mov eax, dword [ebp - 0x128]
push eax
mov edx, dword [ebp - 0x124]
call dword [edx + 0x18]
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x128]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004f9f7c
add esp, 8
cmp dword [ebp - 0xc], 0
jne case.0x4fa108.0
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x128]
mov dword [edx], eax
push 0
push 0xffffffffffffffff
push 0
mov edx, dword [esi + 4]
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f9d94
add esp, 0x14
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
je 0x500006
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x12c]
mov dword [ecx + 0x24], eax
mov edx, dword [ebp - 0x12c]
mov ecx, dword [edx]
mov edx, dword [ebp - 0x130]
mov eax, dword [ecx]
mov dword [edx + 0x28], eax
jmp case.0x4fa108.0
mov byte [ebx + 0x40], 1
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x124]
call dword [eax + 0x1c]
pop ecx
jmp case.0x4fa108.0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x124]
add ecx, 0x28
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x114], edx
mov ecx, dword [ebp - 0x114]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x11c], ecx
mov eax, dword [ebp - 0x11c]
mov edx, dword [eax]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx]
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x120]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x124]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x12c], eax
xor edx, edx
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x108], ecx
xor eax, eax
mov dword [ebp - 0x10c], eax
jmp 0x5000fa
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x108]
shl ecx, 3
mov eax, dword [ebp - 0x10c]
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x120]
add ecx, 0x28
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x108]
mov edx, dword [edx + eax*4]
push edx
call fcn.004f9d5c
pop ecx
inc dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [ebp - 0x130]
jl 0x5000ba
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov al, byte [ecx + 0x62]
and al, 0xf3
or al, 4
mov byte [edx + 0x62], al
mov ecx, dword [ebp - 0x108]
push ecx
mov eax, dword [ebp - 0x130]
push eax
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebp - 0x11c]
push eax
mov edx, dword [ebp - 0x128]
call dword [edx + 0x20]
add esp, 0x14
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
and byte [ecx + 0x62], 0xf3
mov eax, dword [ebp - 0x118]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9f7c
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x50017e
mov ecx, dword [ebp - 0x11c]
push ecx
mov eax, dword [ebp - 0x128]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0
je 0x50018e
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0x114]
mov byte [ecx + 0x1c], 0
jmp case.0x4fa108.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x5c], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x128], ecx
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 0x1c], 0
je 0x5001d9
mov eax, dword [ebp - 0x128]
push eax
call fcn.004f4e7c
pop ecx
jmp case.0x4fa108.0
mov edx, dword [ebp - 0x5c]
mov ecx, dword [edx + 0x24]
mov eax, dword [ecx]
mov dword [ebp - 0x130], eax
mov edx, dword [ebp - 0x130]
mov ecx, dword [edx]
mov dword [ebp - 0x12c], ecx
push 0x40
push 0
lea eax, [ebp - 0x120]
push eax
call fcn.005444d8
add esp, 0xc
mov edx, dword [ebp - 0x128]
push edx
lea ecx, [ebp - 0x118]
push ecx
call fcn.004f5080
mov ax, word [ebp - 0xfc]
add esp, 8
and ax, 0xbe00
lea ecx, [ebp - 0x120]
or ax, 1
mov word [ebp - 0xfc], ax
mov edx, dword [esi + 8]
push edx
push ecx
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x24]
push edx
mov ecx, dword [ebp - 0x12c]
call dword [ecx + 0x2c]
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x130]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9f7c
add esp, 8
cmp dword [ebp - 0xe8], 0
je 0x50027a
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xc], ecx
xor eax, eax
mov al, byte [ebp - 0xe]
push eax
lea edx, [ebp - 0x118]
push edx
call fcn.004f4840
add esp, 8
lea ecx, [ebp - 0x118]
push ecx
mov eax, dword [ebp - 0x128]
push eax
call fcn.004f5080
add esp, 8
mov edx, dword [ebp - 0x128]
push edx
call fcn.004f4fbc
pop ecx
test eax, eax
je case.0x4fa108.0
jmp 0x5006d8
xor ecx, ecx
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x44]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x124], edx
mov ecx, dword [ebp - 0x124]
cmp byte [ecx + 0x1c], 0
je 0x5002ef
jmp case.0x4fa108.0
mov ecx, dword [ebp - 0x124]
mov eax, dword [ecx + 0x24]
mov edx, dword [eax]
mov dword [ebp - 0x130], edx
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx]
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov cl, byte [edx + 0x62]
and cl, 0xf3
or cl, 4
mov byte [eax + 0x62], cl
mov edx, dword [ebp - 0x124]
mov ecx, dword [edx + 0x24]
push ecx
mov eax, dword [ebp - 0x12c]
call dword [eax + 0x24]
pop ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
and byte [edx + 0x62], 0xf3
mov ecx, dword [ebp - 0x130]
push ecx
mov eax, dword [ebp + 8]
push eax
call fcn.004f9f7c
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x500371
mov edx, dword [ebp - 0x124]
mov ecx, dword [edx + 0x24]
push ecx
mov eax, dword [ebp - 0x12c]
call dword [eax + 0x28]
pop ecx
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne case.0x4fa108.0
mov edx, dword [esi + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x4fa108.0
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x130], eax
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x12c], edx
push 1
mov ecx, dword [ebp - 0x12c]
push ecx
call fcn.004f4840
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne case.0x4fa108.0
mov eax, dword [ebp - 0x12c]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [ebp - 0x130]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x4c]
add esp, 8
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x130]
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f9f7c
add esp, 8
mov eax, dword [ebp + 8]
and byte [eax + 0x62], 0xdf
jmp case.0x4fa108.0
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x130], ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [eax]
mov dword [ebp - 0x12c], edx
mov ecx, dword [esi + 8]
mov dword [ebp - 0x128], ecx
mov eax, dword [ebp - 0x12c]
cmp dword [eax + 0x34], 0
je case.0x4fa108.0
mov dl, byte [ebx + 0x44]
mov byte [ebp - 0x5d], dl
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x118], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x1c]
mov dword [ebp - 0x114], edx
xor ecx, ecx
mov dword [ebp - 0x124], ecx
jmp 0x500491
mov eax, dword [ebp - 0x114]
push eax
call fcn.004f9d5c
pop ecx
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x114]
mov dword [edx + eax*4], ecx
add dword [ebp - 0x114], 0x28
inc dword [ebp - 0x124]
mov edx, dword [ebp - 0x124]
cmp edx, dword [ebp - 0x128]
jl 0x500462
mov cl, byte [esi + 3]
lea eax, [ebp - 0x120]
mov byte [ebx + 0x44], cl
push eax
mov edx, dword [ebp - 0x118]
push edx
mov ecx, dword [ebp - 0x128]
push ecx
mov eax, dword [ebp - 0x130]
push eax
mov edx, dword [ebp - 0x12c]
call dword [edx + 0x34]
add esp, 0x10
mov dword [ebp - 0xc], eax
mov cl, byte [ebp - 0x5d]
mov byte [ebx + 0x44], cl
mov eax, dword [ebp - 0x130]
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.004f9f7c
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x50050d
cmp dword [esi + 4], 0
je 0x50050d
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov ecx, dword [ebp - 0xc]
and ecx, 0xff
cmp ecx, 0x13
jne 0x500554
mov eax, dword [esi + 0x10]
cmp byte [eax + 0x10], 0
je 0x500554
xor edx, edx
mov dl, byte [esi + 3]
cmp edx, 4
jne 0x500538
xor ecx, ecx
mov dword [ebp - 0xc], ecx
jmp case.0x4fa108.0
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 5
jne 0x500546
mov dl, 2
jmp 0x500549
mov dl, byte [esi + 3]
mov eax, dword [ebp + 8]
mov byte [eax + 0x60], dl
jmp case.0x4fa108.0
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x64]
jmp case.0x4fa108.0
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
push edx
call fcn.004ecffc
pop ecx
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4fa108.0
mov eax, dword [esi + 4]
mov edx, dword [ebx + 0x10]
shl eax, 4
mov ecx, dword [edx + eax + 4]
xor eax, eax
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], eax
cmp dword [esi + 0xc], 0
je 0x5005b9
mov edx, dword [ebp - 0x68]
push edx
call fcn.004ecffc
pop ecx
mov dword [ebp - 0x64], eax
mov ecx, dword [esi + 0xc]
cmp ecx, dword [ebp - 0x64]
jbe 0x5005b9
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x64]
push edx
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.004ed908
mov ecx, dword [ebp - 0x28]
add esp, 8
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x4fa108.0
cmp dword [ebx + 0xa0], 0
je case.0x4fa108.0
mov eax, dword [ebp + 8]
test byte [eax + 0x63], 4
jne case.0x4fa108.0
cmp dword [esi + 0x10], 0
je 0x5005f2
mov edx, dword [esi + 0x10]
jmp 0x5005fb
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x98]
mov dword [ebp - 0x130], edx
test edx, edx
je case.0x4fa108.0
mov eax, dword [ebp - 0x130]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f9ab0
add esp, 8
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
push ecx
mov eax, dword [ebx + 0xa4]
push eax
call dword [ebx + 0xa0]
add esp, 8
mov edx, dword [ebp - 0x12c]
push edx
push ebx
call fcn.004dd8c8
add esp, 8
jmp case.0x4fa108.0
inc dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x4fa079
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x38]
push ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x98]
push edx
mov ecx, dword [ebp - 4]
push ecx
push str.statement_aborts_at__d:___s___s
mov eax, dword [ebp - 0xc]
push eax
call fcn.004df038
add esp, 0x14
mov edx, dword [ebp + 8]
push edx
call fcn.004f76ac
cmp dword [ebp - 0xc], 0xc0a
pop ecx
jne 0x50069a
mov byte [ebx + 0x40], 1
mov dword [ebp - 0xc], 1
xor ecx, ecx
mov cl, byte [ebp - 0xd]
test ecx, ecx
jle 0x5006ba
xor eax, eax
mov al, byte [ebp - 0xd]
dec eax
push eax
push ebx
call fcn.0050abfc
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [ebx + 0x20], edx
mov edx, dword [ebp - 0x34]
mov dword [ebx + 0x24], edx
mov eax, dword [ebp + 8]
push eax
call fcn.004f66b8
pop ecx
mov eax, dword [ebp - 0xc]
jmp 0x500792
push 0x5719f7
push ebx
mov edx, dword [ebp + 8]
add edx, 0x38
push edx
call fcn.004ddcb4
mov dword [ebp - 0xc], 0x12
add esp, 0xc
jmp 0x500654
mov byte [ebx + 0x40], 1
push 0x571a0e
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
mov dword [ebp - 0xc], 7
add esp, 0xc
jmp 0x500654
cmp byte [ebx + 0x40], 0
je 0x50072b
mov dword [ebp - 0xc], 7
cmp dword [ebp - 0xc], 0xc0a
je 0x500654
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0052d230
pop ecx
push eax
push 0x571a1c
push ebx
mov eax, dword [ebp + 8]
add eax, 0x38
push eax
call fcn.004ddcb4
add esp, 0x10
jmp 0x500654
mov dword [ebp - 0xc], 9
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [edx + 0x5c], eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.0052d230
pop ecx
push eax
push 0x571a1f
push ebx
mov ecx, dword [ebp + 8]
add ecx, 0x38
push ecx
call fcn.004ddcb4
add esp, 0x10
jmp 0x500654
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret