Function at 0x5033a0
Capabilities:
Enumerate pe sections
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x819540]
xor eax, ebp
mov dword [ebp - 0xc], eax
push esi
mov dword [ebp - 0xd8], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 8], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [ebp - 4], eax
mov byte [ebp - 0xee], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov cl, byte [eax + 0x49]
mov byte [ebp - 0xed], cl
mov dword [ebp - 0xdc], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0x104], 0
mov dword [ebp - 0xe8], 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ff6c0
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x58], 7
jne 0x50345e
jmp 0x50ab95
mov eax, dword [ebp + 8]
mov dword [eax + 0x58], 0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2c], 0
mov edx, dword [ebp - 4]
mov dword [edx + 0x1a8], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0xe0], 0
je 0x503490
jmp 0x50ac05
mov ecx, dword [ebp - 4]
xor edx, edx
cmp dword [ecx + 0x108], 0
setne dl
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0xd8], ecx
jmp 0x5034c2
mov edx, dword [ebp - 0xd8]
add edx, 1
mov dword [ebp - 0xd8], edx
cmp dword [ebp - 8], 0
jne 0x50aae9
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x5034dc
jmp 0x50ab95
mov edx, dword [ebp - 0xd8]
imul edx, edx, 0x14
add edx, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0xe0], 0
je 0x503557
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x110]
cmp ecx, dword [ebp - 0xdc]
jne 0x503548
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x10c]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x108]
call edx
add esp, 4
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x50353e
mov dword [ebp - 8], 9
jmp 0x50aae9
mov dword [ebp - 0xdc], 0
mov eax, dword [ebp - 0xdc]
add eax, 1
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 2]
and edx, 2
je 0x50359c
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fcc40
add esp, 4
mov eax, 4
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx]
mov dword [ebp - 0x134], eax
mov ecx, dword [ebp - 0x134]
sub ecx, 1
mov dword [ebp - 0x134], ecx
cmp dword [ebp - 0x134], 0x90
ja case.0x5035d0.16
mov edx, dword [ebp - 0x134]
jmp dword [edx*4 + 0x50ac50]
mov eax, dword [ebp - 4]
cmp dword [eax + 0xe0], 0
je 0x5035e8
jmp 0x50ac05
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, 4
mov eax, dword [ebp - 0x100]
mov word [eax + 0x1c], dx
mov eax, dword [ebp - 0xd8]
cdq
mov ecx, dword [ebp - 0x100]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
mov dword [ebp - 0xd8], ecx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, 4
mov edx, dword [ebp - 0x100]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 0xd8]
cdq
mov ecx, dword [ebp - 0x100]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xd0]
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xd4]
movzx eax, word [edx + 0x1c]
and eax, 1
jne case.0x5035d0.5
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx + 4], 0
jne 0x5037c1
mov edx, dword [ebp + 8]
cmp dword [edx + 0xdc], 0
je 0x5037c1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xdc]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0xdc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xe0]
sub eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xe0], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x6c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004ff8a0
add esp, 8
mov edx, dword [ebp - 0x10c]
push edx
call fcn.004fecf0
add esp, 4
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 8], 4
jne 0x5037a4
mov ecx, dword [ebp - 0xd8]
imul ecx, ecx, 0x14
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + ecx + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0xfc], edx
jmp case.0x5035d0.16
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov dword [eax + 0x58], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xf8]
mov dl, byte [ecx + 8]
mov byte [eax + 0x38], dl
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xd8]
mov dword [eax + 0x54], ecx
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 0x10], 0
je 0x50384d
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
push ecx
push 0x7584c4
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.004ff7d0
add esp, 0x10
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xbc]
push ecx
mov edx, dword [ebp - 0xd8]
push edx
push str.abort_at__d_in___s_:__s
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
call fcn.004ec8e0
add esp, 0x14
jmp 0x50387e
mov edx, dword [ebp + 8]
cmp dword [edx + 0x58], 0
je 0x50387e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xbc]
push ecx
mov edx, dword [ebp - 0xd8]
push edx
push str.constraint_failed_at__d_in___s_
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
call fcn.004ec8e0
add esp, 0x10
mov edx, dword [ebp + 8]
push edx
call fcn.004fe780
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x5038a5
mov dword [ebp - 8], 5
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x58], ecx
jmp 0x5038b8
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x58]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [ebp - 8], eax
jmp 0x50ab57
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ecx + 4]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [eax]
mov dword [ecx], edx
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
jmp case.0x5035d0.16
mov ecx, 8
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0xe4]
fld qword [ecx]
fstp qword [edx + 8]
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov byte [eax], 9
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
call fcn.004ecbe0
add esp, 4
mov ecx, dword [ebp - 0xf8]
mov dword [ecx + 4], eax
movzx edx, byte [ebp - 0xed]
cmp edx, 1
je 0x503a32
push 0
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fc4e0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x12
jne 0x50397e
jmp 0x50ab71
movzx eax, byte [ebp - 0xed]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.005000d0
add esp, 8
test eax, eax
je 0x50399e
jmp 0x50ab95
mov edx, dword [ebp - 0xe4]
mov dword [edx + 0x24], 0
mov eax, dword [ebp - 0xe4]
movzx ecx, word [eax + 0x1c]
or ecx, 0x800
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xe4]
movzx ecx, word [eax + 0x1c]
and ecx, 0xfffffbff
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xf8]
movsx ecx, byte [eax + 1]
cmp ecx, 0xffffffff
jne 0x503a04
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004eaba0
add esp, 8
mov edx, dword [ebp - 0xf8]
mov byte [edx + 1], 0xff
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x18]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 0x48]
jle case.0x5035d0.8
jmp 0x50ab71
mov eax, 0xa02
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x14], ecx
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [edx + 0x18], ecx
mov edx, dword [ebp - 0xe4]
mov al, byte [ebp - 0xed]
mov byte [edx + 0x1f], al
jmp case.0x5035d0.16
mov ecx, 1
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
jmp case.0x5035d0.16
push 0
push 0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004fc4e0
add esp, 0x14
mov edx, dword [ebp - 0xe4]
mov al, byte [ebp - 0xed]
mov byte [edx + 0x1f], al
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
sub edx, 1
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x3c]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.00513470
add esp, 4
test eax, eax
je 0x503b11
jmp 0x50ab71
push 0x800
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.005134c0
add esp, 0xc
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0xc4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xcc]
sub ecx, 1
mov dword [ebp - 0xcc], ecx
test eax, eax
je 0x503c02
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x100]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.00503140
add esp, 8
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0xd0]
mov dword [ecx + 0x24], edx
mov eax, dword [ebp - 0x100]
add eax, 0x28
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xe4]
add ecx, 0x28
mov dword [ebp - 0xe4], ecx
jmp 0x503b88
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
push 0x1000
mov eax, dword [ebp - 0x100]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.005134c0
add esp, 0xc
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx + 0x1c]
and eax, 0x1000
je 0x503c7b
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004fcaa0
add esp, 4
test eax, eax
je 0x503c7b
jmp 0x50ab95
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
push 0x1000
mov eax, dword [ebp - 0x100]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.005134c0
add esp, 0xc
jmp case.0x5035d0.16
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.004ff740
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x503cec
jmp case.0x5035d0.16
push 1
mov eax, dword [ebp + 8]
push eax
call fcn.004ff4e0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x503d08
jmp case.0x5035d0.16
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x50]
add edx, 2
or edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x50], edx
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov eax, dword [ebp + 8]
mov dword [eax + 0x2c], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2c]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], 0
jmp 0x503d59
mov eax, dword [ebp - 0xcc]
add eax, 1
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xcc]
cmp edx, dword [ecx + 8]
jge 0x503ddc
mov eax, dword [ebp - 0xcc]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0xd0]
movzx edx, word [ecx + eax + 0x1c]
and edx, 0x1000
je 0x503da7
mov eax, dword [ebp - 0xcc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xd0]
push eax
call fcn.004fcaa0
add esp, 4
test eax, eax
je 0x503da7
jmp 0x50ab95
mov ecx, dword [ebp - 0xcc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xd0]
push ecx
call fcn.00500990
add esp, 4
mov edx, dword [ebp - 0xcc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xd0]
push edx
call fcn.00503280
add esp, 4
jmp 0x503d4a
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x503dec
jmp 0x50ab95
mov edx, dword [ebp - 0xd8]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x54], edx
mov dword [ebp - 8], 0x64
jmp 0x50ab57
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax + 0x1c]
or edx, ecx
and edx, 1
je 0x503e7e
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fce00
add esp, 4
jmp case.0x5035d0.16
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x4000
je 0x503ea7
mov edx, dword [ebp - 0x100]
push edx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x138], eax
jmp 0x503eb1
mov dword [ebp - 0x138], 0
cmp dword [ebp - 0x138], 0
jne 0x503ef6
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax + 0x1c]
and ecx, 0x4000
je 0x503ee3
mov edx, dword [ebp - 0xec]
push edx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x13c], eax
jmp 0x503eed
mov dword [ebp - 0x13c], 0
cmp dword [ebp - 0x13c], 0
je 0x503efb
jmp 0x50ab95
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x12
jne 0x503f2a
movzx edx, byte [ebp - 0xed]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00500a10
add esp, 8
test eax, eax
je 0x503f2a
jmp 0x50ab95
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx + 0x1c]
and edx, 0x12
jne 0x503f59
movzx eax, byte [ebp - 0xed]
push eax
mov ecx, dword [ebp - 0xec]
push ecx
call fcn.00500a10
add esp, 8
test eax, eax
je 0x503f59
jmp 0x50ab95
mov edx, dword [ebp - 0x100]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0xec]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x48]
cdq
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0xcc]
cmp eax, dword [ebp - 0x140]
jl 0x503fae
jg 0x503fa9
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [ebp - 0x144]
jbe 0x503fae
jmp 0x50ab71
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbf00
or eax, 2
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xe4]
xor eax, eax
cmp edx, dword [ebp - 0xec]
sete al
push eax
mov ecx, dword [ebp - 0xd0]
add ecx, 2
push ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fc820
add esp, 0xc
test eax, eax
je 0x503ffe
jmp 0x50ab95
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ebp - 0xec]
je 0x504032
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x14]
push eax
call fcn.005b2260
add esp, 0xc
mov ecx, dword [ebp - 0x100]
mov edx, dword [ecx + 0x18]
push edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0xec]
add eax, dword [ecx + 0x18]
push eax
call fcn.005b2260
add esp, 0xc
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x14]
mov byte [edx + ecx], 0
mov edx, dword [ebp - 0xd0]
add edx, 1
mov eax, dword [ebp - 0xcc]
adc eax, 0
mov ecx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0x14]
mov byte [edx + eax], 0
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx + 0x1c]
or edx, 0x200
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xe4]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0xe4]
mov cl, byte [ebp - 0xed]
mov byte [eax + 0x1f], cl
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005032e0
add esp, 4
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xec]
push ecx
call fcn.005032e0
add esp, 4
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax + 0x1c]
or edx, ecx
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xd0]
and edx, 1
je 0x504162
jmp 0x504556
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx + 0x1c]
and ecx, eax
and ecx, 4
je 0x504385
mov ecx, dword [ebp - 0x100]
mov edx, dword [ecx]
mov dword [ebp - 0xc8], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
mov dword [ebp - 0xc0], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x148]
sub eax, 0x56
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 3
ja case.default.0x5041e0
mov ecx, dword [ebp - 0x148]
jmp dword [ecx*4 + 0x50ae94]
mov edx, dword [ebp - 0xc0]
add edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xbc]
adc eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], eax
jmp 0x50434c
mov ecx, dword [ebp - 0xc0]
sub ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xbc]
sbb edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], edx
jmp 0x50434c
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.005bca70
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x50434c
mov ecx, dword [ebp - 0xc8]
or ecx, dword [ebp - 0xc4]
jne 0x50427e
jmp 0x504556
mov edx, dword [ebp - 0xc8]
and edx, dword [ebp - 0xc4]
cmp edx, 0xffffffff
jne 0x5042b8
cmp dword [ebp - 0xc0], 0
jne 0x5042b8
cmp dword [ebp - 0xbc], 0x80000000
jne 0x5042b8
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.005bc9c0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x50434c
mov ecx, dword [ebp - 0xc8]
or ecx, dword [ebp - 0xc4]
jne 0x5042fa
jmp 0x504556
mov edx, dword [ebp - 0xc8]
and edx, dword [ebp - 0xc4]
cmp edx, 0xffffffff
jne 0x50431f
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.005bd3f0
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xc0]
mov dword [ecx], edx
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffbf00
or edx, 4
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
jmp 0x504551
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.00500b30
add esp, 4
fstp qword [ebp - 0xb8]
mov edx, dword [ebp - 0xec]
push edx
call fcn.00500b30
add esp, 4
fstp qword [ebp - 0xb0]
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14c]
sub edx, 0x56
mov dword [ebp - 0x14c], edx
cmp dword [ebp - 0x14c], 3
ja case.default.0x5043dc
mov eax, dword [ebp - 0x14c]
jmp dword [eax*4 + 0x50aea4]
fld qword [ebp - 0xb0]
fadd qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
jmp 0x5044f2
fld qword [ebp - 0xb0]
fsub qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
jmp 0x5044f2
fld qword [ebp - 0xb0]
fmul qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
jmp 0x5044f2
fldz
fcomp qword [ebp - 0xb8]
fnstsw ax
test ah, 0x44
jp 0x50443c
jmp 0x504556
fld qword [ebp - 0xb0]
fdiv qword [ebp - 0xb8]
fstp qword [ebp - 0xb0]
jmp 0x5044f2
fld qword [ebp - 0xb8]
call fcn.005b37e6
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
fld qword [ebp - 0xb0]
call fcn.005b37e6
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0xc8]
or ecx, dword [ebp - 0xc4]
jne 0x504494
jmp 0x504556
mov edx, dword [ebp - 0xc8]
and edx, dword [ebp - 0xc4]
cmp edx, 0xffffffff
jne 0x5044b9
mov dword [ebp - 0xc8], 1
mov dword [ebp - 0xc4], 0
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.005bd3f0
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
fild qword [ebp - 0x154]
fstp qword [ebp - 0xb0]
sub esp, 8
fld qword [ebp - 0xb0]
fstp qword [esp]
call fcn.004ecba0
add esp, 8
test eax, eax
je 0x50450c
jmp 0x504556
mov ecx, dword [ebp - 0xe4]
fld qword [ebp - 0xb0]
fstp qword [ecx + 8]
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbf00
or eax, 8
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xd0]
and edx, 8
jne 0x504551
mov eax, dword [ebp - 0xe4]
push eax
call fcn.005131d0
add esp, 4
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004fce00
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x88], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xd0], 0
jmp 0x5045e5
mov ecx, dword [ebp - 0xd0]
add ecx, 1
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xcc]
add edx, 0x28
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0x84]
jge 0x504643
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0xcc]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xcc]
movzx edx, word [ecx + 0x1c]
and edx, 0x1000
je 0x504632
mov eax, dword [ebp - 0xcc]
push eax
call fcn.004fcaa0
add esp, 4
test eax, eax
je 0x504632
jmp 0x50ab95
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.00503280
add esp, 4
jmp 0x5045c7
mov edx, dword [ebp - 0xf8]
movsx eax, byte [edx + 1]
cmp eax, 0xfffffffb
jne 0x50466d
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xc4], 0
jmp 0x50468a
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
mov ecx, 1
mov word [ebp - 0xa4], cx
mov edx, dword [ebp - 4]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov eax, dword [ebp - 0xe4]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.00503140
add esp, 8
movzx edx, word [ebp - 0xa4]
and edx, 0xffffbf00
or edx, 1
mov word [ebp - 0xa4], dx
mov dword [ebp - 0x94], 0
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax + 3]
and ecx, 8
je 0x504708
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx - 4]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x88]
push ecx
mov edx, dword [ebp - 0x84]
push edx
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0xc]
call edx
add esp, 0xc
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x50474a
lea edx, [ebp - 0xc0]
push edx
call fcn.004fcbf0
add esp, 4
jmp 0x50ab95
cmp dword [ebp - 0xc4], 0
je 0x504785
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0xc4]
push edx
call fcn.004fe3e0
add esp, 8
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xc4]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 0xf8]
mov byte [edx + 1], 0xf9
cmp dword [ebp - 0x94], 0
je 0x5047bf
lea eax, [ebp - 0xc0]
push eax
call fcn.00500f30
add esp, 4
push eax
push 0x7584c4
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x5c
push edx
call fcn.004ff7d0
add esp, 0x10
mov eax, dword [ebp - 0x94]
mov dword [ebp - 8], eax
movzx ecx, byte [ebp - 0xed]
push ecx
lea edx, [ebp - 0xc0]
push edx
call fcn.005000d0
add esp, 8
lea eax, [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.00503140
add esp, 8
mov edx, dword [ebp - 0xe4]
push edx
call fcn.00513470
add esp, 4
test eax, eax
je 0x504804
jmp 0x50ab71
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
mov edx, dword [ebp - 0xec]
movzx eax, word [edx + 0x1c]
or ecx, eax
and ecx, 1
je 0x504880
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.004fce00
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xec]
push edx
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
mov ecx, dword [ebp - 0xf8]
mov dl, byte [ecx]
mov byte [ebp - 0x158], dl
cmp byte [ebp - 0x158], 0x52
je 0x5048e1
cmp byte [ebp - 0x158], 0x53
je 0x504907
cmp byte [ebp - 0x158], 0x54
je 0x50492d
jmp 0x504952
mov eax, dword [ebp - 0xd0]
and eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
and ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x504975
mov edx, dword [ebp - 0xd0]
or edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xcc]
or eax, dword [ebp - 0xc4]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], eax
jmp 0x504975
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
call fcn.005bdea0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
jmp 0x504975
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
call fcn.005bd4b0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xd0]
mov dword [ecx], edx
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffbf00
or edx, 4
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ecx + 8]
cdq
mov ecx, dword [ebp - 0x100]
add eax, dword [ecx]
mov ecx, dword [ecx + 4]
adc ecx, edx
mov edx, dword [ebp - 0x100]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
movzx edx, byte [ebp - 0xed]
push edx
push 0x63
mov eax, dword [ebp - 0x100]
push eax
call fcn.00514f90
add esp, 0xc
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 4
jne 0x504a6a
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 8], 0
jne 0x504a56
mov dword [ebp - 8], 0x14
jmp 0x50abc0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp 0x504a87
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffbf00
or ecx, 4
mov edx, dword [ebp - 0x100]
mov word [edx + 0x1c], cx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 4
je 0x504ac2
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005132a0
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x504af3
jmp case.0x5035d0.16
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x10
sar ecx, 3
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
or eax, ecx
mov ecx, dword [ebp - 0x100]
mov word [ecx + 0x1c], ax
movzx edx, byte [ebp - 0xed]
push edx
push 0x61
mov eax, dword [ebp - 0x100]
push eax
call fcn.00514f90
add esp, 0xc
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 0x4000
je 0x504b5b
mov eax, dword [ebp - 0x100]
push eax
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x15c], eax
jmp 0x504b65
mov dword [ebp - 0x15c], 0
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbfe3
mov ecx, dword [ebp - 0x100]
mov word [ecx + 0x1c], ax
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x504bb8
jmp case.0x5035d0.16
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x10
jne 0x504bff
movzx edx, byte [ebp - 0xed]
push edx
push 0x61
mov eax, dword [ebp - 0x100]
push eax
call fcn.00514f90
add esp, 0xc
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffbf00
or edx, 0x10
mov eax, dword [ebp - 0x100]
mov word [eax + 0x1c], dx
jmp 0x504c19
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffff10
mov eax, dword [ebp - 0x100]
mov word [eax + 0x1c], dx
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.005132d0
add esp, 4
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 1
jne 0x504c80
mov edx, dword [ebp - 0x100]
push edx
call fcn.00513260
add esp, 4
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 1
jne 0x504cbb
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.005132a0
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x100]
mov cx, word [eax + 0x1c]
mov word [ebp - 0xca], cx
mov edx, dword [ebp - 0xd4]
mov ax, word [edx + 0x1c]
mov word [ebp - 0xc8], ax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0xd4]
movzx ecx, word [eax + 0x1c]
or edx, ecx
and edx, 1
je 0x504ddb
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x80
je 0x504d6a
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0xd4]
movzx ecx, word [eax + 0x1c]
and edx, ecx
and edx, 1
neg edx
sbb edx, edx
add edx, 1
mov dword [ebp - 0xd0], edx
jmp 0x504dd6
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x10
je 0x504db0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xe4]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffbf00
or ecx, 1
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
jmp 0x504dd1
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 3]
and ecx, 8
je 0x504dd1
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
jmp 0x504ed3
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
and edx, 0x67
mov byte [ebp - 0xcc], dl
movsx eax, byte [ebp - 0xcc]
test eax, eax
je 0x504e47
movzx ecx, byte [ebp - 0xed]
push ecx
movzx edx, byte [ebp - 0xcc]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.00514f90
add esp, 0xc
movzx ecx, byte [ebp - 0xed]
push ecx
movzx edx, byte [ebp - 0xcc]
push edx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.00514f90
add esp, 0xc
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x504e47
jmp 0x50ab95
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x4000
je 0x504e70
mov edx, dword [ebp - 0x100]
push edx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x160], eax
jmp 0x504e7a
mov dword [ebp - 0x160], 0
mov eax, dword [ebp - 0xd4]
movzx ecx, word [eax + 0x1c]
and ecx, 0x4000
je 0x504ea3
mov edx, dword [ebp - 0xd4]
push edx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x164], eax
jmp 0x504ead
mov dword [ebp - 0x164], 0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x100]
push edx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.00513530
add esp, 0xc
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
mov dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x168]
sub eax, 0x4b
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 4
ja case.default.0x504f00
mov ecx, dword [ebp - 0x168]
jmp dword [ecx*4 + 0x50aeb4]
xor edx, edx
cmp dword [ebp - 0xd0], 0
sete dl
mov dword [ebp - 0xd0], edx
jmp 0x504f7d
xor eax, eax
cmp dword [ebp - 0xd0], 0
setne al
mov dword [ebp - 0xd0], eax
jmp 0x504f7d
xor ecx, ecx
cmp dword [ebp - 0xd0], 0
setl cl
mov dword [ebp - 0xd0], ecx
jmp 0x504f7d
xor edx, edx
cmp dword [ebp - 0xd0], 0
setle dl
mov dword [ebp - 0xd0], edx
jmp 0x504f7d
xor eax, eax
cmp dword [ebp - 0xd0], 0
setg al
mov dword [ebp - 0xd0], eax
jmp 0x504f7d
xor ecx, ecx
cmp dword [ebp - 0xd0], 0
setge cl
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x10
je 0x504fd5
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xe4]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffbf00
or ecx, 4
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xd0]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x504ff0
cmp dword [ebp - 0xd0], 0
je 0x504ff0
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffff00
movzx eax, word [ebp - 0xca]
and eax, 0xff
or edx, eax
mov ecx, dword [ebp - 0x100]
mov word [ecx + 0x1c], dx
mov edx, dword [ebp - 0xd4]
movzx eax, word [edx + 0x1c]
and eax, 0xffffff00
movzx ecx, word [ebp - 0xc8]
and ecx, 0xff
or eax, ecx
mov edx, dword [ebp - 0xd4]
mov word [edx + 0x1c], ax
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xe8], ecx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xcc], 0
jmp 0x5050b0
mov ecx, dword [ebp - 0xcc]
add ecx, 1
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
cmp edx, dword [ebp - 0xd0]
jge 0x505191
cmp dword [ebp - 0xe8], 0
je 0x5050e2
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x16c], edx
jmp 0x5050ee
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + edx*4 + 0xc]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0xcc]
movzx edx, byte [eax + ecx]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0xc4]
add ecx, dword [ebp - 0xbc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
push ecx
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0xbc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
push edx
call fcn.00513530
add esp, 0xc
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0
je 0x50518c
cmp dword [ebp - 0xb4], 0
je 0x50518a
mov eax, dword [ebp - 0x104]
neg eax
mov dword [ebp - 0x104], eax
jmp 0x505191
jmp 0x5050a1
mov dword [ebp - 0xe8], 0
jmp case.0x5035d0.16
cmp dword [ebp - 0x104], 0
jge 0x5051bd
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp 0x5051ec
cmp dword [ebp - 0x104], 0
jne 0x5051da
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
jmp 0x5051ec
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x505224
mov dword [ebp - 0xd0], 2
jmp 0x50526f
mov edx, dword [ebp - 0x100]
push edx
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], edx
mov eax, dword [ebp - 0x174]
or eax, dword [ebp - 0x170]
je 0x505259
mov dword [ebp - 0x178], 1
jmp 0x505263
mov dword [ebp - 0x178], 0
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xec]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x5052a2
mov dword [ebp - 0xcc], 2
jmp 0x5052ed
mov eax, dword [ebp - 0xec]
push eax
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], edx
mov ecx, dword [ebp - 0x180]
or ecx, dword [ebp - 0x17c]
je 0x5052d7
mov dword [ebp - 0x184], 1
jmp 0x5052e1
mov dword [ebp - 0x184], 0
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
cmp ecx, 0x45
jne 0x50531a
mov edx, dword [ebp - 0xd0]
imul edx, edx, 3
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [edx + eax + 0x769330]
mov dword [ebp - 0xd0], ecx
jmp 0x505337
mov edx, dword [ebp - 0xd0]
imul edx, edx, 3
mov eax, dword [ebp - 0xcc]
movzx ecx, byte [edx + eax + 0x76933c]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xd0], 2
jne 0x505377
mov ecx, dword [ebp - 0xe4]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffbf00
or edx, 1
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
jmp 0x5053a5
mov eax, dword [ebp - 0xd0]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbf00
or eax, 4
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x5053fa
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fce00
add esp, 4
jmp 0x505451
mov eax, dword [ebp - 0x100]
push eax
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], edx
mov ecx, dword [ebp - 0x18c]
or ecx, dword [ebp - 0x188]
jne 0x50542f
mov dword [ebp - 0x190], 1
jmp 0x505439
mov dword [ebp - 0x190], 0
mov eax, dword [ebp - 0x190]
cdq
push edx
push eax
mov edx, dword [ebp - 0xe4]
push edx
call fcn.00501110
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x100]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x5054a6
mov eax, dword [ebp - 0xe4]
push eax
call fcn.004fce00
add esp, 4
jmp 0x5054ca
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.00500bd0
add esp, 4
not eax
not edx
push edx
push eax
mov edx, dword [ebp - 0xe4]
push edx
call fcn.00501110
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 1
je 0x505507
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xd0], edx
jmp 0x505565
mov eax, dword [ebp - 0x100]
push eax
call fcn.00500b30
add esp, 4
fcomp qword [0x7541f0]
fnstsw ax
test ah, 0x44
jnp 0x50552f
mov dword [ebp - 0x194], 1
jmp 0x505539
mov dword [ebp - 0x194], 0
mov ecx, dword [ebp - 0x194]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx]
cmp eax, 0x1b
jne 0x505565
xor ecx, ecx
cmp dword [ebp - 0xd0], 0
sete cl
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xd0], 0
je 0x505580
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x5055be
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 1
jne 0x5055fc
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], 0
push 0x28
push 0
lea edx, [ebp - 0x90]
push edx
call fcn.005b33a0
add esp, 0xc
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbf00
or eax, 1
mov ecx, dword [ebp - 0x94]
mov word [ecx + 0x1c], ax
mov dword [ebp - 0xb4], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
mov dword [ebp - 0xb0], ecx
cmp dword [ebp - 0xb0], 0
je 0x505762
mov edx, dword [ebp - 0xb8]
push edx
call fcn.00513af0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5056c7
jmp 0x50abc0
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 0x14]
test ecx, ecx
je 0x5056e1
mov dword [ebp - 0xd0], 0
jmp 0x505760
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
cmp ecx, dword [eax + 0x50]
jne 0x505712
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0x50]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x5c]
mov dword [ebp - 0xb4], edx
jmp 0x505760
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 0x17]
test ecx, ecx
je 0x505747
lea edx, [ebp - 0xc8]
push edx
mov eax, dword [ebp - 0xb0]
push eax
call fcn.004fbd90
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xd0], ecx
jmp 0x505760
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xb0]
push eax
call fcn.0050cc30
add esp, 8
mov dword [ebp - 8], eax
jmp 0x5057dd
mov ecx, dword [ebp - 0xb8]
cmp dword [ecx + 0x2c], 0
jle 0x5057d3
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0x2c]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x20
je 0x5057b6
mov dword [ebp - 0x198], 0
jmp 0x5057c2
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x198]
mov dword [eax + 0x4c], ecx
jmp 0x5057dd
mov dword [ebp - 0xd0], 0
cmp dword [ebp - 0xd0], 0
jne 0x5057eb
jmp 0x505d29
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xd0]
cmp eax, dword [edx + 0x48]
jbe 0x5057fe
jmp 0x50ab71
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x34]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax + 0x54]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
cmp ecx, dword [eax + 0x50]
jne 0x505841
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0x58]
mov dword [ebp - 0xa8], eax
jmp 0x505b76
mov dword [ebp - 0x54], 0
mov ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xac]
lea eax, [edx + ecx*4]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa8]
mov dword [ecx + 0x58], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xd0]
mov dword [eax + 0x50], ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x50]
mov dword [edx + 0x4c], ecx
cmp dword [ebp - 0xb4], 0
je 0x5058a1
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0x98], edx
jmp 0x505918
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 0x17]
test ecx, ecx
je 0x5058ca
lea edx, [ebp - 0x54]
push edx
mov eax, dword [ebp - 0xb0]
push eax
call fcn.0050cde0
add esp, 8
mov dword [ebp - 0x98], eax
jmp 0x5058e3
lea ecx, [ebp - 0x54]
push ecx
mov edx, dword [ebp - 0xb0]
push edx
call fcn.0050cee0
add esp, 8
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0xd0]
cmp eax, dword [ebp - 0x54]
ja 0x50590b
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x98]
mov dword [edx + 0x5c], eax
jmp 0x505918
mov ecx, dword [ebp - 0xb8]
mov dword [ecx + 0x5c], 0
mov edx, dword [ebp - 0x98]
movzx eax, byte [edx]
cmp eax, 0x80
jge 0x505940
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x19c], 1
jmp 0x50595c
lea eax, [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.004fa540
add esp, 8
movzx edx, al
mov dword [ebp - 0x19c], edx
movzx eax, byte [ebp - 0x19c]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x60], 0x18003
jbe 0x505984
push 0xf2fa
call fcn.0054d030
add esp, 4
mov dword [ebp - 8], eax
jmp 0x505d29
mov ecx, dword [ebp - 0xa4]
imul ecx, ecx, 5
add ecx, 3
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0xa0]
cmp edx, dword [ebp - 0x60]
jle 0x5059aa
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xb4], 0
jne 0x505a0c
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [ebp - 0xa0]
jge 0x505a0c
xor edx, edx
mov word [ebp - 0x74], dx
mov dword [ebp - 0x80], 0
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [ecx + 0x17]
push edx
mov eax, dword [ebp - 0xa0]
push eax
push 0
mov ecx, dword [ebp - 0xb0]
push ecx
call fcn.00513870
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x505a03
jmp 0x505d29
mov edx, dword [ebp - 0x7c]
mov dword [ebp - 0x98], edx
mov eax, dword [ebp - 0x98]
add eax, dword [ebp - 0xa0]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x98]
add ecx, dword [ebp - 0x58]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x9c], 0
jmp 0x505a42
mov edx, dword [ebp - 0x9c]
add edx, 1
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0xa4]
jge 0x505b23
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x64]
jae 0x505b0b
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x60]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0x68]
movzx eax, byte [edx]
cmp eax, 0x80
jge 0x505aa0
mov ecx, dword [ebp - 0x68]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xac]
mov dword [ecx + eax*4], edx
mov dword [ebp - 0x1a0], 1
jmp 0x505ac5
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xac]
lea ecx, [eax + edx*4]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004fa540
add esp, 8
movzx eax, al
mov dword [ebp - 0x1a0], eax
movzx ecx, byte [ebp - 0x1a0]
add ecx, dword [ebp - 0x68]
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00513db0
add esp, 4
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x5c]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x5c]
jae 0x505b09
mov ecx, dword [ebp - 0x64]
add ecx, 1
mov dword [ebp - 0x68], ecx
jmp 0x505b23
jmp 0x505b1e
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa8]
mov dword [eax + edx*4], 0
jmp 0x505a33
lea ecx, [ebp - 0x90]
push ecx
call fcn.004fcbf0
add esp, 4
mov edx, 1
mov word [ebp - 0x74], dx
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x64]
ja 0x505b61
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 0xd0]
ja 0x505b61
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0x64]
jne 0x505b76
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0xd0]
je 0x505b76
push 0xf344
call fcn.0054d030
add esp, 4
mov dword [ebp - 8], eax
jmp 0x505d29
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xa8]
cmp dword [edx + ecx*4], 0
je 0x505c98
cmp dword [ebp - 0xb4], 0
je 0x505bde
mov eax, dword [ebp - 0x94]
push eax
call fcn.004fcc40
add esp, 4
mov ecx, dword [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xb4]
add ecx, dword [eax + edx*4]
push ecx
call fcn.00513f10
add esp, 0xc
jmp 0x505c87
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00513db0
add esp, 4
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x94]
push edx
lea eax, [ebp - 0x90]
push eax
call fcn.00503140
add esp, 8
lea ecx, [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0xb8]
movzx eax, byte [edx + 0x17]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0xb0]
push edx
call fcn.00513870
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x505c58
jmp 0x505d29
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x94]
push ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0x98]
push edx
call fcn.00513f10
add esp, 0xc
mov eax, dword [ebp - 0x94]
mov cl, byte [ebp - 0xed]
mov byte [eax + 0x1f], cl
jmp 0x505cc5
mov edx, dword [ebp - 0xf8]
movsx eax, byte [edx + 1]
cmp eax, 0xfffffff8
jne 0x505cc5
push 0x800
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x94]
push eax
call fcn.005134c0
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x505d17
mov ecx, dword [ebp - 0x94]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffe7ff
mov eax, dword [ebp - 0x94]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x94]
movzx edx, word [ecx + 0x1c]
or edx, 0x200
mov eax, dword [ebp - 0x94]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x7c]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x6c]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x94]
push edx
call fcn.004fcaa0
add esp, 4
mov dword [ebp - 8], eax
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0xd0]
mov dl, byte [ecx]
mov byte [ebp - 0xcc], dl
movsx eax, byte [ebp - 0xcc]
mov ecx, dword [ebp - 0xd0]
add ecx, 1
mov dword [ebp - 0xd0], ecx
test eax, eax
je 0x505de2
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 0x4000
je 0x505da5
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x1a4], eax
jmp 0x505daf
mov dword [ebp - 0x1a4], 0
movzx edx, byte [ebp - 0xed]
push edx
movzx eax, byte [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.00514f90
add esp, 0xc
mov edx, dword [ebp - 0x100]
add edx, 0x28
mov dword [ebp - 0x100], edx
jmp 0x505d55
jmp case.0x5035d0.16
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x9c]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x9c]
sub ecx, 1
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0x64]
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
jmp 0x505ebf
mov ecx, dword [ebp - 0xcc]
add ecx, 0x28
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
cmp edx, dword [ebp - 0xa0]
ja 0x505fec
cmp dword [ebp - 0x98], 0
je 0x505f10
movzx eax, byte [ebp - 0xed]
push eax
mov eax, dword [ebp - 0xcc]
sub eax, dword [ebp - 0xa4]
cdq
mov ecx, 0x28
idiv ecx
mov edx, dword [ebp - 0x98]
movzx eax, byte [edx + eax]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.00514f90
add esp, 0xc
mov edx, dword [ebp - 0xcc]
movzx eax, word [edx + 0x1c]
and eax, 0x4000
je 0x505f3c
mov ecx, dword [ebp - 0xcc]
cmp dword [ecx + 0x18], 0
jle 0x505f3c
mov edx, dword [ebp - 0xcc]
push edx
call fcn.004fcb50
add esp, 4
mov eax, dword [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.00513c40
add esp, 8
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0xa8]
push edx
call fcn.00513db0
add esp, 4
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x8c]
cdq
add eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
adc ecx, edx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xa8]
xor eax, eax
push eax
push edx
call fcn.0050b060
add esp, 8
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xcc]
movzx edx, word [ecx + 0x1c]
and edx, 0x4000
je 0x505fd4
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xb0]
add ecx, dword [eax]
mov dword [ebp - 0xb0], ecx
jmp 0x505fe7
cmp dword [ebp - 0x8c], 0
je 0x505fe7
mov dword [ebp - 0xb0], 0
jmp 0x505eb0
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.0050b060
add esp, 8
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0xc0]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xc0]
cdq
push edx
push eax
call fcn.0050b060
add esp, 8
cmp dword [ebp - 0xac], eax
jge 0x50603d
mov eax, dword [ebp - 0xc0]
add eax, 1
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [ebp - 0xc8]
adc esi, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xb0]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], esi
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x48]
cdq
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0xb4]
cmp eax, dword [ebp - 0x1a8]
jl 0x5060a1
jg 0x50609c
mov ecx, dword [ebp - 0xb8]
cmp ecx, dword [ebp - 0x1ac]
jbe 0x5060a1
jmp 0x50ab71
push 0
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call fcn.004fc820
add esp, 0xc
test eax, eax
je 0x5060c2
jmp 0x50ab95
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xc0], 0x80
jae 0x5060f7
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebp - 0xc0]
mov byte [eax], cl
mov dword [ebp - 0x1b0], 1
jmp 0x506113
mov edx, dword [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0050aed0
add esp, 8
mov dword [ebp - 0x1b0], eax
movzx ecx, byte [ebp - 0x1b0]
mov dword [ebp - 0x90], ecx
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], edx
jmp 0x50613d
mov eax, dword [ebp - 0xcc]
add eax, 0x28
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xcc]
cmp ecx, dword [ebp - 0xa0]
ja 0x5061d1
mov edx, dword [ebp - 0x94]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call fcn.00513c40
add esp, 8
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 0x80
jae 0x506197
mov ecx, dword [ebp - 0xd0]
add ecx, dword [ebp - 0x90]
mov dl, byte [ebp - 0xa8]
mov byte [ecx], dl
mov dword [ebp - 0x1b4], 1
jmp 0x5061b9
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0xd0]
add ecx, dword [ebp - 0x90]
push ecx
call fcn.0050aed0
add esp, 8
mov dword [ebp - 0x1b4], eax
movzx edx, byte [ebp - 0x1b4]
add edx, dword [ebp - 0x90]
mov dword [ebp - 0x90], edx
jmp 0x50612e
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xcc], eax
jmp 0x5061ee
mov ecx, dword [ebp - 0xcc]
add ecx, 0x28
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
cmp edx, dword [ebp - 0xa0]
ja 0x506245
mov eax, dword [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov eax, dword [ebp - 0x90]
cdq
mov ecx, dword [ebp - 0xb8]
sub ecx, eax
mov eax, dword [ebp - 0xb4]
sbb eax, edx
push ecx
mov ecx, dword [ebp - 0xd0]
add ecx, dword [ebp - 0x90]
push ecx
call fcn.00513de0
add esp, 0x10
add eax, dword [ebp - 0x90]
mov dword [ebp - 0x90], eax
jmp 0x5061df
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x18], edx
mov ecx, 0x410
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xe4]
mov dword [eax + 0x20], 0
cmp dword [ebp - 0xb0], 0
je 0x5062a1
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xb0]
mov dword [ecx], edx
mov eax, dword [ebp - 0xe4]
movzx ecx, word [eax + 0x1c]
or ecx, 0x4000
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x1f], 1
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
je 0x5062ee
lea ecx, [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xc8]
push edx
call fcn.00511b60
add esp, 8
mov dword [ebp - 8], eax
jmp 0x506302
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd0]
mov dword [eax], ecx
mov edx, dword [ebp - 0xcc]
mov dword [eax + 4], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xd0], 0
jne 0x50645e
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x90], 0
jle 0x506379
push str.cannot_open_savepoint___SQL_statements_in_progress
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 5
jmp 0x506459
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.004ecbe0
add esp, 4
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc8]
add edx, 0x19
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.004eaeb0
add esp, 8
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
je 0x506459
mov ecx, dword [ebp - 0xc4]
add ecx, 0x18
mov edx, dword [ebp - 0xc4]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc8]
add eax, 1
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
push eax
call fcn.005b2260
add esp, 0xc
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x506408
mov eax, dword [ebp - 4]
mov byte [eax + 0x1c], 0
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1dc], 1
jmp 0x50641d
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1d4]
add eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x1d4], eax
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d0]
mov dword [edx + 0x10], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc4]
mov dword [edx + 0x1d0], eax
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1e0]
mov dword [ecx + 8], eax
mov edx, dword [edx + 0x1e4]
mov dword [ecx + 0xc], edx
jmp 0x5067a2
mov dword [ebp - 0xb8], 0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d0]
mov dword [ebp - 0xc0], ecx
jmp 0x506488
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
je 0x5064be
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
push eax
call fcn.004ecc20
add esp, 8
test eax, eax
je 0x5064be
mov ecx, dword [ebp - 0xb8]
add ecx, 1
mov dword [ebp - 0xb8], ecx
jmp 0x506479
cmp dword [ebp - 0xc0], 0
jne 0x5064f2
mov edx, dword [ebp - 0xcc]
push edx
push str.no_such_savepoint:__s
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0x10
mov dword [ebp - 8], 1
jmp 0x5067a2
mov edx, dword [ebp - 4]
cmp dword [edx + 0x90], 0
jg 0x506513
cmp dword [ebp - 0xd0], 2
jne 0x50655d
mov eax, dword [ebp - 4]
cmp dword [eax + 0x8c], 1
jle 0x50655d
cmp dword [ebp - 0xd0], 2
jne 0x506528
mov dword [ebp - 0x1b8], str.rollback
jmp 0x506532
mov dword [ebp - 0x1b8], str.release
mov ecx, dword [ebp - 0x1b8]
push ecx
push str.cannot__s_savepoint___SQL_statements_in_progress
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.004ff7d0
add esp, 0x10
mov dword [ebp - 8], 5
jmp 0x5067a2
mov ecx, dword [ebp - 0xc0]
cmp dword [ecx + 0x10], 0
jne 0x506583
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x1dc]
test eax, eax
je 0x506583
mov dword [ebp - 0x1bc], 1
jmp 0x50658d
mov dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x110], ecx
cmp dword [ebp - 0x110], 0
je 0x50661f
cmp dword [ebp - 0xd0], 1
jne 0x50661f
push 1
mov edx, dword [ebp + 8]
push edx
call fcn.004ff740
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5065c7
jmp 0x50ab57
mov eax, dword [ebp - 4]
mov byte [eax + 0x1c], 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.004fe780
add esp, 4
cmp eax, 5
jne 0x506607
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xd8]
mov dword [edx + 0x54], eax
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1c], 0
mov dword [ebp - 8], 5
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [edx + 0x58], eax
jmp 0x50ab57
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1dc], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x58]
mov dword [ebp - 8], eax
jmp 0x5066dd
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1d4]
sub edx, dword [ebp - 0xb8]
sub edx, 1
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], 0
jmp 0x506652
mov eax, dword [ebp - 0xb4]
add eax, 1
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xb4]
cmp edx, dword [ecx + 4]
jge 0x50669a
mov eax, dword [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xb4]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.004ff600
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x506698
jmp 0x50abc0
jmp 0x506643
cmp dword [ebp - 0xd0], 2
jne 0x5066dd
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
and ecx, 0x200
je 0x5066dd
mov edx, dword [ebp - 4]
push edx
call fcn.00514920
add esp, 4
push 0
mov eax, dword [ebp - 4]
push eax
call fcn.00517c00
add esp, 8
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
or edx, 0x200
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1d0]
cmp edx, dword [ebp - 0xc0]
je 0x506739
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d0]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x1d0], ecx
mov edx, dword [ebp - 0xbc]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.004eaba0
add esp, 8
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1d4]
sub edx, 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x1d4], edx
jmp 0x5066dd
cmp dword [ebp - 0xd0], 1
jne 0x506787
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x1d0], eax
mov ecx, dword [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.004eaba0
add esp, 8
cmp dword [ebp - 0x110], 0
jne 0x506785
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d4]
sub ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1d4], ecx
jmp 0x5067a2
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx + 8]
mov dword [eax + 0x1e0], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0x1e4], ecx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xd0], 0
je 0x5067e5
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
jne 0x5067e5
mov dword [ebp - 0x1c0], 1
jmp 0x5067ef
mov dword [ebp - 0x1c0], 0
mov edx, dword [ebp - 0x1c0]
mov dword [ebp - 0xc8], edx
cmp dword [ebp - 0xc8], 0
je 0x50683d
cmp dword [ebp - 0xcc], 0
je 0x50683d
mov eax, dword [ebp - 4]
cmp dword [eax + 0x8c], 1
jle 0x50683d
push str.cannot_rollback_transaction___SQL_statements_in_progress
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x5c
push edx
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 5
jmp 0x5069aa
cmp dword [ebp - 0xc8], 0
je 0x50687f
cmp dword [ebp - 0xcc], 0
jne 0x50687f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x90], 0
jle 0x50687f
push str.cannot_commit_transaction___SQL_statements_in_progress
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x5c
push edx
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 5
jmp 0x5069aa
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1c]
cmp dword [ebp - 0xd0], ecx
je 0x506949
cmp dword [ebp - 0xcc], 0
je 0x5068b0
mov edx, dword [ebp - 4]
push edx
call fcn.0054b570
add esp, 4
mov eax, dword [ebp - 4]
mov byte [eax + 0x1c], 1
jmp 0x50691d
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.004ff740
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5068ce
jmp 0x50ab57
mov edx, dword [ebp - 4]
mov al, byte [ebp - 0xd0]
mov byte [edx + 0x1c], al
mov ecx, dword [ebp + 8]
push ecx
call fcn.004fe780
add esp, 4
cmp eax, 5
jne 0x50691d
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xd8]
mov dword [edx + 0x54], eax
mov ecx, 1
sub ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 4]
mov byte [edx + 0x1c], cl
mov dword [ebp - 8], 5
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x58], ecx
jmp 0x50ab57
mov edx, dword [ebp - 4]
push edx
call fcn.0054b080
add esp, 4
mov eax, dword [ebp + 8]
cmp dword [eax + 0x58], 0
jne 0x50693b
mov dword [ebp - 8], 0x65
jmp 0x506942
mov dword [ebp - 8], 1
jmp 0x50ab57
cmp dword [ebp - 0xd0], 0
jne 0x50695e
mov dword [ebp - 0x1c4], str.cannot_start_a_transaction_within_a_transaction
jmp 0x506989
cmp dword [ebp - 0xcc], 0
je 0x506973
mov dword [ebp - 0x1c8], str.cannot_rollback___no_transaction_is_active
jmp 0x50697d
mov dword [ebp - 0x1c8], str.cannot_commit___no_transaction_is_active
mov ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x1c4]
push edx
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 1
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x506ad2
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.004f77a0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x506a1b
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xd8]
mov dword [ecx + 0x54], edx
mov dword [ebp - 8], 5
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x58], ecx
jmp 0x50ab57
cmp dword [ebp - 8], 0
je 0x506a26
jmp 0x50abc0
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 8], 0
je 0x506ad2
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x66]
test ecx, ecx
je 0x506ad2
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x1c]
test eax, eax
je 0x506a5c
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x8c], 1
jle 0x506ad2
mov edx, dword [ebp + 8]
cmp dword [edx + 0xd8], 0
jne 0x506a98
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d8]
add ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1d8], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1d4]
mov edx, dword [ebp - 4]
add ecx, dword [edx + 0x1d8]
mov eax, dword [ebp + 8]
mov dword [eax + 0xd8], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xd8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0050ca60
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1e0]
mov dword [ecx + 0xd0], eax
mov edx, dword [edx + 0x1e4]
mov dword [ecx + 0xd4], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0xc8], eax
lea ecx, [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xc8]
push edx
mov eax, dword [ebp - 0xcc]
shl eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 4]
push eax
call fcn.004fb570
add esp, 0xc
mov eax, dword [ebp - 0xd0]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
mov dword [ebp - 0xd0], eax
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xd4]
push ecx
call fcn.00513260
add esp, 4
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 4]
push ecx
call fcn.004fb5c0
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 8], 1
jne 0x506bd0
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0xc]
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xc]
or edx, 0x200
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], edx
jmp 0x506bf0
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx + 8], 2
jne 0x506bf0
mov edx, dword [ebp - 0xd4]
mov al, byte [edx]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0xc]
mov byte [edx + 0x48], al
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 4], 1
jne 0x506c0f
mov ecx, dword [ebp - 4]
push ecx
call fcn.00514920
add esp, 4
mov edx, dword [ebp + 8]
mov byte [edx + 0x62], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
mov dword [ebp - 0xcc], ecx
cmp dword [ebp - 0xcc], 0
je 0x506c53
lea edx, [ebp - 0xd0]
push edx
push 1
mov eax, dword [ebp - 0xcc]
push eax
call fcn.004fb570
add esp, 0xc
jmp 0x506c5d
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ecx + 8]
je 0x506ce1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5c]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.004eaba0
add esp, 8
push str.database_schema_has_changed
mov eax, dword [ebp - 4]
push eax
call fcn.00501540
add esp, 8
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 0xc]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0xd0]
je 0x506cce
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.00517c00
add esp, 8
mov edx, dword [ebp - 4]
push edx
call fcn.00514920
add esp, 4
mov dword [ebp - 8], 0x11
jmp case.0x5035d0.16
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x62]
test ecx, ecx
je 0x506cfd
mov dword [ebp - 8], 4
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
shl eax, 4
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 4]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 0x27
jne 0x506d97
mov dword [ebp - 0xc0], 1
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ecx + 0x48]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x64]
cmp edx, ecx
jge 0x506d95
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x48]
mov byte [ecx + 0x64], dl
jmp 0x506da1
mov dword [ebp - 0xc0], 0
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 3]
test ecx, ecx
je 0x506dff
mov edx, dword [ebp - 0xc8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xec]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
mov dword [ebp - 0xc8], edx
cmp dword [ebp - 0xc8], 2
jge 0x506dff
push 0xf63f
call fcn.0054d030
add esp, 4
mov dword [ebp - 8], eax
jmp 0x50abc0
mov eax, dword [ebp - 0xf8]
movsx ecx, byte [eax + 1]
cmp ecx, 0xfffffffa
jne 0x506e49
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0xcc]
mov al, byte [ecx + 0x49]
mov byte [edx + 4], al
mov ecx, dword [ebp - 0xcc]
movzx edx, word [ecx + 6]
add edx, 1
mov dword [ebp - 0xd0], edx
jmp 0x506e67
mov eax, dword [ebp - 0xf8]
movsx ecx, byte [eax + 1]
cmp ecx, 0xfffffff2
jne 0x506e67
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xd0], eax
push 1
mov ecx, dword [ebp - 0xc4]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00514e40
add esp, 0x14
mov dword [ebp - 0xb8], eax
cmp dword [ebp - 0xb8], 0
jne 0x506ea1
jmp 0x50ab95
mov eax, dword [ebp - 0xb8]
mov byte [eax + 0x14], 1
mov ecx, dword [ebp - 0xb8]
mov byte [ecx + 0x18], 1
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
call fcn.0050cab0
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0xcc]
mov dword [edx + 0x30], eax
cmp dword [ebp - 8], 0x10
jne 0x506f0d
mov ecx, dword [ebp - 0xb8]
mov dword [ecx], 0
mov dword [ebp - 8], 0
mov edx, dword [ebp - 0xf8]
movsx eax, byte [edx + 1]
xor ecx, ecx
cmp eax, 0xfffffffa
setne cl
mov edx, dword [ebp - 0xb8]
mov byte [edx + 0x16], cl
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 0x16]
neg ecx
sbb ecx, ecx
add ecx, 1
mov edx, dword [ebp - 0xb8]
mov byte [edx + 0x17], cl
jmp case.0x5035d0.16
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00514e40
add esp, 0x14
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jne 0x506f7f
jmp 0x50ab95
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x14], 1
mov eax, dword [0x769348]
push eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
or edx, 9
push edx
mov eax, dword [ebp - 0xd0]
add eax, 0x28
push eax
mov ecx, dword [ebp - 4]
push ecx
push 0
call fcn.0050b9e0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x506fd5
push 1
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x28]
push eax
call fcn.004f77a0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x5070aa
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx + 0x10], 0
je 0x50707c
push 2
lea edx, [ebp - 0x114]
push edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x28]
push ecx
call fcn.005113a0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x507070
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
push 1
mov eax, dword [ebp - 0x114]
push eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x28]
push edx
call fcn.0050cab0
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x30], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x30]
mov al, byte [eax + 0x49]
mov byte [edx + 4], al
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x16], 0
jmp 0x5070aa
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
push eax
push 0
push 1
push 1
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x28]
push edx
call fcn.0050cab0
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x16], 1
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
xor eax, eax
cmp edx, 0x10
setne al
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x18], al
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx + 0x16]
neg eax
sbb eax, eax
add eax, 1
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x17], al
jmp case.0x5035d0.16
push 0
push 0xffffffffffffffff
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00514e40
add esp, 0x14
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jne 0x50711c
jmp 0x50ab95
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x14], 1
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
mov dword [edx + 0x2c], ecx
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x16], 1
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x17], 0
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004fd010
add esp, 8
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov dword [ecx + edx*4], 0
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xc8]
cmp dword [ecx], 0
je 0x5075f1
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0x14], 0
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx + 0x16]
test eax, eax
je 0x50742d
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.005032e0
add esp, 4
mov ecx, dword [ebp - 0xd4]
push ecx
call fcn.00500bd0
add esp, 4
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0xc8]
mov byte [edx + 0x11], 0
mov eax, dword [ebp - 0xd4]
movzx ecx, word [eax + 0x1c]
and ecx, 4
jne 0x5073c5
mov edx, dword [ebp - 0xd4]
movzx eax, word [edx + 0x1c]
and eax, 8
jne 0x507262
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
cmp dword [ebp - 0xa0], 0
jne 0x507349
cmp dword [ebp - 0x9c], 0x80000000
jne 0x507349
fild qword [ebp - 0xa0]
mov eax, dword [ebp - 0xd4]
fcomp qword [eax + 8]
fnstsw ax
test ah, 0x41
je 0x5072ab
mov ecx, dword [ebp - 0xd4]
fldz
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x507349
mov dword [ebp - 0xd0], 1
mov edx, dword [ebp - 0xd4]
fldz
fcomp qword [edx + 8]
fnstsw ax
test ah, 0x41
jne 0x5072f8
cmp dword [ebp - 0xcc], 0x2e
jl 0x5072f6
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.0050cf20
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5072f6
jmp 0x50abc0
jmp 0x507327
cmp dword [ebp - 0xcc], 0x2d
jg 0x507327
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.0050d350
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x507327
jmp 0x50abc0
cmp dword [ebp - 0xd0], 0
je 0x507342
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
jmp case.0x5035d0.16
cmp dword [ebp - 0xcc], 0x2c
je 0x50735b
cmp dword [ebp - 0xcc], 0x2e
jne 0x507391
fild qword [ebp - 0xa0]
mov edx, dword [ebp - 0xd4]
fcomp qword [edx + 8]
fnstsw ax
test ah, 5
jp 0x50738f
mov eax, dword [ebp - 0xa0]
add eax, 1
mov ecx, dword [ebp - 0x9c]
adc ecx, 0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
jmp 0x5073c5
fild qword [ebp - 0xa0]
mov edx, dword [ebp - 0xd4]
fcomp qword [edx + 8]
fnstsw ax
test ah, 0x41
jne 0x5073c5
mov eax, dword [ebp - 0xa0]
sub eax, 1
mov ecx, dword [ebp - 0x9c]
sbb ecx, 0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
lea edx, [ebp - 0xd0]
push edx
push 0
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0xa0]
push ecx
push 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
push eax
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5073fd
jmp 0x50abc0
cmp dword [ebp - 0xd0], 0
jne 0x507428
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0x11], 1
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xa0]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x9c]
mov dword [edx + 0xc], ecx
jmp 0x5074f7
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc0], edx
mov ax, word [ebp - 0xa8]
mov word [ebp - 0xbc], ax
mov ecx, dword [ebp - 0xcc]
sub ecx, 0x2c
and ecx, 1
shl ecx, 3
mov word [ebp - 0xba], cx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
movzx edx, word [ecx + 0x1c]
and edx, 0x4000
je 0x5074b0
mov eax, dword [ebp - 0xb0]
push eax
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x1cc], eax
jmp 0x5074ba
mov dword [ebp - 0x1cc], 0
lea ecx, [ebp - 0xd0]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
push ecx
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5074ed
jmp 0x50abc0
mov edx, dword [ebp - 0xc8]
mov byte [edx + 0x11], 0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x15], 0
mov ecx, dword [ebp - 0xc8]
mov dword [ecx + 0x4c], 0
cmp dword [ebp - 0xcc], 0x2e
jl 0x507570
cmp dword [ebp - 0xd0], 0
jl 0x507532
cmp dword [ebp - 0xd0], 0
jne 0x507564
cmp dword [ebp - 0xcc], 0x2f
jne 0x507564
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
push ecx
call fcn.0050d9c0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x507558
jmp 0x50abc0
mov edx, dword [ebp - 0xc8]
mov byte [edx + 0x11], 0
jmp 0x50756e
mov dword [ebp - 0xd0], 0
jmp 0x5075d4
cmp dword [ebp - 0xd0], 0
jg 0x50758b
cmp dword [ebp - 0xd0], 0
jne 0x5075bd
cmp dword [ebp - 0xcc], 0x2c
jne 0x5075bd
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.0050dc20
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5075b1
jmp 0x50abc0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x11], 0
jmp 0x5075d4
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.0050d9a0
add esp, 4
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x5075ef
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
jmp 0x507603
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
cmp dword [eax], 0
je 0x50767c
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x14], 0
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xec]
push ecx
call fcn.00500bd0
add esp, 4
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x15], 1
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xcc]
cmp dword [edx], 0
je 0x5077f0
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0x10], 0
jle 0x50771c
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov cx, word [eax + 0x10]
mov word [ebp - 0xbc], cx
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xb0], edx
mov eax, 0x10
mov word [ebp - 0xba], ax
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0xc4], ecx
jmp 0x507779
push 0x97
lea edx, [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 0x18]
push eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x30]
push edx
call fcn.00514230
add esp, 0x14
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jne 0x507762
jmp 0x50ab95
mov eax, dword [ebp - 0xc4]
movzx ecx, word [eax + 6]
or ecx, 0x10
mov edx, dword [ebp - 0xc4]
mov word [edx + 6], cx
lea eax, [ebp - 0xc8]
push eax
push 0
push 0
push 0
mov ecx, dword [ebp - 0xc4]
push ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
push eax
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx + 0x10], 0
jne 0x5077bc
mov edx, dword [ebp - 0xc4]
push edx
call fcn.00514420
add esp, 4
cmp dword [ebp - 8], 0
je 0x5077c7
jmp case.0x5035d0.16
xor eax, eax
cmp dword [ebp - 0xc8], 0
sete al
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xcc]
mov byte [ecx + 0x15], 0
mov edx, dword [ebp - 0xcc]
mov dword [edx + 0x4c], 0
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
cmp ecx, 0x32
jne 0x50781b
cmp dword [ebp - 0xd0], 0
je 0x507819
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp 0x507836
cmp dword [ebp - 0xd0], 0
jne 0x507836
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
mov dword [eax + 0x48], 0
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + 0x4c], 0
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x30]
mov ax, word [edx + 6]
mov word [ebp - 0xc4], ax
xor ecx, ecx
mov word [ebp - 0xd0], cx
jmp 0x5078dc
mov dx, word [ebp - 0xd0]
add dx, 1
mov word [ebp - 0xd0], dx
movzx eax, word [ebp - 0xd0]
movzx ecx, word [ebp - 0xc4]
cmp eax, ecx
jge 0x507928
movzx edx, word [ebp - 0xd0]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xc0]
movzx ecx, word [eax + edx + 0x1c]
and ecx, 1
je 0x507926
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xc8], 0
jmp 0x507928
jmp 0x5078ca
cmp dword [ebp - 0xc8], 0
je 0x507a0f
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xb8], edx
movzx eax, word [ebp - 0xc4]
add eax, 1
mov word [ebp - 0xb4], ax
mov ecx, 0x20
mov word [ebp - 0xb2], cx
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
mov dword [ebp - 0xa0], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0xcc]
add ecx, 0x48
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0xc8]
push eax
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
movzx ecx, word [ebp - 0xb2]
and ecx, 0x20
jne 0x5079e4
mov edx, dword [ebp - 0xb0]
cmp edx, dword [ebp - 0xa0]
jne 0x5079f8
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0x9c]
jne 0x5079f8
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp 0x507a0f
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xb0]
mov dword [eax], ecx
mov edx, dword [ebp - 0xac]
mov dword [eax + 4], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0
je 0x507b24
mov dword [ebp - 0xc8], 0
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0xbc], edx
lea eax, [ebp - 0xc8]
push eax
push 0
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
push 0
mov eax, dword [ebp - 0xcc]
push eax
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
mov dword [ecx + 0xc], edx
xor eax, eax
cmp dword [ebp - 0xc8], 0
sete al
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x11], al
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x14], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], 0
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x15], 0
cmp dword [ebp - 0xc8], 0
je 0x507b13
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xc8]
mov dword [ecx + 0x48], edx
jmp 0x507b43
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0xd0]
mov dword [edx + 0x48], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0xe4]
mov eax, dword [ecx + 0x38]
mov dword [edx], eax
mov ecx, dword [ecx + 0x3c]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x38]
add ecx, 1
mov edx, dword [eax + 0x3c]
adc edx, 0
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 4]
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x34]
mov eax, dword [esi + eax*4]
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], edx
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xc8]
cmp dword [eax], 0
jne 0x507bec
jmp 0x507ffe
mov dword [ebp - 0xc0], 0
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx + 0x13]
test edx, edx
jne 0x507e7d
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
push ecx
call fcn.0050cc20
add esp, 4
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
mov edx, dword [ebp - 0xd0]
or edx, dword [ebp - 0xcc]
jne 0x507cd6
lea eax, [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.0050d350
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x507c5d
jmp 0x50abc0
cmp dword [ebp - 0xc4], 0
je 0x507c7c
mov dword [ebp - 0xd0], 1
mov dword [ebp - 0xcc], 0
jmp 0x507cd6
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.004fbd90
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0xd0], 0xffffffff
jne 0x507cb8
cmp dword [ebp - 0xcc], 0x7fffffff
jne 0x507cb8
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x13], 1
jmp 0x507cd6
mov ecx, dword [ebp - 0xd0]
add ecx, 1
mov edx, dword [ebp - 0xcc]
adc edx, 0
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0xc], 0
je 0x507e13
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xdc], 0
je 0x507d3d
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xdc]
mov dword [ebp - 0xb8], eax
jmp 0x507d12
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xb8]
cmp dword [eax + 0x3c], 0
je 0x507d20
jmp 0x507d03
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xb8]
add edx, dword [eax + 0x10]
mov dword [ebp - 0xbc], edx
jmp 0x507d55
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xbc]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xbc]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x1d0]
cmp dword [edx], 0xffffffff
jne 0x507d8a
mov eax, dword [ebp - 0x1d0]
cmp dword [eax + 4], 0x7fffffff
je 0x507d98
mov ecx, dword [ebp - 0xc8]
movzx edx, byte [ecx + 0x13]
test edx, edx
je 0x507da4
mov dword [ebp - 8], 0xd
jmp 0x50abc0
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
add ecx, 1
mov edx, dword [eax + 4]
adc edx, 0
mov dword [ebp - 0x1d8], ecx
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0xcc]
cmp eax, dword [ebp - 0x1d4]
jg 0x507dfc
jl 0x507ddf
mov ecx, dword [ebp - 0xd0]
cmp ecx, dword [ebp - 0x1d8]
jae 0x507dfc
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
add eax, 1
mov ecx, dword [edx + 4]
adc ecx, 0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [edx], eax
mov ecx, dword [ebp - 0xcc]
mov dword [edx + 4], ecx
cmp dword [ebp - 0xcc], 0x7fffffff
jg 0x507e4a
jl 0x507e2a
cmp dword [ebp - 0xd0], 0xffffffff
jae 0x507e4a
mov edx, dword [ebp - 0xd0]
add edx, 1
mov eax, dword [ebp - 0xcc]
adc eax, 0
mov dword [ebp - 0x1e0], edx
mov dword [ebp - 0x1dc], eax
jmp 0x507e5e
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 0
mov ecx, dword [ebp - 0x1dc]
push ecx
mov edx, dword [ebp - 0x1e0]
push edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax]
push ecx
call fcn.0050cbd0
add esp, 0xc
mov edx, dword [ebp - 0xc8]
movzx eax, byte [edx + 0x13]
test eax, eax
je 0x507fdd
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xd0], edx
mov eax, dword [ecx + 0x34]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xcc]
and edx, 0x3fffffff
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xd0]
add eax, 1
mov ecx, dword [ebp - 0xcc]
adc ecx, 0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xc0], 0
lea edx, [ebp - 0xc4]
push edx
push 0
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
push 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
push eax
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x507fc2
cmp dword [ebp - 0xc4], 0
jne 0x507fc2
mov ecx, dword [ebp - 0xc0]
add ecx, 1
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0x64
jge 0x507fc2
lea edx, [ebp - 0xd0]
push edx
push 8
call fcn.004ec9a0
add esp, 8
cmp dword [ebp - 0xc0], 5
jge 0x507f82
mov eax, dword [ebp - 0xd0]
and eax, 0xffffff
mov ecx, dword [ebp - 0xcc]
and ecx, 0
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], ecx
jmp 0x507f9f
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
and eax, 0x3fffffff
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xd0]
add ecx, 1
mov edx, dword [ebp - 0xcc]
adc edx, 0
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0xcc], edx
jmp 0x507eea
cmp dword [ebp - 8], 0
jne 0x507fdd
cmp dword [ebp - 0xc4], 0
jne 0x507fdd
mov dword [ebp - 8], 0xd
jmp 0x50abc0
mov eax, dword [ebp - 0xc8]
mov byte [eax + 0x11], 0
mov ecx, dword [ebp - 0xc8]
mov byte [ecx + 0x15], 0
mov edx, dword [ebp - 0xc8]
mov dword [edx + 0x4c], 0
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xd0]
mov dword [eax], ecx
mov edx, dword [ebp - 0xcc]
mov dword [eax + 4], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 0x37
jne 0x508089
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx]
mov dword [ebp - 0xc8], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0xc4], ecx
jmp 0x50809f
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 3]
and ecx, 1
je 0x5080bd
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x6c]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], eax
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 2
je 0x5080e1
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc8]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x50810a
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x14], 0
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x18], 0
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x10
je 0x50812a
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx + 0x48]
mov dword [ebp - 0x1e4], edx
jmp 0x508134
mov dword [ebp - 0x1e4], 0
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, word [ecx + 0x1c]
and edx, 0x4000
je 0x508162
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
jmp 0x50816c
mov dword [ebp - 0xbc], 0
push 0
push 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
push eax
call fcn.0050cbd0
add esp, 0xc
mov ecx, dword [ebp - 0xb8]
push ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 8
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x18]
push eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 0
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
push eax
call fcn.0050de40
add esp, 0x24
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc0]
mov byte [ecx + 0x11], 0
mov edx, dword [ebp - 0xc0]
mov byte [edx + 0x15], 0
mov eax, dword [ebp - 0xc0]
mov dword [eax + 0x4c], 0
cmp dword [ebp - 8], 0
jne 0x5082a2
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xb8], 0
je 0x5082a2
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 0x10], 0
je 0x5082a2
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
and edx, 4
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xb0]
push edx
mov eax, dword [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0xac]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xb4]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb8]
call edx
add esp, 0x18
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 4]
cmp dword [edx + 0xb8], 0
je 0x508303
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0x10], 0
je 0x508303
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xd0], edx
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.00513af0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x508320
jmp 0x50abc0
push 0
push 0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
push eax
call fcn.0050cbd0
add esp, 0xc
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
push edx
call fcn.00511060
add esp, 4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [eax + 0x4c], 0
cmp dword [ebp - 8], 0
jne 0x5083d4
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xb8], 0
je 0x5083d4
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 0x10], 0
je 0x5083d4
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x11c], eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [ebp - 0x118]
push ecx
push 9
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xb4]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb8]
call edx
add esp, 0x18
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
and ecx, 1
je 0x5083f1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x6c]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], eax
jmp case.0x5035d0.16
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x6c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004ff8a0
add esp, 8
mov edx, dword [ebp + 8]
mov dword [edx + 0x6c], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.00513af0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x508473
jmp 0x50abc0
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx + 0x17]
test edx, edx
je 0x5084de
lea eax, [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.004fbd90
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x48]
cdq
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], edx
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0x1e8]
jl 0x5084d0
jg 0x5084cb
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 0x1ec]
jbe 0x5084d0
jmp 0x50ab71
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xc8], edx
jmp 0x50850a
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050cc30
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc8]
cmp eax, dword [edx + 0x48]
jbe 0x50850a
jmp 0x50ab71
push 0
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.004fc820
add esp, 0xc
test eax, eax
je 0x50852b
jmp 0x50ab95
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0xe4]
movzx eax, word [edx + 0x1c]
and eax, 0xffffbf00
or eax, 0x10
mov ecx, dword [ebp - 0xe4]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx + 0x17]
test eax, eax
je 0x50858b
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0xc8]
push eax
push 0
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.004fbe90
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x5085b0
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
push 0
mov edx, dword [ebp - 0xcc]
push edx
call fcn.0050cc50
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x1f], 1
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax + 0x14]
test ecx, ecx
je 0x5085fe
mov edx, 1
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx + 0x15]
test edx, edx
je 0x508629
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0xc8], ecx
mov edx, dword [eax + 0x24]
mov dword [ebp - 0xc4], edx
jmp 0x5086eb
mov eax, dword [ebp - 0xd0]
cmp dword [eax + 0x40], 0
je 0x50868b
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x40]
mov eax, dword [edx]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
mov dword [ebp - 0xbc], edx
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x40]
push edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x30]
call ecx
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xc0]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00515010
add esp, 8
jmp 0x5086eb
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.00513af0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5086a8
jmp 0x50abc0
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx + 0x11]
test eax, eax
je 0x5086d0
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xc8], edx
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xc4], eax
jmp 0x5086eb
lea ecx, [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
push eax
call fcn.004fbd90
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xc8]
mov dword [ecx], edx
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 4], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x14], 1
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x11], 0
mov edx, dword [ebp - 0xd0]
cmp dword [edx], 0
je 0x50874f
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
push ecx
call fcn.004fbd60
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0
jne 0x50878f
mov dword [ebp - 0xc8], 1
jmp 0x5087a8
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050d350
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xd0]
mov al, byte [ebp - 0xc8]
mov byte [edx + 0x14], al
mov ecx, dword [ebp - 0xd0]
mov byte [ecx + 0x15], 0
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], 0
mov ecx, dword [ebp - 0xf8]
cmp dword [ecx + 8], 0
jle 0x5087ff
cmp dword [ebp - 0xc8], 0
je 0x5087ff
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xb4]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0xb4], edx
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xc8], 1
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
cmp dword [ebp - 0xcc], 0
je 0x5088a1
lea edx, [ebp - 0xc8]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call fcn.0050cf20
add esp, 8
mov dword [ebp - 8], eax
xor ecx, ecx
cmp dword [ebp - 0xc8], 0
sete cl
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x12], cl
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x15], 0
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x4c], 0
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x11], 0
mov eax, dword [ebp - 0xd0]
mov cl, byte [ebp - 0xc8]
mov byte [eax + 0x14], cl
cmp dword [ebp - 0xc8], 0
je 0x5088cb
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xe0], 0
je 0x5088e1
jmp 0x50ac05
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
jne 0x508907
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0
jne 0x50892d
mov eax, dword [ebp - 0xd0]
mov byte [eax + 0x14], 1
jmp case.0x5035d0.16
mov dword [ebp - 0xc8], 1
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 0x43
jne 0x508963
lea eax, [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050d9c0
add esp, 8
mov dword [ebp - 0x1f0], eax
jmp 0x50897f
lea edx, [ebp - 0xc8]
push edx
mov eax, dword [ebp - 0xcc]
push eax
call fcn.0050dc20
add esp, 8
mov dword [ebp - 0x1f0], eax
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0xd0]
mov al, byte [ebp - 0xc8]
mov byte [edx + 0x14], al
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 0x4c], 0
cmp dword [ebp - 0xc8], 0
jne 0x5089f8
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
test edx, edx
je 0x5089f8
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 3]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 0xac]
add eax, 1
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
mov ecx, dword [ebp + 8]
mov dword [ecx + edx*4 + 0xac], eax
mov edx, dword [ebp - 0xd0]
mov byte [edx + 0x11], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0
je 0x508b29
mov eax, dword [ebp - 0xec]
movzx ecx, word [eax + 0x1c]
and ecx, 0x4000
je 0x508a7b
mov edx, dword [ebp - 0xec]
push edx
call fcn.004fcb50
add esp, 4
mov dword [ebp - 0x1f4], eax
jmp 0x508a85
mov dword [ebp - 0x1f4], 0
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x508b29
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xec]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
and eax, 0x10
je 0x508ad6
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x48]
mov dword [ebp - 0x1f8], edx
jmp 0x508ae0
mov dword [ebp - 0x1f8], 0
mov eax, dword [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
push edx
push 0
push 0
push 0x755bbc
mov eax, dword [ebp - 0xc8]
cdq
push edx
push eax
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050de40
add esp, 0x24
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xd0]
mov dword [edx + 0x4c], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
je 0x508bf6
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov cx, word [eax + 0xc]
mov word [ebp - 0xbc], cx
xor edx, edx
mov word [ebp - 0xba], dx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xb0], ecx
lea edx, [ebp - 0xc8]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050d490
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x508be9
cmp dword [ebp - 0xc8], 0
jne 0x508be9
mov edx, dword [ebp - 0xcc]
push edx
call fcn.00511060
add esp, 4
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x4c], 0
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax]
mov dword [ebp - 0xd0], ecx
mov edx, 1
mov eax, dword [ebp - 0xe4]
mov word [eax + 0x1c], dx
cmp dword [ebp - 0xd0], 0
je 0x508cb2
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.00513af0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x508c56
jmp 0x50abc0
mov edx, dword [ebp - 0xcc]
movzx eax, byte [edx + 0x14]
test eax, eax
jne 0x508cb2
lea ecx, [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.005146d0
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x508c8c
jmp 0x50abc0
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xc8]
mov dword [ecx], edx
mov eax, dword [ebp - 0xc4]
mov dword [ecx + 4], eax
mov ecx, 4
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xd0]
cmp dword [edx], 0
je 0x508da6
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xf8]
mov ax, word [edx + 0x10]
mov word [ebp - 0xc4], ax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
test edx, edx
je 0x508d1a
mov eax, 0xc
mov word [ebp - 0xc2], ax
jmp 0x508d26
mov ecx, 4
mov word [ebp - 0xc2], cx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xb8], eax
lea ecx, [ebp - 0xcc]
push ecx
lea edx, [ebp - 0xc8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.00514850
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
cmp edx, 0x51
jne 0x508d7c
mov eax, dword [ebp - 0xcc]
neg eax
mov dword [ebp - 0xcc], eax
jmp 0x508d8b
mov ecx, dword [ebp - 0xcc]
add ecx, 1
mov dword [ebp - 0xcc], ecx
cmp dword [ebp - 0xcc], 0
jle 0x508da6
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x88]
mov dword [ebp - 0xc8], edx
jmp 0x508dd5
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc8], ecx
cmp dword [ebp - 0xc8], 0
je 0x508e19
mov edx, dword [ebp - 0xc8]
cmp dword [edx + 0x44], 0xbdf20da3
jne 0x508e17
mov eax, dword [ebp - 0xc8]
movzx ecx, byte [eax + 0x65]
cmp ecx, 2
jge 0x508e17
mov edx, dword [ebp - 0xc8]
cmp dword [edx + 0x54], 0
jl 0x508e17
mov eax, dword [ebp - 0xcc]
add eax, 1
mov dword [ebp - 0xcc], eax
jmp 0x508dc6
mov ecx, 1
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
cmp dword [ebp - 0xcc], 1
jle 0x508e44
mov dword [ebp - 8], 6
mov eax, dword [ebp + 8]
mov byte [eax + 0x38], 2
jmp 0x508ee3
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0xc4], edx
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0xc4]
shl eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 4]
push eax
call fcn.005118e0
add esp, 0xc
mov dword [ebp - 8], eax
mov ecx, 4
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xd0]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
cmp dword [ebp - 8], 0
jne 0x508ee3
cmp dword [ebp - 0xd0], 0
je 0x508ee3
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xc4]
shl edx, 4
mov eax, dword [ebp - 4]
add edx, dword [eax + 8]
push edx
call fcn.00518270
add esp, 0xc
mov byte [ebp - 0xee], 1
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
neg edx
sbb edx, edx
lea eax, [ebp - 0xd0]
and edx, eax
push edx
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
shl ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.00511690
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 0xc], 0
je 0x508f99
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x6c]
add ecx, dword [ebp - 0xd0]
mov edx, dword [ebp + 8]
mov dword [edx + 0x6c], ecx
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0xc], 0
jle 0x508f99
mov ecx, dword [ebp - 0xf8]
mov ecx, dword [ecx + 0xc]
imul ecx, ecx, 0x28
mov eax, dword [ebp - 0xd0]
cdq
mov esi, dword [ebp - 0xfc]
add eax, dword [esi + ecx]
mov ecx, dword [esi + ecx + 4]
adc ecx, edx
mov edx, dword [ebp - 0xf8]
mov edx, dword [edx + 0xc]
imul edx, edx, 0x28
mov esi, dword [ebp - 0xfc]
mov dword [esi + edx], eax
mov dword [esi + edx + 4], ecx
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
shl ecx, 4
mov edx, dword [ebp - 4]
add ecx, dword [edx + 8]
mov dword [ebp - 0xc8], ecx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
cmp ecx, 0x62
jne 0x508fda
mov dword [ebp - 0xcc], 1
jmp 0x508fe4
mov dword [ebp - 0xcc], 2
mov edx, dword [ebp - 0xcc]
push edx
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx + 4]
push edx
call fcn.005113a0
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
cdq
mov ecx, dword [ebp - 0xe4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004f0450
add esp, 4
mov edx, dword [ebp - 0xf8]
cmp dword [edx + 8], 0
jne 0x509065
mov eax, dword [ebp - 0xd0]
shl eax, 4
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 0xc]
movzx ecx, word [eax + 0x4a]
and ecx, 1
je 0x509168
mov edx, 1
test edx, edx
je 0x509083
cmp dword [ebp - 0xd0], 1
jne 0x509083
mov dword [ebp - 0x1fc], str.sqlite_temp_master
jmp 0x50908d
mov dword [ebp - 0x1fc], str.sqlite_master
mov eax, dword [ebp - 0x1fc]
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xd0]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
mov eax, dword [ebp - 4]
push eax
call fcn.004ff360
add esp, 0x14
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jne 0x50910a
mov dword [ebp - 8], 7
jmp 0x509168
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x7c], 1
mov dword [ebp - 0xb8], 0
push 0
lea edx, [ebp - 0xc4]
push edx
push fcn.0051b670
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.0051acb0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x50914e
mov edx, dword [ebp - 0xb8]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004eaba0
add esp, 8
mov edx, dword [ebp - 4]
mov byte [edx + 0x7c], 0
mov eax, dword [ebp - 4]
push eax
call fcn.004f05a0
add esp, 4
cmp dword [ebp - 8], 7
jne 0x50917f
jmp 0x50ab95
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.00516950
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.00518160
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.00517670
add esp, 0xc
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.0051d630
add esp, 0xc
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
lea ecx, [eax*4 + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.004eaeb0
add esp, 8
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
jne 0x50924e
jmp 0x50ab95
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xbc], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xc8], 0
jmp 0x509299
mov ecx, dword [ebp - 0xc8]
add ecx, 1
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc8]
cmp edx, dword [ebp - 0xd0]
jge 0x5092d0
mov eax, dword [ebp - 0xc8]
imul eax, eax, 0x28
add eax, dword [ebp - 0x100]
push eax
call fcn.00500bd0
add esp, 4
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xcc]
mov dword [edx + ecx*4], eax
jmp 0x50928a
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + eax*4], 0
lea edx, [ebp - 0xc4]
push edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx + 3]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.00511d20
add esp, 0x14
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.004eaba0
add esp, 8
mov eax, dword [ebp - 0xc4]
cdq
mov ecx, dword [ebp - 0xbc]
mov esi, dword [ecx]
sub esi, eax
mov eax, dword [ecx + 4]
sbb eax, edx
mov ecx, dword [ebp - 0xbc]
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x100]
push edx
call fcn.004fce00
add esp, 4
cmp dword [ebp - 0xc4], 0
jne 0x509375
jmp 0x5093a4
cmp dword [ebp - 0xc0], 0
jne 0x509385
jmp 0x50ab95
push fcn.004eab20
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.004fc4e0
add esp, 0x14
movzx edx, byte [ebp - 0xed]
push edx
mov eax, dword [ebp - 0x100]
push eax
call fcn.005000d0
add esp, 8
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xec], ecx
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 0x20
jne 0x509422
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.00513370
add esp, 4
mov edx, dword [ebp - 0x100]
movzx eax, word [edx + 0x1c]
and eax, 0x20
jne 0x509422
jmp 0x50ab95
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ecx]
push eax
mov ecx, dword [ebp - 0x100]
mov edx, dword [ecx]
push edx
call fcn.0050b0a0
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 4]
cmp dword [eax + 0xe0], 0
je 0x509456
jmp 0x50ac05
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x20
je 0x509499
lea edx, [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
push ecx
call fcn.0050b1a0
add esp, 8
test eax, eax
jne 0x5094bc
mov edx, dword [ebp - 0x100]
push edx
call fcn.004fce00
add esp, 4
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
jmp 0x5094e5
mov edx, dword [ebp - 0xcc]
push edx
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
push edx
call fcn.00501110
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x20
jne 0x50955b
mov edx, dword [ebp - 0x100]
push edx
call fcn.00513370
add esp, 4
mov eax, dword [ebp - 0x100]
movzx ecx, word [eax + 0x1c]
and ecx, 0x20
jne 0x50955b
jmp 0x50ab95
cmp dword [ebp - 0xd0], 0
je 0x5095d4
cmp dword [ebp - 0xd0], 0
jl 0x50957e
mov edx, dword [ebp - 0xd0]
and edx, 0xf
mov dword [ebp - 0x200], edx
jmp 0x509588
mov dword [ebp - 0x200], 0xff
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [eax]
push edx
movzx eax, byte [ebp - 0x200]
push eax
mov ecx, dword [ebp - 0x100]
mov edx, dword [ecx]
push edx
call fcn.0050b510
add esp, 0x10
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
je 0x5095d4
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0xd8], ecx
jmp case.0x5035d0.16
cmp dword [ebp - 0xd0], 0
jl 0x5095fb
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [edx]
push ecx
mov edx, dword [ebp - 0x100]
mov eax, dword [edx]
push eax
call fcn.0050b0a0
add esp, 0xc
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx + 3]
test eax, eax
je 0x50968e
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xdc]
mov dword [ebp - 0xbc], ecx
jmp 0x509664
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x509680
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx + 0x20]
cmp edx, dword [ebp - 0xb4]
je 0x509680
jmp 0x509655
cmp dword [ebp - 0xbc], 0
je 0x50968e
jmp case.0x5035d0.16
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0xe0]
cmp edx, dword [ecx + 0x70]
jl 0x5096c3
mov dword [ebp - 8], 1
push str.too_many_levels_of_trigger_recursion
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0xc
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xc8]
movzx eax, word [edx + 0x1c]
and eax, 0x40
jne 0x50986f
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0xb8]
add edx, dword [eax + 0xc]
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp - 0xd0]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0xc]
lea ecx, [ecx + eax*4 + 0x40]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xcc]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.004f09c0
add esp, 8
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x509731
jmp 0x50ab95
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.004fcbf0
add esp, 4
mov edx, 0x40
mov eax, dword [ebp - 0xc8]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ebp - 0xbc]
mov dword [ecx], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xd0]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x28], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 0xd8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4c]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x48]
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov dx, word [ecx + 0x32]
mov word [eax + 0x1c], dx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x20], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [eax + 0x24]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0xbc]
lea eax, [edx + ecx + 0x40]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xbc]
add ecx, 0x40
mov dword [ebp - 0xc4], ecx
jmp 0x509842
mov edx, dword [ebp - 0xc4]
add edx, 0x28
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
cmp eax, dword [ebp - 0xc0]
je 0x50986d
mov ecx, 1
mov edx, dword [ebp - 0xc4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x10], ecx
jmp 0x509833
jmp 0x50987d
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe0]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0xe0], edx
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xdc]
mov dword [ecx + 0x3c], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x30]
mov dword [ecx + 0x30], eax
mov edx, dword [edx + 0x34]
mov dword [ecx + 0x34], edx
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x6c]
mov dword [eax + 0x38], edx
mov eax, dword [ebp + 8]
mov dword [eax + 0x6c], 0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xbc]
mov dword [ecx + 0xdc], edx
mov eax, dword [ebp - 0xbc]
add eax, 0x18
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xfc]
mov dword [ecx + 0x4c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx + 0x24]
mov dword [eax + 0x48], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xbc]
mov dx, word [ecx + 0x28]
mov word [eax + 0x32], dx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x48]
add ecx, 1
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov edx, dword [ebp + 8]
mov dword [edx + 0x34], ecx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0xf4]
mov dword [edx + 0x14], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], eax
mov dword [ebp - 0xd8], 0xffffffff
jmp case.0x5035d0.16
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xdc]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x14
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 8]
mov edx, dword [ebp - 0xf8]
mov edx, dword [edx + 4]
add edx, dword [eax + ecx + 4]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xd0]
add edx, dword [eax + 0x10]
mov dword [ebp - 0xcc], edx
push 0x1000
mov ecx, dword [ebp - 0xcc]
push ecx
mov edx, dword [ebp - 0xe4]
push edx
call fcn.005134c0
add esp, 0xc
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 4], 0
je 0x509a07
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ecx + 8]
cdq
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x1e0]
mov ecx, dword [ecx + 0x1e4]
adc ecx, edx
mov edx, dword [ebp - 4]
mov dword [edx + 0x1e0], eax
mov dword [edx + 0x1e4], ecx
jmp 0x509a31
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 8]
cdq
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
adc ecx, edx
mov edx, dword [ebp + 8]
mov dword [edx + 0xc8], eax
mov dword [edx + 0xcc], ecx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 4], 0
je 0x509a79
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x204], ecx
mov edx, dword [ebp - 0x204]
mov eax, dword [ebp - 0x204]
mov ecx, dword [edx + 0x1e0]
or ecx, dword [eax + 0x1e4]
jne 0x509a77
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp 0x509aae
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x208], ecx
mov edx, dword [ebp - 0x208]
mov eax, dword [ebp - 0x208]
mov ecx, dword [edx + 0xc8]
or ecx, dword [eax + 0xcc]
jne 0x509aae
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xdc], 0
je 0x509b0a
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xdc]
mov dword [ebp - 0xcc], eax
jmp 0x509adf
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 0x3c], 0
je 0x509aed
jmp 0x509ad0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
mov eax, dword [ebp - 0xcc]
add edx, dword [eax + 0x10]
mov dword [ebp - 0xd0], edx
jmp 0x509b22
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xec], edx
mov eax, dword [ebp - 0xec]
push eax
call fcn.00513260
add esp, 4
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x210], edx
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jg 0x509bae
jl 0x509b98
mov eax, dword [ebp - 0x20c]
mov ecx, dword [ebp - 0x210]
mov edx, dword [eax]
cmp edx, dword [ecx]
jae 0x509bae
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xec]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x214], ecx
mov edx, dword [ebp - 0x214]
cmp dword [edx + 4], 0
jl 0x509c02
jg 0x509bf0
mov eax, dword [ebp - 0x214]
cmp dword [eax], 0
jbe 0x509c02
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], ecx
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x218], edx
mov eax, dword [ebp - 0x218]
cmp dword [eax + 4], 0
jg 0x509c56
jl 0x509c44
mov ecx, dword [ebp - 0x218]
cmp dword [ecx], 0
jae 0x509c56
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 0xc]
cdq
mov ecx, dword [ebp - 0x100]
add eax, dword [ecx]
mov ecx, dword [ecx + 4]
adc ecx, edx
mov edx, dword [ebp - 0x100]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x21c]
mov eax, dword [ecx]
or eax, dword [edx + 4]
jne 0x509cc6
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax + 3]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x80], edx
mov dword [ebp - 0xcc], 0
jmp 0x509d26
mov eax, dword [ebp - 0xcc]
add eax, 1
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xc4]
add ecx, 0x28
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xcc]
cmp edx, dword [ebp - 0xd0]
jge 0x509d57
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0xc4]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0xc4]
push eax
call fcn.00503280
add esp, 4
jmp 0x509d08
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0xc8]
mov ecx, dword [eax + 0x18]
add ecx, 1
mov edx, dword [ebp - 0xc8]
mov dword [edx + 0x18], ecx
mov eax, 1
mov word [ebp - 0x9c], ax
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x98], 0
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov edx, dword [ebp - 0xc0]
movzx eax, byte [edx + 3]
and eax, 8
je 0x509e04
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x88], edx
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
lea edx, [ebp - 0xc0]
push edx
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 0x10]
call ecx
add esp, 0xc
cmp dword [ebp - 0x8c], 0
je 0x509e5e
lea edx, [ebp - 0xb8]
push edx
call fcn.00500f30
add esp, 4
push eax
push 0x7584c4
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0x10
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 8], edx
lea eax, [ebp - 0xb8]
push eax
call fcn.004fcbf0
add esp, 4
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
call fcn.004fcd70
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x509ed4
mov eax, dword [ebp - 0xd0]
push eax
call fcn.00500f30
add esp, 4
push eax
push 0x7584c4
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x5c
push edx
call fcn.004ff7d0
add esp, 0x10
movzx eax, byte [ebp - 0xed]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.005000d0
add esp, 8
mov edx, dword [ebp - 0xd0]
push edx
call fcn.00513470
add esp, 4
test eax, eax
je 0x509f03
jmp 0x50ab71
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.0054c0c0
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0x80], 0
jne 0x509f63
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.005139c0
add esp, 8
mov eax, dword [ebp + 8]
push eax
call fcn.004ff6c0
add esp, 4
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.004f0630
add esp, 4
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.004f59b0
add esp, 4
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc8], 0xffffffff
jne 0x509fbe
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xcc]
push eax
call fcn.0050b860
add esp, 4
test eax, eax
jne 0x509fdd
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xcc]
push edx
call fcn.004ff410
add esp, 4
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc8], 5
jne 0x50a027
mov eax, dword [ebp - 0xc0]
movsx ecx, byte [eax]
test ecx, ecx
je 0x50a01b
mov edx, dword [ebp - 0xcc]
push edx
call fcn.004f8a50
add esp, 4
test eax, eax
jne 0x50a027
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xc8]
cmp ecx, dword [ebp - 0xc4]
je 0x50a12d
cmp dword [ebp - 0xc4], 5
je 0x50a04f
cmp dword [ebp - 0xc8], 5
jne 0x50a12d
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x1c]
test eax, eax
je 0x50a066
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x8c], 1
jle 0x50a0b2
mov dword [ebp - 8], 1
cmp dword [ebp - 0xc8], 5
jne 0x50a082
mov dword [ebp - 0x220], 0x76c4b8
jmp 0x50a08c
mov dword [ebp - 0x220], str.out_of
mov edx, dword [ebp - 0x220]
push edx
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0x10
jmp case.0x5035d0.16
cmp dword [ebp - 0xc4], 5
jne 0x50a0eb
mov edx, dword [ebp - 0xcc]
push edx
call fcn.0050b8b0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x50a0e9
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050b710
add esp, 8
jmp 0x50a105
cmp dword [ebp - 0xc4], 4
jne 0x50a105
push 2
mov edx, dword [ebp - 0xcc]
push edx
call fcn.0050b710
add esp, 8
cmp dword [ebp - 8], 0
jne 0x50a12d
xor eax, eax
cmp dword [ebp - 0xc8], 5
sete al
add eax, 1
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.00513120
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x50a13f
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xcc]
push ecx
call fcn.0050b710
add esp, 8
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
add eax, dword [ebp - 0xfc]
mov dword [ebp - 0xe4], eax
mov ecx, 0xa02
mov edx, dword [ebp - 0xe4]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0xc8]
push eax
call fcn.0051b650
add esp, 4
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx + 0x14]
push eax
call fcn.004ecbe0
add esp, 4
mov ecx, dword [ebp - 0xe4]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 0xe4]
mov byte [edx + 0x1f], 1
movzx eax, byte [ebp - 0xed]
push eax
mov ecx, dword [ebp - 0xe4]
push ecx
call fcn.005000d0
add esp, 8
jmp case.0x5035d0.16
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.0051d730
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0050c9b0
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x65
jne 0x50a243
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
mov dword [ebp - 8], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 4], 0
jne 0x50a262
mov ecx, dword [ebp - 4]
push ecx
call fcn.00514920
add esp, 4
jmp 0x50a269
mov edx, dword [ebp + 8]
mov byte [edx + 0x62], 1
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov cl, byte [eax + 0xc]
mov byte [ebp - 0x11d], cl
movzx edx, byte [ebp - 0x11d]
test edx, edx
jne 0x50a296
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xc]
and ecx, 0x80000
jne 0x50a312
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x124], eax
movzx ecx, byte [ebp - 0x11d]
push ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x124]
shl ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.00512fe0
add esp, 0xc
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
and edx, 0xff
cmp edx, 6
jne 0x50a312
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x128]
push edx
push str.database_table_is_locked:__s
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0x10
jmp case.0x5035d0.16
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.0051ec30
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0xd0], 0
je 0x50a35b
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00515010
add esp, 8
jmp case.0x5035d0.16
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.0051e2a0
add esp, 0x10
mov dword [ebp - 8], eax
jmp case.0x5035d0.16
mov eax, dword [ebp + 8]
mov byte [eax + 0x65], 2
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.0051e9e0
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov byte [eax + 0x65], 0
jmp case.0x5035d0.16
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
mov dword [ebp - 0xc4], edx
lea eax, [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx + 0x18]
call eax
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc8]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00515010
add esp, 8
cmp dword [ebp - 8], 0
jne 0x50a4aa
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
push 0
push 0xffffffffffffffff
push 0
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00514e40
add esp, 0x14
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x50a48e
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
mov dword [edx + 0x40], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edx]
mov dword [eax + 0x44], ecx
jmp 0x50a4aa
mov edx, dword [ebp - 4]
mov byte [edx + 0x1e], 1
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx + 0x1c]
call edx
add esp, 4
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
add edx, 0x28
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx + 0x40]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xbc]
mov edx, dword [ecx]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xb8]
mov ecx, dword [eax]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0xc0]
mov eax, dword [edx]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx]
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xb0], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xac], 0
jmp 0x50a566
mov edx, dword [ebp - 0xac]
add edx, 1
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xac]
cmp eax, dword [ebp - 0xd0]
jge 0x50a5af
mov ecx, dword [ebp - 0xac]
add ecx, 1
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00503280
add esp, 4
jmp 0x50a557
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x65], 1
mov edx, dword [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x20]
call eax
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x65], 0
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00515010
add esp, 8
cmp dword [ebp - 8], 0
jne 0x50a628
mov ecx, dword [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx + 0x28]
call eax
add esp, 4
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
je 0x50a643
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xb4]
mov byte [eax + 0x14], 0
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xc8], ecx
mov edx, dword [ebp - 0x12c]
movzx eax, byte [edx + 0x14]
test eax, eax
je 0x50a6a4
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.004fce00
add esp, 4
jmp case.0x5035d0.16
mov edx, dword [ebp - 0x12c]
mov eax, dword [edx + 0x40]
mov ecx, dword [eax]
mov dword [ebp - 0xd0], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov dword [ebp - 0xcc], eax
push 0x40
push 0
lea ecx, [ebp - 0xc0]
push ecx
call fcn.005b33a0
add esp, 0xc
mov edx, dword [ebp - 0xc8]
push edx
lea eax, [ebp - 0xb8]
push eax
call fcn.00503140
add esp, 8
movzx ecx, word [ebp - 0x9c]
and ecx, 0xffffbf00
or ecx, 1
mov word [ebp - 0x9c], cx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
push eax
lea ecx, [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0x12c]
mov eax, dword [edx + 0x40]
push eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x2c]
call edx
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00515010
add esp, 8
cmp dword [ebp - 0x8c], 0
je 0x50a754
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 8], edx
movzx eax, byte [ebp - 0xed]
push eax
lea ecx, [ebp - 0xb8]
push ecx
call fcn.005000d0
add esp, 8
lea edx, [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0xc8]
push eax
call fcn.00503140
add esp, 8
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.00513470
add esp, 4
test eax, eax
je 0x50a799
jmp 0x50ab71
jmp case.0x5035d0.16
mov dword [ebp - 0xc8], 0
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x34]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc4]
movzx edx, byte [ecx + 0x14]
test edx, edx
je 0x50a7d3
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x40]
mov edx, dword [ecx]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp + 8]
mov byte [edx + 0x65], 1
mov eax, dword [ebp - 0xc4]
mov ecx, dword [eax + 0x40]
push ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x65], 0
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00515010
add esp, 8
cmp dword [ebp - 8], 0
jne 0x50a852
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ecx + 0x40]
push edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x28]
call ecx
add esp, 4
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jne 0x50a86d
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0xd8], eax
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 8]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0xd0]
push edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x4c]
call edx
add esp, 8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00515010
add esp, 8
mov edx, dword [ebp + 8]
mov byte [edx + 0x62], 0
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax]
mov dword [ebp - 0xcc], ecx
mov edx, dword [ebp - 0xf8]
mov eax, dword [edx + 8]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xcc]
cmp dword [ecx + 0x34], 0
je 0x50aa16
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
add edx, dword [ebp - 0xfc]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xc4], 0
jmp 0x50a95d
mov eax, dword [ebp - 0xc4]
add eax, 1
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc4]
cmp ecx, dword [ebp - 0xc8]
jge 0x50a9a0
mov edx, dword [ebp - 0xb4]
push edx
call fcn.00503280
add esp, 4
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0xb4]
add eax, 0x28
mov dword [ebp - 0xb4], eax
jmp 0x50a94e
lea ecx, [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 0x34]
call eax
add esp, 0x10
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00515010
add esp, 8
cmp dword [ebp - 8], 0
jne 0x50aa07
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 4], 0
je 0x50aa07
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc0]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0xbc]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x6c]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x6c], edx
jmp case.0x5035d0.16
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 4]
shl edx, 4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.004f7760
add esp, 4
xor ecx, ecx
mov edx, dword [ebp - 0xe4]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x5035d0.16
mov eax, dword [ebp - 0xf8]
cmp dword [eax + 0x10], 0
je 0x50aa69
mov ecx, dword [ebp - 0xf8]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x224], edx
jmp 0x50aa78
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xbc]
mov dword [ebp - 0x224], ecx
mov edx, dword [ebp - 0x224]
mov dword [ebp - 0xd0], edx
cmp dword [ebp - 0xd0], 0
je case.0x5035d0.16
mov eax, dword [ebp - 4]
cmp dword [eax + 0x94], 0
je case.0x5035d0.16
mov ecx, dword [ebp - 0xd0]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00514950
add esp, 8
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x130]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x98]
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x94]
call ecx
add esp, 8
mov edx, dword [ebp - 0x130]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.004eaba0
add esp, 8
jmp 0x5034b3
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x58], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5c]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xbc]
push eax
mov ecx, dword [ebp - 0xd8]
push ecx
push str.statement_aborts_at__d:___s___s
mov edx, dword [ebp - 8]
push edx
call fcn.004ec8e0
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
call fcn.004fe780
add esp, 4
cmp dword [ebp - 8], 0xc0a
jne 0x50ab37
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1e], 1
mov dword [ebp - 8], 1
movzx edx, byte [ebp - 0xee]
test edx, edx
je 0x50ab57
push 0
mov eax, dword [ebp - 4]
push eax
call fcn.00517c00
add esp, 8
mov ecx, dword [ebp + 8]
add ecx, 0x80
push ecx
call fcn.004feba0
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x50ac3f
push str.string_or_blob_too_big
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 0x12
jmp 0x50aae9
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1e], 1
push 0x7680f0
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x5c
push eax
call fcn.004ff7d0
add esp, 0xc
mov dword [ebp - 8], 7
jmp 0x50aae9
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x50abd2
mov dword [ebp - 8], 7
cmp dword [ebp - 8], 0xc0a
je 0x50ac00
mov eax, dword [ebp - 8]
push eax
call fcn.0054b690
add esp, 4
push eax
push 0x7584c4
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x5c
push edx
call fcn.004ff7d0
add esp, 0x10
jmp 0x50aae9
mov dword [ebp - 8], 9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x58], ecx
mov edx, dword [ebp - 8]
push edx
call fcn.0054b690
add esp, 4
push eax
push 0x7584c4
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x5c
push ecx
call fcn.004ff7d0
add esp, 0x10
jmp 0x50aae9
pop esi
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.005b2a44
mov esp, ebp
pop ebp
ret