Function at 0x4ffcb8
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x348
mov eax, dword [0x58f140]
xor eax, esp
mov dword [esp + 0x344], eax
mov ecx, dword [esp + 0x34c]
xorps xmm0, xmm0
push ebx
push ebp
push esi
mov ebp, dword [ecx]
xor bl, bl
mov esi, dword [ecx + 0x68]
push edi
xor edi, edi
mov dword [esp + 0x14], ecx
mov al, byte [ebp + 0x54]
mov byte [esp + 0x4c], al
mov byte [esp + 0x74], al
mov eax, dword [ecx + 0x58]
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebp
mov byte [esp + 0x67], bl
mov dword [esp + 0x5c], edi
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x28], eax
mov dword [esp + 0x88], edi
cmp dword [ecx + 0xa0], edi
je 0x4fecbb
push ecx
call fcn.004feba0
mov ecx, dword [esp + 0x18]
add esp, 4
cmp dword [ebp + 0x174], edi
je 0x4fecd9
mov ebx, dword [ebp + 0x17c]
xor edx, edx
mov eax, dword [ecx + 0xb4]
div ebx
sub ebx, edx
xor eax, eax
jmp 0x4fecdf
or ebx, 0xffffffff
or eax, 0xffffffff
cmp dword [ecx + 0x24], 7
mov dword [esp + 0x84], eax
mov dword [esp + 0x68], ebx
je 0x50704d
mov dword [ecx + 0x24], edi
mov dword [ecx + 0x38], edi
mov dword [ecx + 0x3c], edi
mov dword [ebp + 0x1c8], edi
cmp dword [ebp + 0x128], edi
jne 0x507030
mov eax, dword [ecx + 0x20]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0xb8], 0xf244
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x78]
add eax, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
adc edx, 0
mov dword [esp + 0x80], edx
mov dl, byte [esi]
movzx ebx, dl
cmp ebx, 0xb5
ja case.0x4fed51.89
jmp dword [ebx*4 + 0x50728c]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov ebx, dword [esp + 0x28]
sub ecx, dword [esp + 0x20]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp case.0x4fed51.9
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 4
je 0x4fee42
mov eax, dword [ebx + eax*8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 0x10], ax
cmp dword [esi + 8], 0
jne 0x5003d4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
xor eax, eax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x20]
lea esi, [eax + eax*4]
mov eax, 4
mov word [ebx + esi*8 + 0x10], ax
mov eax, 0x66666667
mov ecx, dword [ebx + esi*8]
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
mov dword [ebx + esi*8 + 4], edx
lea esi, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x4fee42
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x50699b
cmp dword [esi + 4], 0
jne 0x50699b
mov eax, dword [edx + 4]
mov dword [ecx + 0xd0], eax
dec dword [ecx + 0xd8]
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
push edx
adc dword [ebp + 0x74], ecx
call fcn.00507ba0
mov ecx, dword [esp + 0x14]
add esp, 4
cmp dword [ecx + 8], 4
jne 0x4fef1a
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + 0x68]
mov edx, dword [ecx + 0x58]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edx
lea esi, [ebx + eax*4]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4fef97
push ecx
call fcn.004bbad0
mov esi, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x14]
add esp, 4
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4feff4
push edx
call fcn.004bbad0
add esp, 4
mov edx, eax
jmp 0x4feffd
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4ff053
push ecx
call fcn.004bbad0
add esp, 4
mov ecx, eax
mov esi, dword [esp + 0x10]
mov eax, 8
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x1c]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ff0b2
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
jmp 0x4ff0bb
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x4ff0c6
xor ecx, ecx
jmp 0x4ff0e3
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ff0d0
sub ecx, edi
mov edi, dword [esp + 0x18]
and ecx, 0x3fffffff
cmp byte [esp + 0x4c], 1
mov dword [ebx + 4], ecx
je 0x4ff17d
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edx
push esi
call fcn.005092a0
mov edi, eax
add esp, 0x18
mov dword [esp + 0x18], edi
test edi, edi
jne 0x5011d8
test byte [esi + 0x10], 2
mov al, byte [esp + 0x4c]
jne 0x4ff120
mov byte [esi + 0x12], al
jmp 0x4ff13a
cmp byte [esi + 0x12], al
je 0x4ff13a
push dword [esp + 0x4c]
push esi
call fcn.005096b0
add esp, 8
test eax, eax
jne 0x5010e6
mov ecx, dword [esp + 0x10]
mov eax, 0x2000
mov dword [esi + 0x18], 0
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x4ff169
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4ff169
push eax
push ebp
call fcn.004d5a50
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, dword [esp + 0x10]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 4], ecx
cmp ecx, dword [ebp + 0x78]
jg 0x5011d8
mov byte [ebx], 0x49
jmp 0x4ff18f
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4ff1b5
push ecx
call fcn.004bbad0
add esp, 4
mov ecx, eax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [ebx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x4ff2b9
mov ebx, dword [esp + 0x28]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [ebx + esi*8], eax
jne 0x4fefad
cmp dword [ebx + esi*8 + 4], edx
jne 0x4ff2b9
mov esi, dword [esp + 0x10]
mov eax, 0x2210
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x4ff253
push edx
call fcn.004bbad0
add esp, 4
mov edx, eax
jmp 0x4ff25c
mov eax, 4
mov word [edx + 0x10], ax
cmp dword [ebx + 4], 0
lea esi, [edx + 0x10]
mov edi, dword [ebx + 0xc]
mov eax, 1
mov ecx, dword [ebx + 8]
mov ebx, 0x101
cmovne eax, ebx
sub edi, ecx
movzx ebx, ax
mov word [esi], bx
mov dword [edx + 0xc], 0
test edi, edi
jle 0x4ff2b9
mov eax, 0x9000
nop
test word [esi + 0x28], ax
lea esi, [esi + 0x28]
je 0x4ff2aa
lea eax, [esi - 0x10]
push eax
call fcn.00519fc0
add esp, 4
mov eax, 0x9000
dec edi
mov word [esi], bx
mov dword [esi - 4], 0
test edi, edi
jg 0x4ff290
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 4]
mov edx, 0xffc1
mov ebx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 1
jmp 0x4fee39
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ff329
push esi
call fcn.004bbad0
mov esi, eax
add esp, 4
mov eax, 0x9000
jmp 0x4ff332
mov ecx, 4
mov word [esi + 0x10], cx
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
test ecx, ecx
jne 0x4ff3a7
test word [esi + 0x10], ax
jne 0x4ff347
cmp dword [esi + 0x18], ecx
je 0x4ff350
push esi
call fcn.00519f80
add esp, 4
mov eax, 0x410
mov word [esi + 0x10], ax
xor eax, eax
test edi, edi
mov dword [esi + 0xc], 0
push esi
cmovs edi, eax
mov dword [esi], edi
mov byte [esi + 0x12], 1
mov dword [esi + 8], eax
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
mov al, byte [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
push 0
push 0
mov eax, edi
cdq
push edx
push eax
push ecx
push esi
call fcn.005092a0
mov al, byte [esp + 0x64]
add esp, 0x18
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [ecx + 0x64]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
movzx eax, word [ebx + edi*8 - 0x18]
test al, 0x12
je 0x4ff412
mov ecx, dword [ebx + edi*8 - 0x1c]
test eax, 0x400
je 0x4ff405
add ecx, dword [ebx + edi*8 - 0x28]
mov eax, dword [ebx + edi*8 - 0x14]
cmp ecx, dword [eax + 0x78]
jg 0x5011d8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ff437
push esi
call fcn.00519fc0
add esp, 4
movups xmm0, xmmword [ebx + edi*8 - 0x28]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [ebx + edi*8 - 0x18]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x14]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop word [eax + eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4ff4b1
cmp dword [esi + 0x18], 0
je 0x4ff4ba
push esi
call fcn.00519f80
add esp, 4
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 0x10], ax
mov dword [edi + 0x18], 0
movzx eax, word [esi + 0x10]
test eax, 0x4000
je 0x4ff52e
test al, 0x12
je 0x4ff528
test eax, 0x400
je 0x4ff509
push esi
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
cmp dword [esi + 0x18], 0
je 0x4ff517
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4ff528
push esi
call fcn.00519f30
add esp, 4
test eax, eax
jne 0x5010e6
and word [esi + 0x10], 0xbfff
add edi, 0x28
add esi, 0x28
sub ebx, 1
jne 0x4ff4a0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ff59c
push 0x4000
push edi
push esi
call fcn.00519250
add esp, 0xc
jmp 0x4ff5cb
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [edi + 0x10], ax
jne 0x4ff5cb
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov word [esi + 0x10], ax
movzx eax, word [esi + 0x10]
mov ecx, eax
test ecx, 0x4000
je 0x4ff626
test cl, 0x12
je 0x4ff616
test ecx, 0x400
je 0x4ff5f7
push esi
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
cmp dword [esi + 0x18], 0
je 0x4ff605
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0x20]
je 0x4ff616
push esi
call fcn.00519f30
add esp, 4
test eax, eax
jne 0x5010e6
mov eax, 0xbfff
and ax, word [esi + 0x10]
mov word [esi + 0x10], ax
movzx eax, ax
movzx eax, ax
test eax, 0x800
je 0x4ff643
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 2
je 0x4ff643
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, ebx
dec ebx
test eax, eax
je 0x4ff2b9
add esi, 0x28
add edi, 0x28
jmp 0x4ff580
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4ff6ac
push 0x4000
push edx
push ecx
call fcn.00519250
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
movups xmm0, xmmword [edx]
mov esi, dword [esp + 0x10]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x4fee3e
mov edx, 0xcfff
and ax, dx
mov edx, 0x4000
or ax, dx
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, 0x9000
test word [ecx + 0x10], bx
je 0x4ff745
push eax
push edx
push ecx
call fcn.0051b570
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov esi, dword [esp + 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov eax, 4
mov word [ecx + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
push 0
push ecx
call fcn.004fe510
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x50707f
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx ecx, word [edx + eax*8 + 0x10]
lea ebx, [edx + eax*8]
mov eax, dword [edi + 8]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x3c], ecx
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov al, byte [edi + 0x10]
or al, cl
test al, 1
je 0x4ff838
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4ff810
push esi
call fcn.00519fc0
add esp, 4
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x18]
mov eax, 1
mov ecx, dword [esp + 0x14]
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
test cl, 0x12
jne 0x4ff869
push 0
push dword [esp + 0x78]
push ebx
call fcn.00509620
add esp, 0xc
test eax, eax
jne 0x5010e6
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ecx, ax
mov dword [esp + 0x3c], ecx
jmp 0x4ff895
test ecx, 0x400
je 0x4ff895
push ebx
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
mov ax, word [ebx + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x3c], eax
movzx eax, word [edi + 0x10]
mov dword [esp + 0x40], eax
test al, 0x12
jne 0x4ff8c9
push 0
push dword [esp + 0x78]
push edi
call fcn.00509620
add esp, 0xc
test eax, eax
jne 0x5010e6
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x4ff8f6
test eax, 0x400
je 0x4ff8f2
push edi
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
mov ax, word [edi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx ebp, ax
jmp 0x4ff8f6
mov ebp, dword [esp + 0x40]
mov ecx, dword [edi + 0xc]
add ecx, dword [ebx + 0xc]
mov eax, ecx
cdq
mov ebx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x34], edx
jg 0x5011d8
jl 0x4ff921
cmp ebx, eax
ja 0x5011d8
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.00508d80
add esp, 0xc
test eax, eax
jne 0x5010e2
mov ax, word [esi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [esi + 0x10], ax
cmp esi, edi
je 0x4ff96b
push dword [edi + 0xc]
push dword [edi + 8]
push dword [esi + 8]
call fcn.00532150
add esp, 0xc
mov word [edi + 0x10], bp
mov ebp, dword [esp + 0x6c]
mov eax, dword [esi + 8]
add eax, dword [edi + 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
call fcn.00532150
mov cl, byte [esp + 0x58]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov word [ebp + 0x10], ax
cmp cl, 1
jbe 0x4ff9a0
mov eax, dword [esp + 0x34]
and ebx, 0xfffffffe
mov dword [esp + 0x30], eax
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov byte [ebx + eax], 0
mov eax, dword [esi + 8]
mov byte [eax + ebx + 1], 0
mov eax, 0x200
or word [esi + 0x10], ax
mov eax, dword [esp + 0x1c]
mov dword [esi + 0xc], ebx
mov byte [esi + 0x12], cl
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 0x10]
lea esi, [ecx + eax*8]
mov eax, dword [edi + 8]
mov ebx, edx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ebp, [ecx + eax*8]
mov eax, dword [edi + 0xc]
movzx ecx, word [ebp + 0x10]
mov dword [esp + 0x38], ebp
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
mov al, cl
and al, bl
test al, 4
jne 0x4ffa6b
or cl, bl
test cl, 1
jne 0x4ffdd0
and edx, 0x2d
je 0x4ffa3f
mov ebx, edx
jmp 0x4ffa4b
push esi
call fcn.004a26c0
add esp, 4
movzx ebx, ax
mov ax, word [ebp + 0x10]
and ax, 0x2d
jne 0x4ffa5e
push ebp
call fcn.004a26c0
add esp, 4
movzx eax, ax
and al, bl
test al, 4
je 0x4ffc00
mov eax, dword [esp + 0x10]
mov ebx, dword [ebp]
mov edi, dword [esi]
mov ebp, dword [ebp + 4]
movzx eax, byte [eax]
mov esi, dword [esi + 4]
add eax, 0xffffff96
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebp
cmp eax, 3
ja case.default.0x4ffa91
jmp dword [eax*4 + 0x507564]
push esi
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.004c9820
add esp, 0xc
test eax, eax
jne 0x4ffbf8
mov ebp, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
jmp 0x4ffd8d
test edi, edi
jne 0x4ffae3
cmp esi, 0x80000000
jne 0x4ffae3
test ebp, ebp
jg 0x4ffbf8
jl 0x4ffada
test ebx, ebx
jae 0x4ffbf8
sub ebx, edi
sbb ebp, esi
jmp 0x4ffd8d
neg edi
adc esi, 0
neg esi
jmp case.0x4ffa91.106
test esi, esi
jl 0x4ffb49
jg 0x4ffaf6
test edi, edi
je 0x4ffb3f
push esi
push edi
push SysReAllocString
push 0xffffffffffffffff
call fcn.0052e950
cmp ebp, edx
jg 0x4ffbf8
jl 0x4ffb16
cmp ebx, eax
ja 0x4ffbf8
push esi
push edi
push SysReAllocString
push 0
call fcn.0052e950
cmp ebp, edx
jg 0x4ffbbf
jl 0x4ffbf8
cmp ebx, eax
jae 0x4ffbbf
jmp 0x4ffbf8
test esi, esi
jg 0x4ffbbf
jl 0x4ffb49
test edi, edi
jae 0x4ffbbf
test ebp, ebp
jl 0x4ffb7e
jg 0x4ffb53
test ebx, ebx
je 0x4ffb74
push ebp
push ebx
push SysReAllocString
push 0
call fcn.0052e950
cmp esi, edx
jg 0x4ffbbf
jl 0x4ffbf8
cmp edi, eax
jae 0x4ffbbf
jmp 0x4ffbf8
test ebp, ebp
jg 0x4ffbbf
jl 0x4ffb7e
test ebx, ebx
jae 0x4ffbbf
test edi, edi
jne 0x4ffb8a
cmp esi, 0x80000000
je 0x4ffbf8
test ebx, ebx
jne 0x4ffb96
cmp ebp, 0x80000000
je 0x4ffbf8
push esi
push edi
push SysReAllocString
push 1
call fcn.0052e950
mov ecx, ebx
neg ecx
mov dword [esp + 0x40], ecx
mov ecx, ebp
adc ecx, 0
neg ecx
cmp ecx, edx
jg 0x4ffbf8
jl 0x4ffbbf
cmp dword [esp + 0x40], eax
ja 0x4ffbf8
push ebp
push ebx
push esi
push edi
call fcn.0052ea00
jmp 0x4ffd89
mov eax, edi
or eax, esi
je 0x4ffdd0
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4ffd5f
test ebx, ebx
jne 0x4ffd5f
cmp ebp, 0x80000000
jne 0x4ffd5f
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
movzx eax, word [ebx + 0x10]
test al, 8
je 0x4ffc1b
movsd xmm0, qword [ebx]
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x4ffc5f
test al, 0x24
je 0x4ffc34
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
call fcn.0052e900
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x4ffc5f
test al, 0x12
je 0x4ffc56
push ebx
call fcn.004b8690
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
add esp, 4
movsd qword [esp + 0x2c], xmm0
xorps xmm0, xmm0
jmp 0x4ffc5f
xorps xmm0, xmm0
movsd qword [esp + 0x2c], xmm0
movzx eax, word [ebp + 0x10]
test al, 8
je 0x4ffc6e
movsd xmm0, qword [ebp]
jmp 0x4ffc96
test al, 0x24
je 0x4ffc7f
mov edx, dword [ebp + 4]
mov ecx, dword [ebp]
call fcn.0052e900
jmp 0x4ffc96
test al, 0x12
je 0x4ffc96
push ebp
call fcn.004b8690
fstp qword [esp + 0x44]
movsd xmm0, qword [esp + 0x44]
add esp, 4
movzx eax, byte [edi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4ffca1
jmp dword [eax*4 + 0x507574]
addsd xmm0, qword [esp + 0x2c]
jmp 0x4ffd1b
subsd xmm0, qword [esp + 0x2c]
jmp 0x4ffd1b
mulsd xmm0, qword [esp + 0x2c]
jmp 0x4ffd1b
movsd xmm1, qword [esp + 0x2c]
ucomisd xmm1, qword [0x579800]
lahf
test ah, 0x44
jnp 0x4ffdd0
divsd xmm0, xmm1
jmp 0x4ffd1b
push ebx
call fcn.00508270
push ebp
mov esi, eax
mov edi, edx
call fcn.00508270
mov ecx, esi
add esp, 8
or ecx, edi
je 0x4ffdd0
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x4ffd0b
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0052ebc0
mov ecx, eax
call fcn.0052e900
movsd qword [esp + 0x2c], xmm0
mov ecx, dword [esp + 0x30]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7ff00000
jne 0x4ffd45
mov eax, dword [esp + 0x2c]
and ecx, 0xfffff
or eax, ecx
jne 0x4ffdd0
mov ecx, dword [esp + 0x3c]
mov edx, 0xf248
movsd qword [ecx], xmm0
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 8
jmp 0x4ffda6
push esi
push edi
push ebp
push ebx
call fcn.0052e950
jmp 0x4ffd89
mov eax, edi
or eax, esi
je 0x4ffdd0
mov eax, edi
and eax, esi
cmp eax, 0xffffffff
jne 0x4ffd80
mov edi, 1
xor esi, esi
push esi
push edi
push ebp
push ebx
call fcn.0052ebc0
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x3c]
mov edx, 0xf244
mov dword [ecx], ebx
mov dword [ecx + 4], ebp
mov ax, word [ecx + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ecx + 0x10], ax
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x3c]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x4ffe0b
push eax
call fcn.00519fc0
add esp, 4
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x18]
mov ecx, 1
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 4]
test eax, eax
je 0x4fee42
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
push eax
call fcn.00509150
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [ebp + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*4]
lea ebp, [ebx + eax*8]
mov al, byte [ecx + 0x10]
or al, byte [edi + 0x10]
test al, 1
je 0x4ffebc
mov eax, 0x9000
test word [ebp + 0x10], ax
je 0x4ffeae
push ebp
jmp 0x4ffde0
mov eax, 1
mov word [ebp + 0x10], ax
jmp 0x4ffde8
push ecx
call fcn.00508270
mov ebx, eax
mov esi, edx
push edi
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], esi
call fcn.00508270
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov cl, byte [eax]
cmp cl, 0x66
jne 0x4ffef0
and ebx, edi
and esi, edx
jmp 0x4fff56
cmp cl, 0x67
jne 0x4ffefb
or ebx, edi
or esi, edx
jmp 0x4fff56
mov eax, edi
or eax, edx
je 0x4fff56
test edx, edx
jg 0x4fff2f
jl 0x4fff0b
test edi, edi
jae 0x4fff24
mov al, 0xd1
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4fff2f
jg 0x4fff1d
cmp edi, 0xffffffc0
jbe 0x4fff2f
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4fff75
jg 0x4fff2f
cmp edi, 0x40
jb 0x4fff75
test esi, esi
jg 0x4fff45
jl 0x4fff39
test ebx, ebx
jae 0x4fff45
cmp cl, 0x68
je 0x4fff45
or ebx, 0xffffffff
or esi, ebx
jmp 0x4fff56
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [ebp], ebx
mov ecx, 0xf244
mov dword [ebp + 4], esi
mov ax, word [ebp + 0x10]
and ax, cx
or ax, 4
mov word [ebp + 0x10], ax
jmp 0x4ffde8
movq xmm1, qword [esp + 0xd4]
movd xmm0, edi
cmp cl, 0x68
jne 0x4fff93
psllq xmm1, xmm0
movq qword [esp + 0x2c], xmm1
jmp 0x4fff4e
psrlq xmm1, xmm0
movq qword [esp + 0x2c], xmm1
test esi, esi
jg 0x4fff4e
jl 0x4fffa7
test ebx, ebx
jae 0x4fff4e
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, edi
or edx, 0xffffffff
call fcn.0052ecb0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
or ebx, eax
or esi, edx
jmp 0x4fff56
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00508270
mov esi, eax
mov edi, edx
mov dword [ebx], esi
mov eax, 0xf244
mov dword [ebx + 4], edi
add esp, 4
mov cx, word [ebx + 0x10]
and cx, ax
mov eax, dword [esp + 0x10]
or cx, 4
mov word [ebx + 0x10], cx
mov eax, dword [eax + 8]
cdq
add eax, esi
mov dword [ebx], eax
adc edx, edi
mov dword [ebx + 4], edx
jmp 0x4ffdec
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x50006a
test al, 0x28
jne 0x500040
test al, 2
je 0x500049
push 1
push esi
call fcn.00499ed0
add esp, 8
jmp 0x500049
push esi
call fcn.005082e0
add esp, 4
movzx eax, word [esi + 0x10]
mov ecx, eax
test al, 4
jne 0x50006a
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 8], 0
je 0x506a76
mov ecx, dword [esp + 0x14]
jmp 0x5003dc
mov eax, dword [esp + 0x1c]
and ecx, 0xf244
or ecx, 4
mov word [esi + 0x10], cx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 0x24
lea eax, [edx + eax*8]
je 0x4fee42
push eax
call fcn.00509080
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x5000fd
push esi
call fcn.00508b50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
push dword [esp + 0x74]
movzx eax, byte [edi + 8]
push eax
push esi
call fcn.00508990
jmp 0x502546
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [edi + 0x10]
mov dword [esp + 0x34], edi
mov dword [esp + 0x3c], edx
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov ecx, eax
mov dword [esp + 0x40], eax
and ecx, edx
test cl, 4
je 0x500218
mov ecx, dword [esi + 4]
mov eax, dword [edi + 4]
mov ebp, dword [esi]
mov edx, dword [edi]
cmp ecx, eax
jl 0x5001a4
jg 0x500160
cmp ebp, edx
jbe 0x50019a
mov eax, dword [0x58d608]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x5003d8
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x5c], 1
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp ecx, eax
jg 0x5001de
jl 0x5001a4
cmp ebp, edx
jae 0x5001de
mov eax, dword [0x58d600]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x5003d8
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 0xffffffff
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [0x58d604]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp byte [ebx + eax], 0
jne 0x5003d8
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x40]
mov eax, ebx
or eax, edx
test al, 1
je 0x500297
mov edi, dword [esp + 0x10]
movzx eax, word [edi + 2]
test al, al
jns 0x500268
test cl, 1
je 0x500255
test ebx, 0x100
jne 0x500255
movzx ecx, byte [edi]
mov eax, dword [0x58d604]
mov dword [esp + 0x5c], 0
mov al, byte [ecx + eax]
jmp 0x5003bc
mov eax, ebx
not eax
and eax, 1
lea ecx, [eax*2 - 1]
jmp 0x500364
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test al, 0x10
jne 0x5003d8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], 1
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebp, dword [esp + 0x10]
mov cl, byte [ebp + 2]
and cl, 0x47
cmp cl, 0x43
jb 0x5002de
test al, 2
je 0x500351
mov al, dl
and al, 0x2e
cmp al, 2
jne 0x5002c5
push 0
push edi
call fcn.00499ed0
movzx ebx, word [esi + 0x10]
add esp, 8
mov al, bl
and al, 0x2e
cmp al, 2
jne 0x500351
push 0
push esi
call fcn.00499ed0
add esp, 8
jmp 0x500351
cmp cl, 0x42
jne 0x500351
test al, 2
je 0x500351
test dl, 2
jne 0x500325
test dl, 0x2c
je 0x500325
push 1
push dword [esp + 0x78]
push edi
call fcn.00509620
movzx eax, word [edi + 0x10]
add esp, 0xc
mov ecx, eax
xor ecx, dword [esp + 0x3c]
and ecx, 0xdbf
xor ecx, eax
movzx edx, cx
mov dword [esp + 0x3c], edx
cmp edi, esi
jne 0x500325
mov eax, edx
or eax, 2
movzx ebx, ax
test bl, 2
jne 0x500351
test bl, 0x2c
je 0x500351
push 1
push dword [esp + 0x78]
push esi
call fcn.00509620
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, eax
xor ecx, ebx
and ecx, 0xdbf
xor ecx, eax
movzx ebx, cx
push dword [ebp + 0x10]
push edi
push esi
call fcn.004e8c80
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, eax
movzx eax, dx
mov edi, ecx
mov dword [esp + 0x5c], ecx
movzx ebp, bx
mov dword [esp + 0x40], eax
test ecx, ecx
jns 0x500389
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax]
mov eax, dword [0x58d600]
mov al, byte [ecx + eax]
jmp 0x5003bc
mov ecx, dword [esp + 0x10]
mov ebx, ebp
movzx edx, ax
mov dword [esp + 0x5c], edi
movzx ecx, byte [ecx]
test edi, edi
jne 0x5003a7
mov eax, dword [0x58d604]
mov al, byte [ecx + eax]
jmp 0x5003bc
mov eax, dword [0x58d608]
mov ebx, ebp
mov dword [esp + 0x5c], edi
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x40]
movzx edx, cx
mov ecx, dword [esp + 0x34]
test al, al
mov edi, dword [esp + 0x18]
mov word [esi + 0x10], bx
mov word [ecx + 0x10], dx
je 0x50697c
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ebp, [edx + eax*4]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp dword [esp + 0x5c], 0
je 0x5003d8
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x50042f
xor ebp, ebp
jmp 0x500435
mov ebp, dword [edx - 4]
add ebp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x3c], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], ecx
test eax, eax
jle 0x50697c
lea edi, [edx + 0x14]
test ebp, ebp
je 0x50046c
mov ecx, dword [ebp + esi*4]
jmp 0x50046e
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x28]
push dword [edi]
movzx ebx, byte [esi + eax]
mov eax, dword [esp + 0x44]
and ebx, 1
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x70]
add eax, ecx
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x2c]
push edx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x60], eax
call fcn.004e8c80
mov edx, eax
add esp, 0xc
mov dword [esp + 0x5c], edx
test edx, edx
jne 0x5004c9
mov edx, dword [esp + 0x34]
inc esi
add edi, 4
cmp esi, dword [esp + 0x3c]
jl 0x500462
jmp 0x4ffde8
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x5004f0
mov eax, dword [esp + 0x54]
test byte [eax + 0x10], 1
jne 0x5004ea
mov eax, dword [esp + 0x48]
test byte [eax + 0x10], 1
je 0x5004f0
neg edx
mov dword [esp + 0x5c], edx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test ebx, ebx
je case.0x4fed51.89
neg edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x10]
test ebx, ebx
jns 0x500550
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
jne 0x500575
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
lea esi, [eax - 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x5005f4
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x500632
xor esi, esi
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x500639
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x500677
xor eax, eax
lea edx, [eax + esi*2]
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x2c
jne 0x500681
mov dl, byte [esi + edx + 0x5726e4]
jmp 0x500688
test al, 1
je 0x5005ff
mov esi, 2
jmp 0x5005ba
test al, 8
je 0x500609
movsd xmm0, qword [ecx]
jmp 0x500624
test al, 0x12
je 0x5005b8
push ecx
call fcn.004b8690
mov edx, dword [esp + 0x14]
add esp, 4
fstp qword [esp + 0x2c]
movsd xmm0, qword [esp + 0x2c]
ucomisd xmm0, qword [0x579800]
lahf
test ah, 0x44
jnp 0x5005b8
mov esi, 1
jmp 0x5005ba
test al, 1
je 0x500644
mov eax, 2
jmp 0x5005d8
test al, 8
je 0x50064e
movsd xmm0, qword [ecx]
jmp 0x500665
test al, 0x12
je 0x5005d6
push ecx
call fcn.004b8690
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
add esp, 4
ucomisd xmm0, qword [0x579800]
lahf
test ah, 0x44
jnp 0x5005d6
mov eax, 1
jmp 0x5005d8
mov dl, byte [esi + edx + 0x5726f0]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp dl, 2
jne 0x5006c7
mov ax, word [ebx + ecx*8 + 0x10]
mov edx, 0xf241
mov esi, dword [esp + 0x10]
and ax, dx
or ax, 1
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov esi, dword [esp + 0x10]
movzx eax, dl
cdq
mov dword [ebx + ecx*8], eax
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0xf244
mov ax, word [ebx + ecx*8 + 0x10]
and ax, dx
or ax, 4
movzx eax, ax
mov word [ebx + ecx*8 + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.004fe330
mov ecx, dword [esp + 0x18]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00509150
mov esi, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
lea ecx, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
jne 0x5007e9
push 0
push ecx
call fcn.004fe330
add esp, 8
mov ecx, 0x9000
neg eax
sbb eax, eax
inc eax
test word [esi + 0x10], cx
je 0x5007bc
push 0
push eax
push esi
call fcn.0051b570
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, 4
mov dword [esi + 4], 0
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x500818
push esi
call fcn.00519fc0
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ecx, dword [esp + 0x14]
mov eax, 1
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x500872
push esi
call fcn.00519fc0
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x50087b
mov eax, 1
mov word [esi + 0x10], ax
test byte [edi + 0x10], 1
jne 0x500937
mov eax, 4
push edi
mov word [esi + 0x10], ax
call fcn.00508270
not eax
not edx
mov dword [esi], eax
add esp, 4
mov dword [esi + 4], edx
jmp 0x4ffdec
mov edi, dword [ecx + 0xd0]
test edi, edi
je 0x50091b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [edi + 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x502df1
bts edx, ecx
mov ecx, dword [esp + 0x14]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [ecx + 0x68]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 4]
je 0x506973
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + 4]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
push dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004fe330
add esp, 8
test eax, eax
jne 0x5003d4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp dword [edx + 0xc], eax
sete al
push eax
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004fe330
add esp, 8
test eax, eax
jne 0x4fefad
jmp 0x5003d4
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
jne 0x5003d8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
js 0x500a3a
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edx
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x500a31
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x500a28
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x500a60
movzx eax, byte [eax + 0x5726fc]
jmp 0x500a63
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x500a57
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
movzx eax, word [ecx + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x571a38]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
test word [esi + 2], ax
jne 0x5003d8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x500adb
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x500adb
mov eax, dword [edx + 8]
push 0
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.00509150
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x10]
mov edx, 0x9000
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test word [ebx + eax*8 + 0x10], dx
lea eax, [ebx + eax*8]
je 0x500b18
push eax
call fcn.00519fc0
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov esi, dword [esp + 0x10]
mov edx, 1
mov word [eax + 0x10], dx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 0x10], 1
je 0x5003d8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x4fee3e
cmp byte [eax + 2], 0
je 0x4fee3e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x500ba9
push eax
call fcn.00519fc0
add esp, 4
jmp 0x5003d4
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x5003d4
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edi + 8]
mov dword [esp + 0x48], ecx
nop
mov eax, dword [esi + 0x20]
mov ebp, dword [esi + 0x48]
mov dword [esp + 0x50], ebp
cmp eax, dword [ebx + 0x1c]
je 0x500c10
cmp byte [esi + 2], 0
jne 0x500c81
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x500c09
mov eax, dword [esi + 0x10]
test eax, eax
je 0x500c39
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x500c39
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
jmp 0x500bcb
cmp byte [edi], 0
je 0x500c50
jmp 0x500c1c
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x500e55
push esi
call fcn.00508230
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x50372f
mov ecx, dword [esp + 0x48]
jmp 0x500bd0
push esi
call fcn.00507b20
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x507070
push edi
call fcn.004af720
mov eax, dword [edi + 0x2c]
add esp, 4
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x74]
movzx ecx, word [edi + 0x30]
mov eax, dword [eax + 0x3c]
sub eax, dword [edi + 0x28]
cmp ecx, eax
jle 0x500c79
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [esi + 0x54], ecx
mov ecx, dword [edi + 0x28]
jmp 0x500caa
cmp byte [esi], 3
jne 0x500de5
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x500de5
mov edx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov ecx, dword [edx + ecx*8 + 8]
mov dword [esi + 0x4c], ecx
mov eax, dword [ebx + 0x1c]
lea ebx, [esi + 0x34]
mov dword [esi + 0x20], eax
movzx eax, byte [ecx]
mov dword [ebp], eax
cmp eax, 0x80
jae 0x500cca
mov eax, 1
jmp 0x500cd9
push ebp
push dword [esi + 0x4c]
call fcn.004e4760
add esp, 8
movzx eax, al
mov ecx, ebx
lea edi, [esi + 0x3e]
mov dword [ecx], eax
xor eax, eax
mov word [edi], ax
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp]
jae 0x500de0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 0
mov eax, dword [ebp]
cmp eax, 0x18003
ja 0x500fd7
cmp eax, dword [esi + 0x50]
ja 0x500fd7
mov ecx, dword [esp + 0x48]
movzx eax, word [edi]
cmp eax, ecx
ja 0x501048
mov eax, dword [esi + 0x34]
lea ebx, [esi + 0x34]
cmp eax, dword [ebp]
jae 0x500ff8
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x6c], edx
test edx, edx
jne 0x500d8a
xorps xmm0, xmm0
lea eax, [esp + 0x150]
push eax
movups xmmword [esp + 0x154], xmm0
movups xmmword [esp + 0x164], xmm0
movq qword [esp + 0x174], xmm0
push dword [ebp]
push dword [esi + 0x2c]
call fcn.00508d20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov edx, dword [esp + 0x158]
mov dword [esp + 0x6c], edx
movzx ecx, word [edi]
mov eax, dword [esp + 0x50]
mov edi, dword [ebx]
add edi, edx
mov dword [esp + 0x40], ecx
mov ebp, dword [ebp + ecx*4]
mov eax, dword [eax]
add eax, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], eax
lea eax, [ecx + 0x17]
lea eax, [esi + eax*4]
mov dword [esp + 0x3c], eax
movzx ebx, byte [edi]
mov dword [esp + 0x34], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x500e5d
movzx eax, byte [ebx + 0x571530]
inc edi
cdq
add ebp, eax
adc dword [esp + 0x38], edx
jmp 0x500ea1
mov edx, dword [esi + 0x4c]
jmp 0x500d86
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x500e2b
push eax
call fcn.00519fc0
mov edi, dword [esp + 0x1c]
add esp, 4
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x18]
mov ecx, 1
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov word [eax + 0x10], cx
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
lea edi, [esi + 0x3e]
jmp 0x500d1a
lea eax, [esp + 0x34]
push eax
push edi
call fcn.004e4760
mov ebx, dword [esp + 0x3c]
add esp, 8
movzx eax, al
add edi, eax
mov eax, dword [esp + 0x3c]
mov dword [eax], ebx
cmp ebx, 0x80
jb 0x500e89
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x500e90
movzx eax, byte [ebx + 0x571530]
mov edx, dword [esp + 0x38]
add ebp, eax
mov ecx, dword [esp + 0x40]
adc edx, 0
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x50]
inc ecx
mov eax, dword [esp + 0x3c]
add eax, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
mov dword [edx + ecx*4], ebp
mov edx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x48]
ja 0x500ed2
cmp edi, dword [esp + 0x54]
jb 0x500db7
mov eax, dword [esp + 0x54]
jmp 0x500ede
mov eax, dword [esp + 0x54]
cmp edi, eax
jb 0x500f84
cmp edi, eax
ja 0x500f97
cmp ebp, dword [esi + 0x50]
jne 0x500f97
test edx, edx
jne 0x500f97
mov ebp, dword [esp + 0x50]
sub edi, dword [esp + 0x6c]
mov word [esi + 0x3e], cx
mov dword [esi + 0x34], edi
cmp dword [esi + 0x4c], 0
jne 0x500f33
test dword [esp + 0x160], 0x9000
jne 0x500f23
cmp dword [esp + 0x168], 0
je 0x500f33
lea eax, [esp + 0x150]
push eax
call fcn.00519f80
add esp, 4
mov ecx, dword [esp + 0x48]
movzx eax, word [esi + 0x3e]
cmp eax, ecx
ja 0x50104c
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
cmp byte [edi + 1], 0xf6
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x9000
jne 0x501032
mov edx, dword [edi + 0x10]
test word [ecx + 0x10], ax
je 0x500fff
push 0x2000
push edx
push ecx
call fcn.00519250
add esp, 0xc
jmp 0x4ffde8
test edx, edx
jb 0x500ef7
ja 0x500f97
cmp ebp, dword [esi + 0x50]
jbe 0x500ef7
mov ebp, dword [esp + 0x50]
cmp dword [ebp], 0
jne 0x500faa
xor ecx, ecx
mov edi, eax
jmp 0x500efb
cmp dword [esi + 0x4c], 0
jne 0x500fd7
test dword [esp + 0x160], 0x9000
jne 0x500fc7
cmp dword [esp + 0x168], 0
je 0x500fd7
lea eax, [esp + 0x150]
push eax
call fcn.00519f80
add esp, 4
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x506a80
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ebx + eax*4]
mov dword [esp + 0x10], edi
jmp 0x4ffde8
xor ebx, ebx
jmp 0x500f37
movups xmm0, xmmword [edx]
mov ebp, dword [esp + 0x24]
mov ebx, 0x2000
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
test word [edx + 0x10], bx
jne 0x503604
mov edx, 0xafff
and ax, dx
or ax, bx
mov word [ecx + 0x10], ax
jmp 0x4ffdec
test word [ecx + 0x10], ax
je 0x50103e
push ecx
jmp 0x4ffde0
mov eax, 1
jmp 0x4ffda9
mov ebx, dword [esi + ecx*4 + 0x5c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x501079
push edi
call fcn.00519fc0
mov ecx, dword [esp + 0x4c]
add esp, 4
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x54]
cmp eax, dword [ebp + ecx*4 + 4]
jb 0x50114a
mov eax, dword [esp + 0x50]
mov ebp, dword [esi + 0x4c]
add ebp, dword [eax + ecx*4]
cmp ebx, 0xc
jae 0x5010a5
push edi
push ebx
push ebp
call fcn.0050aa00
add esp, 0xc
jmp 0x4ffdad
mov al, byte [esp + 0x4c]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea eax, [esi + 2]
cmp dword [edi + 0x18], eax
jge 0x501114
mov ecx, dword [esp + 0x24]
cmp esi, dword [ecx + 0x78]
jg 0x5011d8
push 0
push eax
mov ecx, 1
push edi
mov word [edi + 0x10], cx
call fcn.00508d80
add esp, 0xc
test eax, eax
je 0x50111a
mov ebp, dword [esp + 0x24]
push ebp
call fcn.004e9170
mov ebp, dword [esp + 0x18]
push str.out_of_memory
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x1c]
mov edx, 7
mov ebx, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push ebp
push dword [edi + 8]
call fcn.00532150
mov eax, dword [edi + 8]
add esp, 0xc
and ebx, 1
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [eax + esi + 1], 0
mov ax, word [ebx*2 + 0x572708]
mov word [edi + 0x10], ax
jmp 0x4ffdad
mov al, byte [esp + 0x4c]
mov byte [edi + 0x12], al
mov al, byte [edx + 2]
and al, 0xc0
je 0x50116a
cmp al, 0x80
je 0x501184
cmp ebx, 0xc
jb 0x50116a
test bl, 1
je 0x501184
cmp al, 0xc0
je 0x501184
cmp ebx, 0x80
jb 0x501179
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x501180
movzx eax, byte [ebx + 0x571530]
test eax, eax
jne 0x501198
push edi
push ebx
push 0x571828
call fcn.0050aa00
add esp, 0xc
jmp 0x4ffdad
mov eax, dword [esp + 0x14]
push edi
push dword [esp + 0x8c]
push dword [eax + 0x1c]
push 0
push dword [ebp + ecx*4]
push ebx
push ecx
push esi
call fcn.00519270
mov edx, eax
add esp, 0x20
mov dword [esp + 0x18], edx
test edx, edx
je 0x4ffdad
cmp edx, 7
je 0x5010e2
cmp edx, 0x12
jne 0x506cb8
mov ebp, dword [esp + 0x14]
push str.string_or_blob_too_big
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x18]
mov edx, 0x12
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x6c], edx
lea eax, [eax + eax*4]
mov ebx, dword [edx + 4]
lea esi, [ecx + eax*8]
xor ecx, ecx
mov dword [esp + 0x2c], ebx
xor eax, eax
mov dword [esp + 0x34], ecx
cmp ax, word [edx + 0x22]
jge 0x4fefad
add ebx, 8
mov dword [esp + 0x40], ebx
nop dword [eax]
movzx eax, word [ebx + 6]
test al, 0x60
je 0x50125e
test al, 0x20
jne 0x501316
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x501313
push dword [esp + 0x74]
movzx eax, byte [ebx]
push eax
push esi
call fcn.00499e60
movzx eax, word [esi + 0x10]
add esp, 0xc
mov ecx, eax
mov ebp, eax
mov edi, ecx
test cl, 1
jne case.default.0x501297
mov eax, dword [ebx - 4]
shr eax, 4
and eax, 0xf
lea edx, [eax - 2]
cmp edx, 4
ja case.default.0x501297
jmp dword [edx*4 + 0x507584]
test cl, 0x10
jmp 0x501305
test cl, 4
jmp 0x501305
test cl, 2
jmp 0x501305
test cl, 4
je 0x501302
mov edi, dword [esi]
mov edx, edi
mov ebx, dword [esi + 4]
add edx, 0
mov eax, ebx
adc eax, 0x8000
cmp eax, 0xffff
ja 0x5012d9
jb 0x5012d1
cmp edx, 0xffffffff
ja 0x5012d9
or ecx, 0x20
movzx eax, cx
jmp 0x5012ec
mov edx, ebx
mov ecx, edi
call fcn.0052e900
or ebp, 8
movsd qword [esi], xmm0
movzx eax, bp
mov edi, 0x10
mov edx, esi
and eax, 0xfffb
mov word [edx + edi], ax
mov ebx, dword [esp + 0x40]
jmp case.default.0x501297
test cl, 0x28
je 0x506a9c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x6c]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add ebx, 0x10
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], ebx
cmp ecx, eax
jl 0x501240
jmp 0x4ffdad
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [ebx]
push dword [esp + 0x74]
mov byte [esp + 0xa0], al
push dword [esp + 0xa0]
push esi
call fcn.00499e60
add esp, 0xc
cmp byte [ebx], 0x45
jne 0x5013bb
movzx ecx, word [esi + 0x10]
mov edi, ecx
test cl, 4
je 0x5013bb
mov ebp, dword [esi]
mov edx, ebp
mov eax, dword [esi + 4]
add edx, 0
adc eax, 0x8000
cmp eax, 0xffff
ja 0x5013a0
jb 0x501391
cmp edx, 0xffffffff
ja 0x5013a0
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp 0x5013bb
mov edx, dword [esi + 4]
mov ecx, ebp
call fcn.0052e900
and edi, 0xfff9
movsd qword [esi], xmm0
or edi, 8
mov word [esi + 0x10], di
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x503600
add esi, 0x28
jmp 0x501349
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x28]
movlpd qword [esp + 0x40], xmm0
mov dword [esp + 0x38], 0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
movlpd qword [esp + 0x6c], xmm0
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x34], ebx
lea ebp, [eax + eax*4]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x2c], ebp
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x54], eax
test edi, edi
je 0x501454
lea esi, [ebx + 0x10]
nop dword [eax]
push dword [esp + 0x74]
movzx eax, byte [edi]
push eax
lea eax, [esi - 0x10]
push eax
call fcn.00499e60
add esp, 0xc
cmp byte [edi], 0x45
jne 0x50144b
movzx eax, word [esi]
test al, 4
je 0x50144b
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x501420
mov eax, dword [esp + 0x70]
lea ebp, [ebp*8 - 0xc]
mov edi, dword [esp + 0x40]
add ebp, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x6c], eax
nop dword [eax]
movzx eax, word [ebp - 0xc]
mov edx, eax
mov ecx, eax
mov dword [esp + 0x40], ecx
test dl, 1
je 0x5014a8
mov ecx, dword [esp + 0x38]
and edx, 0x400
inc ecx
neg edx
sbb edx, edx
and edx, 0xa
jmp 0x5016c9
test dl, 0x24
je 0x50161d
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
test eax, eax
jg 0x5014c9
jl 0x5014c1
test esi, esi
jae 0x5014c9
mov ecx, esi
not eax
not ecx
jmp 0x5014cb
mov ecx, esi
inc dword [esp + 0x38]
test eax, eax
ja 0x5015a5
jb 0x5014de
cmp ecx, 0x7f
ja 0x501523
mov eax, esi
and eax, 1
cmp eax, esi
jne 0x501507
xor eax, eax
cmp eax, dword [ebp - 0x18]
jne 0x501507
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x95], 4
jb 0x501507
lea edx, [ecx + 8]
mov ecx, dword [esp + 0x38]
jmp 0x5016cd
mov ecx, dword [esp + 0x38]
add edi, 1
mov dword [esp + 0x50], edi
mov edx, 1
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016cd
test eax, eax
ja 0x5015a5
jb 0x501535
cmp ecx, 0x7fff
ja 0x501551
mov ecx, dword [esp + 0x38]
add edi, 2
mov dword [esp + 0x50], edi
mov edx, 2
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016cd
test eax, eax
ja 0x5015a5
jb 0x50155f
cmp ecx, 0x7fffff
ja 0x50157b
mov ecx, dword [esp + 0x38]
add edi, 3
mov dword [esp + 0x50], edi
mov edx, 3
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016cd
test eax, eax
ja 0x5015a5
jb 0x501589
cmp ecx, 0x7fffffff
ja 0x5015a5
mov ecx, dword [esp + 0x38]
add edi, 4
mov dword [esp + 0x50], edi
mov edx, 4
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016cd
cmp eax, 0x7fff
ja 0x5015cf
jb 0x5015b3
cmp ecx, 0xffffffff
ja 0x5015cf
mov ecx, dword [esp + 0x38]
add edi, 6
mov dword [esp + 0x50], edi
mov edx, 5
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016cd
add edi, 8
mov dword [esp + 0x50], edi
adc ebx, 0
mov dword [esp + 0x48], ebx
test dl, 0x20
je 0x50160f
mov edx, dword [ebp - 0x18]
mov ecx, esi
call fcn.0052e900
mov eax, dword [esp + 0x40]
mov edx, 7
mov ecx, dword [esp + 0x38]
and eax, 0xffdf
or eax, 8
movsd qword [ebp - 0x1c], xmm0
mov word [ebp - 0xc], ax
jmp 0x5016cd
mov ecx, dword [esp + 0x38]
mov edx, 6
jmp 0x5016cd
test dl, 8
je 0x50163f
mov ecx, dword [esp + 0x38]
mov edx, 7
inc ecx
add edi, 8
mov dword [esp + 0x50], edi
adc ebx, 0
mov dword [esp + 0x48], ebx
jmp 0x5016c9
mov ebx, dword [ebp - 0x10]
mov eax, edx
shr eax, 1
and eax, 1
lea esi, [ebx + 6]
lea esi, [eax + esi*2]
test edx, 0x400
je 0x50168e
mov ecx, dword [ebp - 0x1c]
lea edi, [ebp - 0x1c]
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x48]
lea esi, [esi + ecx*2]
je 0x50167f
push edi
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e2
add ebx, dword [edi]
jmp 0x50168a
mov eax, ecx
cdq
add dword [esp + 0x6c], eax
adc dword [esp + 0x3c], edx
mov edi, dword [esp + 0x50]
add edi, ebx
mov edx, esi
mov ebx, dword [esp + 0x48]
adc ebx, 0
mov dword [esp + 0x50], edi
shr esi, 7
xor ecx, ecx
mov eax, esi
mov dword [esp + 0x48], ebx
or eax, ecx
mov edi, 1
je 0x5016bf
shrd esi, ecx, 7
inc edi
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x5016b1
mov ecx, dword [esp + 0x38]
add ecx, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
mov eax, ebp
mov dword [eax], edx
lea eax, [ebp - 0x1c]
cmp eax, dword [esp + 0x34]
je 0x5016e2
sub ebp, 0x28
jmp 0x501480
cmp ecx, 0x7e
jle 0x501746
mov eax, ecx
mov ebx, 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x50170e
nop
shrd esi, edx, 7
inc ebx
shr edx, 7
mov eax, esi
or eax, edx
jne 0x501700
mov eax, dword [esp + 0x38]
mov edi, 1
add eax, ebx
mov dword [esp + 0x38], eax
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x50173e
nop dword [eax]
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x501730
mov ecx, dword [esp + 0x38]
cmp ebx, edi
jge 0x50174b
inc ecx
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x54]
mov eax, ecx
mov ebp, dword [esp + 0x6c]
cdq
mov esi, eax
mov ecx, edx
add esi, dword [esp + 0x50]
mov ebx, dword [ebx + 0x18]
mov edi, esi
adc ecx, dword [esp + 0x48]
mov eax, ebx
add edi, ebp
cdq
adc ecx, dword [esp + 0x3c]
cmp ecx, edx
jg 0x50177a
jl 0x5017b5
cmp edi, eax
jbe 0x5017b5
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x78]
cdq
cmp ecx, edx
jg 0x5011d8
jl 0x501794
cmp edi, eax
ja 0x5011d8
cmp ebx, esi
jge 0x5017b5
push 0
push esi
push dword [esp + 0x5c]
call fcn.00508d80
add esp, 0xc
test eax, eax
jne 0x5010e2
mov ecx, dword [esp + 0x54]
jmp 0x5017bf
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0x20]
mov dword [ecx + 8], eax
mov eax, 0x10
mov dword [ecx + 0xc], esi
mov word [ecx + 0x10], ax
mov eax, ebp
or eax, dword [esp + 0x3c]
je 0x5017de
mov eax, 0x410
mov dword [ecx], ebp
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x38]
mov ebx, dword [ecx + 8]
lea esi, [ebx + eax]
cmp eax, 0x80
jge 0x5017f4
mov byte [ebx], al
inc ebx
jmp 0x501802
cdq
push edx
push eax
push ebx
call fcn.004f1a40
add esp, 0xc
add ebx, eax
mov edi, dword [esp + 0x34]
add edi, 0xc
nop dword [eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x501849
mov byte [ebx], dl
inc ebx
test edx, edx
je 0x501884
movzx edx, byte [edx + 0x571530]
mov ecx, dword [edi - 0xc]
mov ebp, edx
mov eax, dword [edi - 8]
sub edx, 1
mov byte [edx + esi], cl
je 0x501845
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + esi], cl
jne 0x501836
add esi, ebp
jmp 0x501884
cmp edx, 0x80
jae 0x501861
mov byte [ebx], dl
inc ebx
cmp edx, 0xe
jb 0x501884
mov eax, dword [edi]
test eax, eax
jle 0x501884
jmp 0x501875
push 0
push edx
push ebx
call fcn.004f1a40
add ebx, eax
add esp, 0xc
mov eax, dword [edi]
test eax, eax
je 0x501884
push eax
push dword [edi - 4]
push esi
call fcn.00532150
add esp, 0xc
add esi, dword [edi]
mov eax, dword [esp + 0x2c]
lea eax, [eax*8 - 0x1c]
add eax, dword [esp + 0x34]
cmp edi, eax
je 0x503600
add edi, 0x28
jmp 0x501810
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp dword [edx + 0xc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
push esi
je 0x5018cf
call fcn.004d04f0
add esp, 4
mov ebx, eax
mov ebp, edx
jmp 0x5019fb
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x44], xmm0
call fcn.004b8cc0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
cmp edx, 0x10
jne 0x50190d
xorps xmm0, xmm0
xor edi, edi
movlpd qword [esp + 0x2c], xmm0
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x18], edi
jmp 0x5019fb
test edx, edx
jne 0x5019e7
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
nop dword [eax]
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x128], 0
jne 0x5019e7
mov edi, dword [esi + 0x74]
mov cl, byte [edi + 8]
test cl, cl
jne 0x501940
cmp byte [edi + 1], cl
jne 0x50199a
movzx eax, word [edi + 0x18]
cdq
add ebx, eax
adc ebp, edx
test cl, cl
je 0x50199a
nop dword [eax]
mov dl, byte [esi + 0x44]
test dl, dl
je 0x501a31
movsx ecx, dl
xor eax, eax
mov word [esi + 0x32], ax
dec dl
and byte [esi + 1], 0xf9
mov ax, word [esi + ecx*2 + 0x46]
mov word [esi + 0x46], ax
mov byte [esi + 0x44], dl
mov eax, dword [esi + ecx*4 + 0x74]
mov dword [esi + 0x74], eax
push dword [edi + 0x48]
call fcn.004eb270
mov edi, dword [esi + 0x74]
add esp, 4
movzx eax, word [esi + 0x46]
cmp ax, word [edi + 0x18]
jae 0x501950
inc eax
mov word [esi + 0x46], ax
movzx ecx, word [esi + 0x46]
movzx eax, word [edi + 0x18]
cmp ecx, eax
jne 0x5019b3
movzx ecx, byte [edi + 9]
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax + 8]
jmp 0x5019cd
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x1a]
movzx ecx, cx
and ecx, eax
mov eax, dword [edi + 0x38]
mov eax, dword [ecx + eax]
bswap eax
push eax
push esi
call fcn.004b89a0
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
je 0x501920
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test edx, edx
jne 0x506cb8
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x501a42
push eax
call fcn.004bbad0
add esp, 4
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x24]
jmp 0x5047f5
push esi
call fcn.004b8cc0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x5019ef
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax], ebx
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0x24]
jmp 0x5047f5
mov edx, dword [esp + 0x10]
mov edi, dword [edx + 4]
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x54], edi
test edi, edi
jne 0x501b36
cmp dword [ebp + 0xc4], edi
jg 0x506aef
test ebx, ebx
jne 0x501a83
xor esi, esi
jmp 0x501a97
mov esi, ebx
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x501a88
sub esi, ecx
and esi, 0x3fffffff
mov eax, dword [ebp + 0x1fc]
add eax, dword [ebp + 0x1f8]
push eax
push 0
push ebp
call fcn.0050c2a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
push edx
lea eax, [esi + 0x21]
push eax
push ebp
call fcn.004d5b60
mov edi, eax
add esp, 0xc
test edi, edi
je 0x501db7
lea ecx, [esi + 1]
push ecx
lea edx, [edi + 0x20]
push ebx
push edx
mov dword [edi], edx
call fcn.00532150
add esp, 0xc
cmp byte [ebp + 0x55], 0
je 0x501af8
mov byte [ebp + 0x55], 0
mov byte [ebp + 0x5d], 1
jmp 0x501afe
inc dword [ebp + 0x1f8]
mov eax, dword [ebp + 0x1ec]
mov dword [edi + 0x18], eax
mov dword [ebp + 0x1ec], edi
mov eax, dword [ebp + 0x200]
mov ecx, dword [ebp + 0x204]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
jmp 0x501db7
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov esi, dword [edi + 0x1ec]
test esi, esi
je 0x501b61
push ebx
push dword [esi]
call fcn.004f93b0
add esp, 8
test eax, eax
je 0x501b7a
mov esi, dword [esi + 0x18]
inc ebp
test esi, esi
jne 0x501b46
mov ecx, dword [esp + 0x14]
push ebx
push str.no_such_savepoint:__s
push ecx
call fcn.004fec10
add esp, 0xc
mov edx, 1
jmp 0x506cb4
cmp dword [edi + 0xc4], 0
mov ecx, dword [esp + 0x54]
jle 0x501b90
cmp ecx, 1
je 0x506b07
cmp dword [esi + 0x18], 0
jne 0x501bf7
cmp byte [edi + 0x5d], 0
je 0x501bf7
mov ebx, 1
mov dword [esp + 0x34], ebx
cmp ecx, ebx
jne 0x501bff
push ebx
push dword [esp + 0x18]
call fcn.004fe510
mov edi, eax
add esp, 8
test edi, edi
jne 0x5071e4
mov edi, dword [esp + 0x24]
push dword [esp + 0x14]
mov byte [edi + 0x55], bl
call fcn.00507e30
add esp, 4
cmp eax, 5
je 0x506b42
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506b2f
mov byte [edi + 0x5d], dl
jmp 0x501d06
mov dword [esp + 0x34], 0
mov eax, dword [edi + 0x1f8]
sub eax, ebp
lea ebp, [eax - 1]
mov dword [esp + 0x2c], ebp
cmp ecx, 2
jne 0x501c6c
mov eax, dword [edi + 0x18]
xor ebx, ebx
and eax, 1
mov dword [esp + 0x40], eax
cmp dword [edi + 0x14], ebx
jle 0x501c74
mov ebp, eax
mov eax, dword [esp + 0x24]
xor ebp, 1
xor edi, edi
nop
mov eax, dword [eax + 0x10]
push ebp
push 0x204
push dword [eax + edi + 4]
call fcn.004d10c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov eax, dword [esp + 0x24]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x501c30
mov ebp, dword [esp + 0x2c]
mov edi, eax
mov ecx, dword [esp + 0x54]
jmp 0x501c78
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x18]
xor ebx, ebx
cmp dword [edi + 0x14], ebx
jle 0x501cb7
mov eax, dword [esp + 0x24]
xor edi, edi
mov eax, dword [eax + 0x10]
push ebp
push ecx
push dword [eax + edi + 4]
call fcn.004d0560
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov eax, dword [esp + 0x24]
inc ebx
mov ecx, dword [esp + 0x54]
add edi, 0x10
cmp ebx, dword [eax + 0x14]
jl 0x501c85
mov edi, eax
cmp dword [esp + 0x40], 0
je 0x501cfa
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x501ce9
nop word [eax + eax]
mov eax, dword [ecx + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x501cd0
push edi
call fcn.004f28b0
mov edx, dword [esp + 0x1c]
add esp, 4
or dword [edi + 0x18], 1
test edx, edx
jne 0x506cb8
mov ebx, dword [esp + 0x34]
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
je 0x501d33
mov eax, dword [ecx + 0x18]
push ecx
push edi
mov dword [edi + 0x1ec], eax
call fcn.004d5a50
dec dword [edi + 0x1f8]
add esp, 8
mov ecx, dword [edi + 0x1ec]
cmp ecx, esi
jne 0x501d10
mov edi, dword [esp + 0x54]
cmp edi, 1
jne 0x501d61
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x18]
push esi
mov esi, ecx
push esi
mov dword [ecx + 0x1ec], eax
call fcn.004d5a50
add esp, 8
test ebx, ebx
jne 0x501db5
dec dword [esi + 0x1f8]
jmp 0x501d92
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [edx + 0x200], eax
mov dword [edx + 0x204], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [edx + 0x208], eax
mov dword [edx + 0x20c], ecx
test ebx, ebx
je 0x501d92
cmp edi, 2
jne 0x501db1
push ebp
mov ebp, dword [esp + 0x28]
push edi
push ebp
call fcn.0050c2a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
jmp 0x501db7
mov ebp, edx
jmp 0x501db7
mov ebp, esi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp byte [ecx + 0x97], 3
je 0x506b75
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], 0
mov edi, dword [ebx + 8]
test edi, edi
je 0x501e0e
mov edx, dword [ebp + 0x20]
mov eax, edx
mov ecx, dword [ebp + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x506b81
mov ebp, dword [ebx + 4]
mov ebx, dword [esp + 0x24]
shl ebp, 4
add ebp, dword [ebx + 0x10]
mov esi, dword [ebp + 4]
test esi, esi
je 0x501f26
lea eax, [esp + 0x34]
push eax
push edi
push esi
call fcn.004cd930
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506bb4
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x98], 0x20
je 0x501f36
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], edx
je 0x501f36
cmp byte [ebx + 0x55], dl
je 0x501e73
cmp dword [ebx + 0xc0], 1
jle 0x501f36
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x501e8f
inc dword [ebx + 0x1fc]
mov eax, dword [ebx + 0x1f8]
add eax, dword [ebx + 0x1fc]
mov dword [ecx + 0x30], eax
dec eax
push eax
push 0
push ebx
call fcn.0050c2a0
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x501efe
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x14]
mov ebx, dword [esi + 4]
mov edi, dword [eax + 0x30]
je 0x501ec6
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x501ec6
push esi
call fcn.0049d7c0
add esp, 4
mov eax, dword [ebx]
cmp edi, dword [eax + 0x68]
jle 0x501edf
cmp byte [eax + 6], 0
je 0x501edf
push edi
push eax
call fcn.004bc240
add esp, 8
jmp 0x501ee1
xor eax, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x18], eax
je 0x501efa
add dword [esi + 0xc], 0xffffffff
jne 0x501efa
push esi
call fcn.00516c80
add esp, 4
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x204]
mov dword [edx + 0x48], eax
mov dword [edx + 0x4c], ecx
mov eax, dword [ebx + 0x208]
mov ecx, dword [ebx + 0x20c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x506cb8
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x501f5d
mov eax, dword [esp + 0x34]
cmp eax, dword [edi + 0xc]
jne 0x506beb
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edi + 0x10]
jne 0x506beb
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
push dword [edx + 0xc]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.004ce8f0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x501ff1
push ecx
call fcn.004bbad0
mov esi, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0xd4]
add esp, 4
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov esi, dword [esp + 0x10]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0xd0]
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebp + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.004d11b0
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x5020d7
movzx eax, word [edi + 2]
mov ecx, dword [edi + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
or dword [ebp + 0x18], 1
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x5020b5
mov esi, dword [edi + 8]
cmp byte [esi + 0x2b], 0
jne 0x5020af
mov esi, dword [esi + 0x30]
test esi, esi
je 0x5020af
push dword [esi + 0x1c]
push ebp
call fcn.004acd50
mov dword [esi + 0x1c], 0
push dword [esi + 0x20]
push ebp
call fcn.004acd50
mov dword [esi + 0x20], 0
add esp, 0x10
mov esi, dword [esi + 4]
test esi, esi
jne 0x502085
mov edi, dword [edi]
test edi, edi
jne 0x502075
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], 1
jne 0x5020e7
push 0
push ebp
call fcn.004d7fb0
mov ecx, dword [esp + 0x1c]
add esp, 8
and dword [ecx + 0x98], 0xfffffffc
jmp 0x5020eb
cmp eax, 2
jne 0x5020b9
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
jmp 0x5020b9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov eax, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x502147
mov eax, dword [esi + 0x38]
cmp eax, dword [edi + 8]
jne 0x502147
push dword [esi + 0x2c]
call fcn.004cd9a0
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x502255
mov edi, dword [esp + 0x10]
jmp 0x50214b
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x98]
and al, 3
cmp al, 1
je 0x506c79
mov ecx, dword [esp + 0x24]
xor ebp, ebp
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
mov dword [esp + 0x40], eax
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
cmp dl, 0x71
jne 0x5021a1
mov eax, dword [eax + 0xc]
movzx edi, word [edi + 2]
mov ecx, dword [esp + 0x14]
and edi, 8
or edi, 4
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x95]
jae 0x5021a3
mov byte [ecx + 0x95], al
jmp 0x5021a3
xor edi, edi
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 0x10
je 0x5021df
mov ecx, dword [esp + 0x28]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.00508270
mov ebx, eax
add esp, 4
mov dword [esi], ebx
mov eax, 0xf244
mov dword [esi + 4], edx
mov cx, word [esi + 0x10]
and cx, ax
or cx, 4
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x10]
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x5021ef
mov ebp, dword [ecx + 0x10]
movzx eax, word [ebp + 8]
jmp 0x5021fa
cmp al, 0xfd
jne 0x5021f8
mov eax, dword [ecx + 0x10]
jmp 0x5021fa
mov eax, ebp
push 0
push eax
push dword [ecx + 4]
push dword [esp + 0x20]
call fcn.00498490
mov esi, eax
add esp, 0x10
test esi, esi
je 0x5010e2
mov eax, dword [esp + 0x40]
mov byte [esi + 1], al
mov byte [esi + 2], 1
or dword [esi + 8], 4
mov dword [esi + 0x38], ebx
push dword [esi + 0x2c]
push ebp
push edi
push ebx
push dword [esp + 0x44]
call fcn.004ce350
mov edi, dword [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x30], ebp
mov edx, eax
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp byte [edi + 1], 0xf8
setne al
mov byte [esi + 4], al
mov cl, byte [edi + 2]
mov eax, dword [esi + 0x2c]
and cl, 3
mov byte [eax + 3], cl
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
push 0
mov ecx, dword [edx + 8]
mov eax, dword [ebx + 0x60]
mov edi, dword [eax + ecx*4]
movsx eax, word [edi + 0x3c]
push eax
push dword [edx + 4]
push ebx
call fcn.00498490
mov esi, eax
add esp, 0x10
test esi, esi
je 0x5010e6
mov byte [esi + 2], 1
mov edx, dword [esi + 8]
or edx, 1
mov dword [esi + 8], edx
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov ecx, dword [edi + 8]
xor ecx, edx
and ecx, 4
xor ecx, edx
mov dword [esi + 8], ecx
or ecx, 8
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov dword [esi + 8], ecx
or dword [edi + 8], 8
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 4
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.004ce350
mov esi, dword [esp + 0x24]
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 0x14
mov dword [esp + 0x18], edi
mov ecx, ebx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x50234f
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 8], 0x5853d0
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x5023c7
test byte [esi + 8], 8
jne 0x5023c7
movsx eax, word [esi + 0x3c]
cmp dword [edi + 8], eax
jg 0x5023c7
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
push 0
push dword [esi + 0x38]
push dword [esi + 0x10]
call fcn.004cda20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], edx
test edx, edx
jne 0x506cb8
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
push 0
push dword [edi + 8]
push ecx
push edx
call fcn.00498490
mov esi, eax
add esp, 0x10
test esi, esi
je 0x5010e6
or dword [esi + 8], 1
lea ebp, [esi + 0x10]
movzx ecx, word [edi + 2]
mov eax, dword [esp + 0x24]
or ecx, 5
push 0x41e
push ecx
push ebp
push eax
push 0
push dword [eax]
call fcn.004cfa20
mov edx, eax
add esp, 0x18
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov eax, dword [ebp]
cmp byte [eax + 9], dl
jne 0x50243f
mov cl, byte [eax + 8]
test cl, cl
je 0x50243f
cmp cl, 1
je 0x50243f
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push dword [eax + 0x1f8]
push dword [ecx]
call fcn.004ea910
add esp, 8
jmp 0x50244c
push 0
push 1
push eax
call fcn.0049c780
add esp, 0xc
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x5024d0
mov ebx, dword [edi + 0x10]
lea edi, [esi + 0x38]
mov dword [esi + 0x30], ebx
test ebx, ebx
je 0x5024a8
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
or eax, 2
push eax
push edi
push dword [ebp]
call fcn.004ce300
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x5024a2
push dword [esi + 0x2c]
push ebx
push 4
push dword [edi]
push dword [esi + 0x10]
call fcn.004ce350
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
mov byte [esi + 4], 0
jmp 0x5024cc
mov dword [edi], 1
push dword [esi + 0x2c]
push 0
push 4
push 1
push dword [ebp]
call fcn.004ce350
mov edx, eax
mov byte [esi + 4], 1
add esp, 0x14
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov eax, 4
cmp word [edi + 2], 8
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
jne 0x506c80
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
push 1
push dword [edi + 8]
push dword [edi + 4]
push ecx
call fcn.00498490
add esp, 0x10
test eax, eax
je 0x5010e6
mov ecx, dword [edi + 0x10]
push eax
mov dword [eax + 0x30], ecx
push dword [edi + 0xc]
push ebp
call fcn.0050ae20
add esp, 0xc
mov edx, eax
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x14]
adc eax, 0
or edi, esi
mov dword [edx + 0x1c], eax
mov edi, dword [esp + 0x18]
jne 0x500183
jmp 0x5003d8
mov edx, dword [esp + 0x10]
push 3
push dword [edx + 0xc]
push dword [edx + 4]
push ecx
call fcn.00498490
add esp, 0x10
test eax, eax
je 0x5010e6
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x590984
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x502622
push eax
push ebx
call fcn.00507c60
add esp, 8
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov dword [eax + ecx*4], 0
mov ecx, ebx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov byte [edi + 2], 0
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
cmp byte [edi + 4], 0
je 0x502784
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 0x10]
mov dword [esp + 0x2c], eax
and al, 0x2e
cmp al, 2
jne 0x5026a4
push 0
push esi
call fcn.00499ed0
add esp, 8
push esi
call fcn.00508270
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x34], edx
mov ebp, eax
mov eax, dword [esp + 0x2c]
mov word [esi + 0x10], ax
test cl, 0x24
jne 0x50274e
test cl, 8
jne 0x502721
test cl, 1
jne 0x502df1
cmp ebx, 0x17
jae 0x502df1
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x502700
test byte [eax + 1], 8
je 0x502700
xor edi, edi
mov dword [esp + 0x60], 0
mov dword [esp + 0x18], edi
jmp 0x4ffdb1
lea ecx, [esp + 0x60]
push ecx
push eax
call fcn.0049d720
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
jmp 0x5028cb
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp], xmm0
push dword [esp + 0x3c]
push ebp
call fcn.004e6fb0
add esp, 0x10
test eax, eax
jle 0x502746
test bl, 1
jne 0x50274e
dec ebx
jmp 0x50274e
jns 0x50274e
test bl, 1
je 0x50274e
inc ebx
lea eax, [esp + 0x60]
push eax
push 0
push dword [esp + 0x3c]
lea esi, [edi + 0x2c]
push ebp
push dword [esi]
call fcn.004d0ab0
mov edx, eax
mov dword [edi + 0x40], ebp
mov eax, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x18], edx
mov dword [edi + 0x44], eax
test edx, edx
jne 0x506cb8
jmp 0x502826
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x2c]
mov ecx, dword [edx + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x5b], al
mov eax, 0
setne al
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x208], eax
lea eax, [ebx - 1]
test al, 1
mov word [esp + 0x21c], cx
mov ecx, dword [esp + 0x28]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x21e], al
mov eax, dword [edx + 0xc]
mov byte [esp + 0x222], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x20c]
push eax
push dword [esi]
call fcn.004ce9a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
cmp byte [esp + 0x5b], al
je 0x502826
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x222], dl
je 0x5028cb
mov eax, dword [esp + 0x60]
cmp ebx, 0x17
jl 0x5028b3
test eax, eax
js 0x502879
jne 0x50283e
cmp ebx, 0x18
je 0x502879
mov dword [esp + 0x60], 0
cmp dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
je 0x503608
add dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
push 0
push dword [esi]
mov dword [esp + 0x68], 0
call fcn.004cf980
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
je 0x502846
cmp edx, 0x65
jne 0x506cb8
xor edi, edi
mov dword [esp + 0x60], 1
mov dword [esp + 0x18], edi
jmp 0x5003d4
test eax, eax
jg 0x5028db
jne 0x5028be
cmp ebx, 0x15
je 0x5028db
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x60], 0
jne 0x502df1
jmp 0x502846
push 0
push dword [esi]
mov dword [esp + 0x68], 0
call fcn.004d02f0
jmp 0x50288a
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
jne 0x4fefad
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x298], eax
mov byte [esp + 0x2ae], 0
mov ax, word [ecx + 0x24]
mov edi, dword [ecx + 4]
mov word [esp + 0x2ac], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x29c], eax
mov esi, dword [ebx + 0x2c]
push esi
call fcn.004af720
mov edx, dword [esi + 0x2c]
xor eax, eax
add esp, 4
mov ecx, edx
add ecx, 0xffffffff
adc eax, 0xffffffff
test eax, eax
ja 0x506c91
jb 0x502973
cmp ecx, 0x7ffffffe
ja 0x506c91
xor eax, eax
mov dword [esp + 0x25c], ebp
mov word [esp + 0x258], ax
mov dword [esp + 0x260], eax
lea eax, [esp + 0x248]
push eax
push edx
push esi
call fcn.00508d20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
push eax
lea eax, [esp + 0x29c]
push eax
push dword [esp + 0x258]
push dword [esp + 0x260]
call fcn.00509f90
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x260], 0
je 0x5029e6
lea eax, [esp + 0x248]
push eax
call fcn.00519f80
add esp, 4
xor ebp, ebp
mov dword [esp + 0x18], ebp
test esi, esi
jle 0x502a00
mov eax, dword [esp + 0x10]
cmp word [eax + 2], bp
je 0x502a7d
test esi, esi
jns 0x502df1
test edi, edi
jle 0x503600
mov dword [ebx + 0x20], ebp
xor eax, eax
mov ecx, dword [ebx + 0x2c]
dec edi
mov word [ecx + 0x32], ax
and byte [ecx + 1], 0xf9
cmp byte [ecx], al
je 0x502a2b
push ecx
call fcn.0049d940
jmp 0x502a5f
movzx eax, word [ecx + 0x46]
mov edx, dword [ecx + 0x74]
mov esi, eax
inc eax
mov word [ecx + 0x46], ax
cmp ax, word [edx + 0x18]
jb 0x502a4b
push ecx
mov word [ecx + 0x46], si
call fcn.0049d940
jmp 0x502a5f
cmp byte [edx + 8], 0
mov ebp, dword [esp + 0x24]
jne 0x502944
push ecx
call fcn.004b8a80
mov ebp, dword [esp + 0x28]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x502944
cmp edx, 0x65
jne 0x506cb8
add dword [esp + 0x10], 0x14
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x5003d4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
movzx edx, word [eax + 0xc]
mov ecx, dword [ecx + 8]
cmp edx, ecx
jge 0x502acc
mov esi, dword [esp + 0x10]
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc]
cmp edx, ecx
jle 0x4fee3e
mov word [eax + 0xc], cx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x4fed51.9
cmp byte [eax + 2], 0
je 0x4fee3e
jmp case.0x4fed51.9
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [esi + 0x10]
jge 0x4fee3e
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x17c], ecx
movzx eax, word [edi + 0x10]
mov word [esp + 0x18c], ax
test ax, ax
je 0x502b9f
mov eax, dword [esi + 0x30]
lea ebx, [esi + 0x24]
mov dword [esp + 0x178], eax
lea eax, [esp + 0x178]
push ebx
push eax
mov byte [esp + 0x196], 0
push dword [esi + 0x2c]
call fcn.004ce9a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x502c0d
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x502bbb
push ecx
call fcn.00508b50
add esp, 4
test eax, eax
jne 0x5010e6
push dword [esi + 0x30]
call fcn.004fe280
mov edi, eax
add esp, 4
test edi, edi
je 0x5010e6
mov ecx, dword [esp + 0x17c]
push edi
push dword [ecx + 8]
push dword [ecx + 0xc]
push dword [esi + 0x30]
call fcn.0050a7f0
lea ebx, [esi + 0x24]
mov byte [edi + 0x16], 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004ce9a0
push edi
push ebp
mov dword [esp + 0x3c], eax
call fcn.004d5a50
mov edx, dword [esp + 0x3c]
add esp, 0x24
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x506cb8
mov ecx, dword [ebx]
test ecx, ecx
setne al
mov byte [esi + 2], al
mov byte [esi + 3], dl
mov dword [esi + 0x20], edx
mov al, byte [edi]
cmp al, 0x1d
jne 0x502c52
test ecx, ecx
je 0x502df1
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
test ecx, ecx
jne 0x502df1
cmp al, 0x1b
jne 0x502cb0
movzx edx, word [esp + 0x18c]
test edx, edx
je 0x503604
mov eax, dword [esp + 0x17c]
add eax, 0x10
nop dword [eax + eax]
test byte [eax], 1
jne 0x502df1
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x502c80
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ecx, dword [esp + 0x14]
cmp al, 0x1a
jne 0x503608
mov ax, word [edi + 0x10]
mov edi, dword [esp + 0x18]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x24
jne 0x502d7b
movups xmm0, xmmword [ebx + eax*8]
movups xmmword [esp + 0x1e0], xmm0
movups xmm1, xmmword [ebx + eax*8 + 0x10]
movups xmmword [esp + 0x1f0], xmm1
movq xmm0, qword [ebx + eax*8 + 0x20]
movd eax, xmm1
movq qword [esp + 0x200], xmm0
test al, 4
jne 0x502d67
test al, 0x28
jne 0x502d44
test al, 2
je 0x502d5f
lea eax, [esp + 0x1e0]
push 1
push eax
call fcn.00499ed0
add esp, 8
jmp 0x502d54
lea eax, [esp + 0x1e0]
push eax
call fcn.005082e0
add esp, 4
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x1f0]
test al, 4
je 0x5003d8
mov edi, dword [esp + 0x1e0]
mov ebx, dword [esp + 0x1e4]
jmp 0x502d8c
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [ebx + eax*8]
mov ebx, dword [ebx + eax*8 + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x40], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x40]
push eax
push 0
push ebx
push edi
push dword [esi + 0x2c]
call fcn.004d0ab0
mov dword [esi + 0x40], edi
mov edx, eax
mov eax, dword [esp + 0x54]
add esp, 0x14
mov dword [esi + 0x44], ebx
mov byte [esi + 2], 0
mov dword [esi + 0x20], 0
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x24], eax
test eax, eax
je 0x502261
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], 0
je 0x506cdc
mov edi, dword [esp + 0x18]
jmp 0x5003d4
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x502e26
push edx
call fcn.004bbad0
add esp, 4
mov edx, eax
jmp 0x502e2f
mov eax, 4
mov word [edx + 0x10], ax
mov ecx, dword [ebx + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov dword [esp + 0x3c], 0
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x40], edx
test word [edx + 0x10], ax
je 0x502eb6
push edx
call fcn.004bbad0
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x502ebf
mov eax, 4
mov word [edx + 0x10], ax
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x60]
mov ebp, dword [eax + ecx*4]
test byte [ebp + 8], 2
jne 0x502f68
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
jne 0x502f1d
test byte [eax + 1], 8
je 0x502f1d
xor eax, eax
mov dword [esp + 0x18], eax
mov esi, dword [ebp + 0x2c]
push esi
call fcn.004af720
mov edi, dword [esi + 0x20]
add esp, 4
mov esi, dword [esi + 0x24]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
cmp esi, 0x7fffffff
jl 0x502f54
jg 0x502f13
cmp edi, 0xffffffff
jb 0x502f54
or dword [ebp + 8], 2
mov edx, dword [esp + 0x14]
jmp 0x502f70
lea ecx, [esp + 0x3c]
push ecx
push eax
call fcn.0049d720
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
cmp dword [esp + 0x3c], eax
je 0x502eea
mov edx, dword [esp + 0x14]
mov edi, 1
xor esi, esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
jmp 0x502f70
mov edx, dword [esp + 0x14]
add edi, 1
mov dword [esp + 0x2c], edi
adc esi, 0
mov dword [esp + 0x30], esi
jmp 0x502f70
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x50300f
mov edx, dword [edx + 0xd0]
test edx, edx
je 0x502fa7
mov eax, dword [edx + 4]
test eax, eax
je 0x502f99
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x502f90
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + ecx*8]
jmp 0x502fb1
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.00508270
mov dword [ebx], eax
add esp, 4
mov dword [ebx + 4], edx
mov cx, word [ebx + 0x10]
and cx, word [esp + 0xb8]
or cx, 4
mov word [ebx + 0x10], cx
cmp eax, 0xffffffff
jne 0x502fe4
cmp edx, 0x7fffffff
je 0x50306d
test byte [ebp + 8], 2
jne 0x50306d
add eax, 1
adc edx, 0
cmp esi, edx
jg 0x50300a
jl 0x502ffe
cmp edi, eax
jae 0x50300a
mov edi, eax
mov esi, edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], esi
mov dword [ebx], edi
mov dword [ebx + 4], esi
test byte [ebp + 8], 2
je 0x503077
xor ebx, ebx
lea eax, [esp + 0x2c]
push eax
push 8
call fcn.00494310
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x44]
mov edi, dword [esp + 0x34]
and esi, 0x3fffffff
push eax
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x3c], edi
push esi
push edi
push dword [ebp + 0x2c]
mov dword [esp + 0x4c], esi
call fcn.004d0ab0
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
cmp dword [esp + 0x3c], eax
jne 0x503077
inc ebx
cmp ebx, 0x64
jl 0x503017
mov edx, 0xd
jmp 0x506cb4
mov eax, dword [esp + 0x40]
mov byte [ebp + 3], 0
mov dword [ebp + 0x20], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4ffdad
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x2c], esi
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
mov ecx, dword [ebx + ecx*8 + 4]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
cmp byte [edi + 1], 0xfb
jne 0x5030ea
cmp dword [ebp + 0xfc], 0
je 0x5030ea
movsx ecx, byte [esi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edi, dword [edi + 0x10]
mov ebx, dword [eax + ecx*8]
jmp 0x5030ee
xor edi, edi
xor ebx, ebx
mov eax, dword [esp + 0x10]
test byte [eax + 2], 1
je 0x50311e
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test byte [eax + 2], 0x20
je 0x50311e
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edx*8 + 8]
mov dword [esp + 0x138], eax
mov eax, dword [ecx + edx*8 + 0xc]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x10]
test byte [eax + 2], 0x10
je 0x503147
mov ecx, dword [esi + 0x24]
jmp 0x503149
xor ecx, ecx
mov ebp, dword [esp + 0x28]
mov esi, 0x400
test word [ebp + edx*8 + 0x10], si
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
je 0x503175
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0x10]
jmp 0x503180
mov dword [esp + 0x148], 0
mov dword [esp + 0x128], 0
movzx eax, word [eax + 2]
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x130]
push eax
push dword [esi + 0x2c]
call fcn.004cef00
inc dword [esp + 0x98]
mov edx, eax
add esp, 0x10
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x506cb8
test edi, edi
je 0x503604
push dword [esp + 0x134]
mov eax, dword [esp + 0x14]
mov ecx, 0x17
push dword [esp + 0x134]
push dword [edi]
test byte [eax + 2], 4
mov eax, 0x12
push ebx
cmovne eax, ecx
push eax
push dword [ebp + 0xf8]
mov eax, dword [ebp + 0xfc]
call eax
mov edi, dword [esp + 0x30]
add esp, 0x18
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ecx, dword [ecx + 0x60]
mov eax, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov eax, dword [edi + 8]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x503252
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov ecx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
jmp 0x503263
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
push dword [esi + 0x2c]
push dword [edx + 0x2c]
call fcn.004d0d10
add esp, 0x10
jmp 0x502549
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x5032d8
cmp dword [ebp + 0xfc], 0
je 0x5032d8
movsx ecx, byte [edi + 1]
mov eax, dword [ebp + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov ebx, dword [edx + 0x10]
mov ebp, dword [eax + ecx*8]
je 0x5032dc
cmp byte [edi + 4], 0
je 0x5032dc
mov esi, dword [edi + 0x2c]
push esi
call fcn.004af720
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], ecx
jmp 0x5032dc
xor ebp, ebp
xor ebx, ebx
movzx eax, byte [edx + 2]
push eax
push dword [edi + 0x2c]
call fcn.004ce3c0
inc dword [esp + 0x90]
mov edx, eax
add esp, 8
mov dword [edi + 0x20], 0
mov dword [esp + 0x18], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x506cb8
test byte [esp + 0x2c], 1
mov ecx, dword [esp + 0x14]
je 0x5035e1
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xfc]
test eax, eax
je 0x5035e1
test ebx, ebx
je 0x5035e1
test byte [ebx + 0x1c], 0x80
jne 0x5035e1
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [ebx]
push ebp
mov ebp, dword [esp + 0x34]
push 9
push dword [ebp + 0xf8]
call eax
mov edi, dword [esp + 0x30]
add esp, 0x18
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [ecx + 0x28]
mov ecx, dword [ecx + 0x2c]
mov dword [ebp + 0x68], eax
mov dword [ebp + 0x6c], ecx
add dword [ebp + 0x70], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x74], ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [edx + 0x10]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edi, dword [ecx + 0x2c]
mov ebx, dword [ecx + 0x30]
lea eax, [eax + eax*4]
mov dword [esp + 0x2c], eax
mov ebp, dword [edi + 0x20]
test ebp, ebp
jne 0x5033fe
push ebx
call fcn.004fe280
mov ebp, eax
add esp, 4
mov dword [edi + 0x20], ebp
test ebp, ebp
je 0x5034c2
mov word [ebp + 0x14], si
lea eax, [esp + 0xbc]
push eax
push edi
call fcn.0051c2f0
push ebp
push eax
push dword [esp + 0xcc]
push ebx
call fcn.0050a7f0
add esp, 0x18
xor ecx, ecx
test esi, esi
jle 0x503441
mov eax, dword [ebp + 4]
add eax, 0x10
nop word [eax + eax]
test byte [eax], 1
jne 0x502a82
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x503430
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
push 0
push ebp
push dword [ebx + eax*8 + 8]
push dword [ebx + eax*8 + 0xc]
call fcn.00509f90
xor edx, edx
add esp, 0x10
mov dword [esp + 0x18], edx
test eax, eax
jne 0x502df1
mov dword [esp + 0x18], edx
jmp 0x4ffdad
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, dword [edx + 4]
lea eax, [esp + 0xc0]
push eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
push dword [eax + 0x2c]
call fcn.0051c2f0
mov edi, dword [esp + 0xc8]
add esp, 8
mov ebx, eax
cmp dword [esi + 0x18], edi
jge 0x5034cc
push 0
push edi
push esi
call fcn.00508d80
add esp, 0xc
test eax, eax
je 0x5034d7
mov edx, 7
jmp 0x506cb4
mov eax, dword [esi + 0x20]
mov dword [esi + 8], eax
and word [esi + 0x10], 0x2d
mov dword [esi + 0xc], edi
mov ecx, 0xf250
mov ax, word [esi + 0x10]
and ax, cx
push edi
or ax, 0x10
mov word [esi + 0x10], ax
push ebx
push dword [esi + 8]
call fcn.00532150
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov esi, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x20], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x50355c
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
jmp 0x503565
mov eax, 4
mov word [esi + 0x10], ax
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
push edi
call fcn.004af720
mov eax, dword [edi + 0x2c]
add esp, 4
cmp eax, dword [ebp + 0x78]
ja 0x5011d8
push esi
push eax
push edi
call fcn.00508d20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x50372f
mov edi, dword [esp + 0x10]
cmp dword [edi + 0xc], eax
jne 0x503623
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x503623
push esi
call fcn.00508f10
add esp, 4
test eax, eax
jne 0x5010e6
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x50366c
push edi
call fcn.004bbad0
add esp, 4
mov edi, eax
jmp 0x503675
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x5036ae
mov eax, 1
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp byte [esi + 3], 0
je 0x5036cf
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x44]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x503691
cmp byte [esi], 2
mov ecx, dword [esi + 0x2c]
jne 0x503717
mov esi, dword [ecx]
lea edx, [esp + 0x94]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
push esi
push ebx
mov dword [esp + 0x28], eax
call fcn.0050bfd0
mov edx, dword [esp + 0x28]
add esp, 0x10
test edx, edx
jne 0x50372f
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x503691
cmp byte [ecx], 0
je 0x50373e
push esi
call fcn.00508230
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x503744
mov esi, dword [esp + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 2], 0
jne 0x503688
mov esi, dword [esi + 0x2c]
push esi
call fcn.004af720
mov eax, dword [esi + 0x20]
add esp, 4
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x503691
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x5037b9
push 3
push 1
push ecx
push edx
call fcn.00498490
add esp, 0x10
test eax, eax
je 0x5010e6
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
or dword [eax + 8], 8
mov dword [eax + 0x2c], 0x590984
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
cmp byte [eax], 0
jne 0x4ff2bd
push dword [eax + 0x2c]
call fcn.004cd9a0
mov esi, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x40], eax
mov ecx, dword [esi + 0x2c]
cmp dl, 0x89
jne 0x50383c
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], al
jne 0x503857
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp byte [ecx], al
jne 0x503857
test byte [ecx + 1], 8
je 0x503857
mov byte [esi + 2], al
xor edi, edi
mov byte [esi + 3], al
mov dword [esp + 0x18], edi
mov dword [esi + 0x20], eax
jmp 0x503887
lea eax, [esp + 0x40]
push eax
push ecx
call fcn.0049d720
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x40]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x506cb4
mov edi, edx
mov esi, dword [esp + 0x10]
cmp dword [esi + 8], 0
jle 0x4fee3e
test eax, eax
jne 0x502df1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
push esi
call fcn.004b8cc0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x5038ee
push esi
xor ebx, ebx
call fcn.004b8a80
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x503910
cmp edx, 0x10
jne 0x503909
xor edi, edi
mov dword [esp + 0x8c], 1
mov dword [esp + 0x18], edi
jmp 0x5003d4
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x8c], ebx
mov edi, edx
test edx, edx
jne 0x506cb8
mov eax, edi
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x502df1
push esi
call fcn.004d04f0
add esp, 4
test edx, edx
jl 0x50396a
jg 0x503942
test eax, eax
jb 0x50396a
push edx
push eax
call fcn.004e8540
mov esi, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [esi + 0xc]
jge 0x50396e
mov dword [esp + 0x8c], 1
mov dword [esp + 0x18], edi
jmp 0x5003d4
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
inc dword [ecx + 0xac]
mov edx, dword [esp + 0x10]
mov ebx, 1
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x2c]
cmp byte [edi], bl
jne 0x503a05
xor eax, eax
mov dword [esp + 0x18], eax
cmp byte [esi + 0x38], al
jne 0x5039dc
cmp dword [esi + 0x24], 0
lea eax, [esi + 0x24]
je 0x503a39
push eax
lea eax, [esi + 0x40]
xor ebx, ebx
push eax
call fcn.0051c600
add esp, 8
mov dword [esp + 0x18], eax
jmp 0x503a39
push esi
call fcn.0051bb20
push eax
push esi
call fcn.0051bc40
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x503a39
push esi
call fcn.0051c350
add esp, 4
mov dword [esp + 0x18], eax
xor ebx, ebx
jmp 0x503a39
push esi
call fcn.004b8cc0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x503a23
push esi
xor ebx, ebx
call fcn.004b8a80
add esp, 4
jmp 0x503a2a
cmp eax, 0x10
jne 0x503a2e
xor eax, eax
mov dword [esp + 0x18], eax
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x506cb8
mov byte [edi + 2], bl
mov edi, dword [esp + 0x10]
cmp dword [edi + 8], edx
jle 0x4ff2b9
test ebx, ebx
je 0x4ff2b9
mov edi, edx
jmp 0x5003d4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 0x2c]
cmp byte [edi + 0x38], 0
je 0x503b02
cmp byte [edi + 0x39], 0
je 0x503ac4
push dword [edi + 0x10]
call fcn.0051acc0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x503b3c
mov eax, dword [edi + 0x10]
cmp dword [eax + 0x18], 0
jne 0x503b3c
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov esi, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x503b8d
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 0
push eax
push dword [edi + 0x14]
call fcn.0051a670
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x503b3c
cmp dword [esp + 0x40], eax
je 0x503b3c
mov edi, dword [esp + 0x10]
mov eax, 0x65
mov esi, dword [esp + 0x14]
mov edx, eax
mov dword [esp + 0x18], eax
jmp 0x503b8d
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx + 4]
mov dword [edi + 0x24], eax
mov dword [ecx + 4], 0
cmp dword [edi + 0x28], 0
jne 0x503b2b
mov esi, dword [ecx + 4]
push ecx
push ebp
call fcn.004d5a50
add esp, 8
mov ecx, esi
test esi, esi
jne 0x503b18
xor ecx, ecx
mov eax, 0x65
cmp dword [edi + 0x24], ecx
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x503b8d
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.004d02f0
jmp 0x503b84
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x60]
push dword [edi + 0xc]
mov ebx, dword [eax + ecx*4]
push dword [ebx + 0x2c]
call fcn.004cf980
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
mov dword [ebx + 0x20], 0
test edx, edx
jne 0x503bab
mov byte [ebx + 2], dl
movzx eax, word [edi + 2]
inc dword [esi + eax*4 + 0xa4]
jmp 0x50620d
cmp edx, 0x65
jne 0x506cb8
xor edi, edi
mov byte [ebx + 2], 1
mov dword [esp + 0x18], edi
jmp 0x5047f5
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
je 0x503bf3
add dword [edx + 0x28], 1
adc dword [edx + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x503c19
push esi
call fcn.00508b50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x300], eax
mov dword [esp + 0x304], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x2f8], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x30c], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x310], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x503c5e
mov ecx, dword [edi + 0x24]
jmp 0x503c60
xor ecx, ecx
push ecx
and eax, 0x8a
push eax
lea eax, [esp + 0x300]
push eax
push dword [edi + 0x2c]
call fcn.004cef00
add esp, 0x10
mov dword [edi + 0x20], 0
jmp 0x502549
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x503cc6
push esi
call fcn.00508b50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
push esi
push edi
call fcn.0050b290
add esp, 8
jmp 0x502549
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x2b8], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x2cc], ax
mov byte [esp + 0x2ce], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2bc], eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x2bc]
push eax
push edi
call fcn.004ce9a0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
cmp dword [esp + 0xc4], eax
jne 0x503d66
push 4
push edi
call fcn.004ce3c0
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
jmp 0x503d82
mov edi, dword [esp + 0x10]
cmp word [edi + 2], 0
je 0x503d82
mov eax, dword [ebp + 0x20]
and eax, 0x10000001
cmp eax, 1
jne 0x506ce8
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ebp, dword [eax + ecx*4]
mov eax, dword [ebp + 0x2c]
cmp byte [eax], 0
je 0x503de3
push ebp
call fcn.00508230
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov edi, eax
jmp 0x503de9
xor edi, edi
mov dword [esp + 0x18], edi
cmp byte [ebp + 2], 0
jne 0x503f6e
mov esi, dword [ebp + 0x2c]
push esi
call fcn.004af720
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov word [esp + 0x1cc], cx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1d0], ecx
lea ecx, [esp + 0x1bc]
push ecx
push eax
push esi
mov dword [esp + 0x1e0], 0
call fcn.00508d20
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov ebx, dword [esp + 0x1c0]
movzx esi, byte [ebx]
mov dword [esp + 0x40], esi
cmp esi, 0x80
jb 0x503e67
lea eax, [esp + 0x40]
push eax
push ebx
call fcn.004e4760
mov esi, dword [esp + 0x48]
add esp, 8
cmp esi, 3
jb 0x506d03
mov edi, dword [esp + 0x1c4]
cmp esi, edi
ja 0x506d03
lea eax, [ebx - 1]
add eax, esi
movzx ecx, byte [eax]
mov dword [esp + 0x40], ecx
cmp ecx, 0x80
jb 0x503ea5
lea ecx, [esp + 0x40]
push ecx
push eax
call fcn.004e4760
mov ecx, dword [esp + 0x48]
add esp, 8
lea eax, [ecx - 1]
cmp eax, 8
ja 0x506d03
cmp ecx, 7
je 0x506d03
movzx edx, byte [ecx + 0x571530]
lea eax, [edx + esi]
cmp edi, eax
jb 0x506d03
lea eax, [esp + 0x320]
sub edi, edx
push eax
push ecx
add edi, ebx
push edi
call fcn.0050aa00
add esp, 0xc
cmp dword [esp + 0x1d0], 0
je 0x503efc
lea eax, [esp + 0x1b8]
push eax
call fcn.00519f80
add esp, 4
mov eax, dword [esp + 0x10]
xor edi, edi
mov dword [esp + 0x18], edi
cmp byte [eax], 0x8d
jne 0x503f49
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x320]
mov ecx, dword [esp + 0x324]
mov byte [edx + 2], 0
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x44], ecx
mov byte [edx + 3], 1
mov dword [edx + 0x20], edi
mov eax, dword [eax + 0x10]
mov dword [edx + 0x10], eax
mov dword [edx + 0x28], ebp
jmp 0x4ffdb1
push eax
push dword [esp + 0x18]
call fcn.004bba90
mov ecx, dword [esp + 0x328]
add esp, 8
mov edx, dword [esp + 0x324]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x4ffdb1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x503f98
push eax
call fcn.00519fc0
add esp, 4
jmp 0x4ffdb1
mov ecx, 1
mov word [eax + 0x10], cx
jmp 0x4ffdb1
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 3], 0
je 0x4fee3e
push eax
call fcn.00507b20
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov ecx, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
cmp dl, 0x2a
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov esi, dword [ecx + 0x2c]
mov dword [esp + 0x2d8], eax
mov ax, word [edi + 0x10]
mov word [esp + 0x2ec], ax
sbb al, al
mov byte [esp + 0x2ee], al
mov eax, dword [edi + 0xc]
push esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x2e0], eax
call fcn.004af720
mov eax, dword [esi + 0x2c]
add esp, 4
test eax, eax
je 0x506d2c
cmp eax, 0x7fffffff
ja 0x506d2c
xor ecx, ecx
mov dword [esp + 0x284], ebp
mov word [esp + 0x280], cx
mov dword [esp + 0x288], ecx
lea ecx, [esp + 0x270]
push ecx
push eax
push esi
call fcn.00508d20
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
push eax
lea eax, [esp + 0x2dc]
push eax
push dword [esp + 0x280]
push dword [esp + 0x288]
call fcn.00509f90
add esp, 0x10
mov esi, eax
cmp dword [esp + 0x288], 0
je 0x5040c9
lea eax, [esp + 0x270]
push eax
call fcn.00519f80
add esp, 4
test byte [edi], 1
jne 0x5040d2
neg esi
jmp 0x5040d3
inc esi
test esi, esi
jg 0x502df1
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x504128
push edi
call fcn.004bbad0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, eax
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [ebp + 0xcc]
inc eax
cmp dword [ebp + 0xc0], eax
jg 0x506d40
mov eax, dword [edx + 0xc]
mov ecx, eax
mov ebx, dword [edx + 4]
add ecx, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x40], 0
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
je 0x504179
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x504179
push esi
call fcn.0049d7c0
add esp, 4
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.0049d0c0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x5041a1
add dword [esi + 0xc], 0xffffffff
jne 0x5041a1
push esi
call fcn.00516c80
add esp, 4
mov esi, dword [esp + 0x40]
mov eax, 4
mov word [edi + 0x10], ax
mov eax, esi
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x506cb8
test esi, esi
je 0x4ff2b9
mov ebx, dword [esp + 0x2c]
mov edi, ebx
mov eax, dword [esp + 0x10]
shl edi, 4
add edi, dword [ebp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x5041f8
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x5041f2
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x5041e7
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x504213
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x50420d
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x504202
mov edi, dword [esp + 0x18]
inc bl
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x67], bl
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
lea eax, [esp + 0xa8]
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
push eax
mov ecx, dword [edi + 8]
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [edi + 4]
push dword [eax + ecx*8 + 4]
call fcn.004cda20
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp dword [edi + 0xc], 0
mov edx, eax
mov dword [esp + 0x18], edx
je 0x5042b2
mov eax, dword [esp + 0xa8]
add dword [ecx + 0x28], eax
mov eax, dword [esp + 0xac]
adc dword [ecx + 0x2c], eax
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x5042b2
mov ebx, dword [esp + 0x28]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xa8]
add dword [ebx + ecx*8], eax
mov eax, dword [esp + 0xac]
adc dword [ebx + ecx*8 + 4], eax
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x504312
push dword [eax + 0x2c]
push ebp
call fcn.0050b040
mov esi, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [eax + 0x2c]
push 0
push dword [eax + 0x40]
push dword [eax + 8]
call fcn.004cda20
jmp 0x502546
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x504353
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
jmp 0x50435c
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [edi + 4]
lea ecx, [esp + 0x40]
push dword [edi + 0xc]
shl eax, 4
add eax, dword [ebp + 0x10]
push ecx
mov dword [esp + 0x48], 0
push dword [eax + 4]
call fcn.004ce300
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov eax, dword [esp + 0x40]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x10]
inc byte [ebp + 0x60]
push 0
push 0
push 0
push dword [eax + 0x10]
push ebp
call fcn.00492540
add esp, 0x14
dec byte [ebp + 0x60]
jmp 0x502549
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x10], 0
mov esi, dword [edi + 4]
jne 0x504427
mov eax, dword [ebp + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.004f40c0
and dword [ebp + 0x18], 0xffffffef
movzx eax, word [edi + 2]
push eax
mov eax, dword [esp + 0x1c]
add eax, 0x7c
push eax
push esi
push ebp
call fcn.004e56d0
mov ecx, dword [esp + 0x28]
mov edx, eax
or dword [ebp + 0x18], 1
add esp, 0x14
mov dword [esp + 0x18], edx
and dword [ecx + 0x98], 0xfffffffc
jmp 0x50451c
mov dword [esp + 0xec], esi
lea eax, [ecx + 0x7c]
mov dword [esp + 0xe4], ebp
add esi, esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf4], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0xfc], eax
push dword [edi + 0x10]
mov eax, dword [ebp + 0x10]
push str.sqlite_master
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebp
call fcn.004e8760
mov esi, eax
add esp, 0x14
test esi, esi
je 0x506d7c
push 0
lea eax, [esp + 0xe8]
mov byte [ebp + 0xb1], 1
push eax
push fcn.004e5440
push esi
push ebp
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
call fcn.00492540
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x504503
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x504503
cmp dword [esp + 0xf8], eax
jne 0x504503
push 0x5797bc
push 0x181b4
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004849d0
mov eax, 0xb
add esp, 0x14
mov dword [esp + 0x18], eax
push esi
push ebp
call fcn.004d5a50
mov edx, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x14]
mov byte [ebp + 0xb1], 0
test edx, edx
jne 0x506d61
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
push dword [edx + 4]
push ebp
call fcn.004cb050
add esp, 8
jmp 0x502549
mov edx, dword [esp + 0x10]
push 0
mov eax, dword [edx + 4]
push dword [edx + 0x10]
shl eax, 4
add eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
push eax
call fcn.004e49f0
add esp, 0xc
test eax, eax
je 0x504592
cmp dword [ebp + 0x210], 0
jne 0x504588
add dword [eax + 0x18], 0xffffffff
jne 0x504592
push eax
push ebp
call fcn.004a51c0
add esp, 8
or dword [ebp + 0x18], 1
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x18
push eax
call fcn.004e49f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x504592
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 8]
cmp ecx, esi
jne 0x504611
mov eax, dword [esi + 0x14]
push esi
push ebp
mov dword [edx + 8], eax
call fcn.004e0dd0
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
test ecx, ecx
je 0x504650
lea edx, [ecx + 0x14]
mov ecx, dword [edx]
cmp ecx, esi
je 0x50464b
test ecx, ecx
jne 0x504615
push esi
push ebp
call fcn.004e0dd0
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 0x14]
mov dword [edx], eax
push esi
push ebp
call fcn.004e0dd0
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
push 0
mov ecx, dword [edx + 4]
push dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
add eax, 0x28
push eax
call fcn.004e49f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4ff2bd
mov eax, dword [esi + 0x18]
cmp dword [esi + 0x14], eax
jne 0x50470b
push 0
push dword [esi + 4]
add eax, 8
push eax
call fcn.004aa430
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x50470b
mov eax, dword [edx + 0x38]
add edx, 0x38
test eax, eax
je 0x50470b
nop
cmp eax, esi
je 0x504706
lea edx, [eax + 0x20]
mov eax, dword [edx]
test eax, eax
jne 0x5046d0
push esi
push ebp
call fcn.004d6b60
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [eax + 0x20]
mov dword [edx], eax
push esi
push ebp
call fcn.004d6b60
mov esi, dword [esp + 0x18]
add esp, 8
or dword [ebp + 0x18], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea edi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0xcc]
push eax
mov eax, dword [ebx + edi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
movzx ecx, word [edx + 2]
push eax
mov eax, dword [ebp + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
push ebp
call fcn.004cf420
mov ebp, eax
add esp, 0x1c
mov eax, 0x9000
mov dword [esp + 0x18], ebp
test word [esi + 0x10], ax
je 0x50479c
push esi
call fcn.00519fc0
add esp, 4
jmp 0x5047a5
mov eax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x5047dc
test ebp, ebp
jne 0x506d8a
push fcn.004941f0
push 1
push 0xffffffffffffffff
dec eax
cdq
sub dword [ebx + edi*8], eax
push 0xffffffffffffffff
push dword [esp + 0xb4]
sbb dword [ebx + edi*8 + 4], edx
push esi
call fcn.005092a0
add esp, 0x18
test byte [esi + 0x10], 2
jne 0x50488f
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
cmp dword [ebp + 0x128], 0
jne 0x507043
mov esi, dword [esp + 0x84]
cmp dword [esp + 0x80], esi
jb 0x4ff2b9
mov ebx, dword [esp + 0x68]
ja 0x504830
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jb 0x50675e
nop dword [eax + eax]
mov eax, dword [ebp + 0x174]
test eax, eax
je 0x50675a
add ebx, dword [ebp + 0x17c]
push dword [ebp + 0x178]
adc esi, 0
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x88], esi
call eax
add esp, 4
test eax, eax
jne 0x506e59
cmp dword [esp + 0x80], esi
ja 0x504830
mov eax, dword [esp + 0x1c]
jb 0x504878
cmp eax, ebx
jae 0x504830
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x5047ed
push dword [esp + 0x4c]
push esi
call fcn.005096b0
add esp, 8
jmp 0x5047ed
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edx + 8]
lea edi, [eax + eax*4]
jne 0x5048dd
push esi
call fcn.005091c0
add esp, 4
test eax, eax
jne 0x5010e6
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi + 8]
call fcn.004f3320
add esp, 0xc
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea edi, [ecx + eax*8]
je 0x504988
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x504948
test al, 1
jne 0x504943
push dword [esi + 8]
call fcn.004c6350
add esp, 4
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x504988
mov edi, dword [eax]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 8], eax
test eax, eax
jne 0x504967
push esi
call fcn.004f32b0
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push ebx
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.00509150
add esp, 0xc
jmp 0x5047f1
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x5049a1
push edi
call fcn.00519fc0
add esp, 4
jmp 0x50620d
mov eax, 1
mov word [edi + 0x10], ax
jmp 0x50620d
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
lea edi, [eax + eax*4]
jne 0x5049e5
push esi
call fcn.005091c0
add esp, 4
test eax, eax
jne 0x5010e6
mov ecx, dword [esp + 0x28]
test ebx, ebx
je 0x504a06
push dword [ecx + edi*8 + 4]
push dword [ecx + edi*8]
push ebx
push dword [esi + 8]
call fcn.004f33b0
add esp, 0x10
test eax, eax
jne 0x502df1
test ebx, ebx
js 0x4ff2b9
mov ebx, dword [esp + 0x28]
jmp 0x5048dd
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x2c], ebx
lea eax, [eax + eax*4]
lea ebp, [edx + eax*8]
mov eax, dword [esp + 0x10]
cmp word [eax + 2], 0
je 0x504a64
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x504a60
nop dword [eax]
cmp dword [eax + 0x18], ecx
je 0x50697c
mov eax, dword [eax + 4]
test eax, eax
jne 0x504a50
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [ecx + 0xd8]
cmp eax, dword [esi + 0xa0]
jge 0x506da2
test byte [ebp + 0x10], 0x10
jne 0x504c57
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
lea edi, [eax + 1]
cmovne edi, eax
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x504aa9
add eax, 7
sar eax, 3
lea ecx, [ecx + 0x16]
lea ebx, [eax + ecx*4]
mov eax, ebx
cdq
push edx
push eax
push esi
call fcn.004d5b60
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5010e2
push ebx
push 0
push esi
call fcn.005326d0
mov eax, 0x9000
add esp, 0xc
test word [ebp + 0x10], ax
jne 0x504ae7
cmp dword [ebp + 0x18], 0
je 0x504af0
push ebp
call fcn.00519f80
add esp, 4
mov ecx, dword [esp + 0x10]
mov eax, 0x1010
mov word [ebp + 0x10], ax
sub ecx, dword [esp + 0x20]
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], ebx
mov ebx, dword [esp + 0x2c]
mov dword [ebp + 0x24], 0x507b80
mov ebp, dword [esp + 0x14]
mov dword [esi], ebp
mov dword [esi + 0x3c], edi
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x40], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov eax, dword [ebp + 0x58]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 0x60]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x6c]
mov ebp, dword [esp + 0x24]
mov dword [esi + 0x34], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x18], eax
lea eax, [edi*4 + 0xb]
add eax, edi
lea ecx, [esi + eax*8]
lea eax, [esi + 0x58]
cmp eax, ecx
je 0x504b86
xor edx, edx
mov word [eax + 0x10], dx
mov dword [eax + 0x14], ebp
add eax, 0x28
cmp eax, ecx
jne 0x504b76
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
inc dword [ecx + 0xd8]
mov eax, dword [ecx + 0xd0]
mov edx, dword [esp + 0x14]
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov eax, dword [edx + 0x28]
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [edx]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], eax
mov eax, dword [edx + 0xe4]
mov dword [esi + 0x28], eax
lea eax, [esi + 0x58]
mov dword [edx + 0xe4], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xd0], esi
mov dword [edx + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [edx + 0x14], ecx
mov dword [esp + 0x28], eax
movzx eax, word [esi + 0x40]
mov dword [edx + 0x18], eax
lea eax, [ecx*4 + 0xb]
add eax, ecx
lea ecx, [esi + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + eax*4]
mov dword [esi + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.005326d0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [ebx]
mov dword [esp + 0x20], edx
mov dword [ecx + 0x68], edx
mov eax, dword [ebx + 4]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 0x14]
mov dword [esp + 0x10], eax
jmp 0x5047f5
mov esi, dword [ebp + 8]
mov ebp, dword [esp + 0x24]
jmp 0x504b8e
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x504c8f
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
jmp 0x504c98
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [ebx + 0xd0]
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x504cee
push 0x4000
push ecx
push esi
call fcn.00519250
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x10], eax
mov eax, 0x2000
test word [ecx + 0x10], ax
jne 0x500e12
mov ax, word [esi + 0x10]
mov ecx, 0xcfff
and ax, cx
mov ecx, 0x4000
or ax, cx
mov ecx, ebx
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [ebp + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
mov esi, eax
je 0x504d70
mov eax, dword [eax + 8]
cdq
add dword [ebp + 0x208], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x20c], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x504d99
add dword [ebp + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ebp + 0x204], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
add dword [ecx + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [ecx + 0x44], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp dword [esi + 4], 0
je 0x504def
mov eax, dword [ebp + 0x200]
or eax, dword [ebp + 0x204]
jne 0x4fee42
mov eax, dword [ebp + 0x208]
or eax, dword [ebp + 0x20c]
je 0x5003d8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x504dc4
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x504e27
mov eax, dword [edx + 4]
test eax, eax
je 0x504e11
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x504e08
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x504e38
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.00508270
mov dword [edi], eax
mov ecx, 0xf244
mov dword [edi + 4], edx
mov ax, word [edi + 0x10]
and ax, cx
or ax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.00508270
mov dword [esi], eax
mov ebx, 0xf244
mov dword [esi + 4], edx
add esp, 8
mov cx, word [esi + 0x10]
and cx, bx
or cx, 4
mov word [esi + 0x10], cx
cmp dword [edi + 4], edx
jg 0x4ff2b9
jl 0x504e99
cmp dword [edi], eax
jae 0x506756
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x5048ef
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edi + 4]
lea esi, [eax + eax*4]
mov edi, dword [ebx + esi*8 + 4]
mov ecx, dword [ebx + esi*8]
test edi, edi
jl 0x4ff2b9
jg 0x504eca
test ecx, ecx
je 0x4ff2b9
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov dword [ebx + esi*8], ecx
sbb edi, edx
mov dword [ebx + esi*8 + 4], edi
mov edi, dword [esp + 0x18]
jmp 0x5003d4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x504f1e
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
jmp 0x504f27
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [esp + 0x28]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
test eax, eax
jl 0x504f9a
jg 0x504f4a
test ecx, ecx
je 0x504f9a
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x504f5b
jg 0x504f6c
test eax, eax
jne 0x504f6c
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.004c9820
add esp, 0xc
test eax, eax
jne 0x504f9a
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x5048ef
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
jmp 0x5048ef
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [ebx + esi*8]
mov eax, ecx
mov edx, dword [ebx + esi*8 + 4]
or eax, edx
je 0x4fefad
test edx, edx
jl 0x5003d4
jg 0x504fdd
test ecx, ecx
je 0x5003d4
sub ecx, 1
mov dword [ebx + esi*8], ecx
sbb edx, 0
mov dword [ebx + esi*8 + 4], edx
jmp 0x5003d4
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
mov eax, dword [edx + 4]
lea edx, [eax + eax*4]
mov ecx, dword [ebx + edx*8 + 4]
mov eax, dword [ebx + edx*8]
cmp ecx, 0x80000000
jl 0x50501f
jg 0x505012
test eax, eax
je 0x50501f
sub eax, 1
mov dword [ebx + edx*8], eax
sbb ecx, 0
mov dword [ebx + edx*8 + 4], ecx
or eax, ecx
mov ecx, dword [esp + 0x14]
je 0x5003d8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
push 0
movzx ebx, word [edi + 2]
lea eax, [ebx*4 + 0x44]
push eax
push ebp
call fcn.004d5b60
mov esi, eax
add esp, 0xc
test esi, esi
je 0x5010e6
mov dword [esi + 8], 0
lea ecx, [ebx + 7]
lea ecx, [esi + ecx*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], 0
mov ecx, edi
mov eax, dword [edi + 0x10]
sub ecx, dword [esp + 0x20]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0x19], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov byte [edi + 1], 0xf1
mov dword [edi + 0x10], esi
mov byte [edi], 0xa3
jmp 0x5050d5
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc]
mov ebx, dword [esp + 0x28]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
cmp dword [esi + 8], edi
je 0x50511a
mov dword [esi + 8], edi
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
js 0x50511a
mov ebp, dword [esp + 0x10]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x505100
mov ebp, dword [esp + 0x24]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
mov edi, dword [esp + 0x10]
movzx edx, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
push eax
cmp dword [edi + 4], 0
push edx
push esi
je 0x505139
mov eax, dword [ecx + 0x1c]
jmp 0x50513c
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x506756
jle 0x5051a2
mov ecx, dword [esi]
test ecx, ecx
jne 0x505158
xor eax, eax
jmp 0x505189
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x505175
cmp byte [ecx + 0x12], 1
jne 0x505175
mov eax, dword [ecx + 8]
jmp 0x505189
test dl, 1
je 0x50517e
xor eax, eax
jmp 0x505189
push 1
push ecx
call fcn.00518f50
add esp, 8
push eax
push 0x56155c
push dword [esp + 0x1c]
call fcn.004fec10
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 0x19], 0
je 0x5051c6
mov eax, dword [edi - 0x10]
test eax, eax
je 0x5051c2
push 0
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push 1
push eax
call fcn.00509150
add esp, 0xc
mov byte [esi + 0x19], 0
mov eax, dword [esi]
mov ecx, 0x9000
test word [eax + 0x10], cx
jne 0x5051d9
cmp dword [eax + 0x18], 0
je 0x5051e2
push eax
call fcn.00519f80
add esp, 4
mov eax, dword [esi]
mov ecx, 1
mov edx, dword [esp + 0x18]
mov word [eax + 0x10], cx
mov dword [esi + 0x14], 0
jmp 0x50254f
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [edx + 4]
mov ebx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x5052a0
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea edi, [ecx + eax*8]
mov eax, 0x9000
movups xmmword [esp + 0x198], xmm0
movups xmmword [esp + 0x1a8], xmm0
test word [edi + 0x10], ax
je 0x50524b
push edi
call fcn.00519fc0
add esp, 4
jmp 0x505254
mov eax, 1
mov word [edi + 0x10], ax
mov dword [esp + 0x198], edi
mov dword [esp + 0x1a0], esi
mov dword [esp + 0x19c], ebx
mov eax, dword [esi + 0x14]
mov al, byte [eax + 0x54]
mov byte [esp + 0x1b0], al
lea eax, [esp + 0x198]
push eax
mov eax, dword [ebx + 0x18]
call eax
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x1ac]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x5052ac
push ebx
push esi
call fcn.00508bb0
add esp, 8
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506dc3
test byte [esi + 0x10], 2
jne 0x5052ca
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
jmp 0x5048ef
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x506756
push dword [esp + 0x4c]
push esi
call fcn.005096b0
add esp, 8
jmp 0x5048ef
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x350]
push eax
lea eax, [esp + 0x350]
mov dword [esp + 0x34c], 0
push eax
push dword [edi + 8]
mov dword [esp + 0x35c], 0xffffffff
push dword [edi + 4]
mov dword [esp + 0x35c], 0xffffffff
push ebp
call fcn.004d1470
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
test edx, edx
je 0x505351
cmp edx, 5
jne 0x506cb8
xor eax, eax
mov dword [esp + 0x348], 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0xc]
xor edi, edi
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0x9000
lea ebp, [edi + 4]
nop dword [eax + eax]
mov eax, dword [esp + edi*4 + 0x348]
cdq
test word [esi + 0x10], cx
je 0x505390
push edx
push eax
push esi
call fcn.0051b570
add esp, 0xc
mov ecx, 0x9000
jmp 0x505399
mov dword [esi], eax
mov dword [esi + 4], edx
mov word [esi + 0x10], bp
inc edi
add esi, 0x28
cmp edi, 3
jl 0x505370
jmp 0x4ffdad
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
mov dword [esp + 0x40], eax
test word [eax + 0x10], cx
je 0x5053d9
push eax
call fcn.004bbad0
add esp, 4
mov dword [esp + 0x40], eax
jmp 0x5053e2
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov edx, dword [ebx + 0xc]
cmp edx, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ebp, byte [esi + 5]
mov ebx, ebp
cmovne ebx, edx
cmp byte [esi + 0x11], 3
jae 0x505422
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x505424
cmp dword [esi + 0x54], 0
jg 0x505422
jl 0x505424
cmp dword [esi + 0x50], 0
jbe 0x505424
mov ebx, ebp
cmp byte [esi + 0xf], 0
jne 0x50543a
cmp dword [esi], 0x58dea0
je 0x50543a
mov ecx, dword [esi + 0xb8]
jmp 0x50543f
mov ecx, 0x571a2c
cmp ebx, 5
jne 0x505484
test ecx, ecx
je 0x50547d
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x505450
sub ecx, edx
test ecx, 0x3fffffff
je 0x50547d
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x50547d
cmp byte [esi + 4], 0
jne 0x505484
cmp dword [eax], 2
jl 0x50547d
cmp dword [eax + 0x34], 0
jne 0x505484
mov ebx, ebp
jmp 0x5055ce
cmp ebx, ebp
je 0x5055ce
cmp ebp, 5
je 0x50549a
cmp ebx, 5
jne 0x5055ce
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x55], 0
je 0x506ded
cmp dword [eax + 0xc0], 1
jg 0x506ded
cmp ebp, 5
jne 0x50559e
xor edi, edi
cmp dword [esi + 0xe8], edi
jne 0x505520
push 1
push esi
mov dword [esp + 0xa8], edi
call fcn.004bc1f0
mov edi, eax
add esp, 8
test edi, edi
jne 0x505588
mov eax, dword [esi]
lea ecx, [esp + 0xa0]
push ecx
push edi
push dword [esi + 0xec]
push eax
mov eax, dword [eax + 0x20]
call eax
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x505588
cmp dword [esp + 0xa0], eax
je 0x505520
push esi
call fcn.004bc360
mov edi, eax
add esp, 4
test edi, edi
jne 0x505588
cmp dword [esi + 0xe8], 0
je 0x505588
push esi
call fcn.004bc020
mov edi, eax
add esp, 4
test edi, edi
jne 0x505588
push dword [esi + 0xe0]
movzx eax, byte [esi + 0xb]
push dword [esi + 0xa8]
push eax
push dword [esp + 0x30]
push dword [esi + 0xe8]
call fcn.0050c660
push esi
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esi + 0xe8], 0
call fcn.004bc0a0
add esp, 0x18
test edi, edi
je 0x505588
cmp byte [esi + 4], 0
jne 0x505588
push 1
push esi
call fcn.004bcbc0
add esp, 8
jmp 0x5055d2
mov eax, edi
mov dword [esp + 0x18], eax
test edi, edi
jne 0x5055d2
push ebx
push esi
call fcn.004eac40
add esp, 8
jmp 0x5055b2
cmp ebp, 4
jne 0x5055ae
push 2
push esi
call fcn.004eac40
add esp, 8
test edi, edi
jne 0x5055d2
xor eax, eax
cmp ebx, 5
sete al
inc eax
push eax
push dword [esp + 0x30]
call fcn.004d09d0
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
je 0x5055d4
mov ebx, ebp
push ebx
push esi
call fcn.004eac40
mov ebx, dword [esp + 0x48]
add esp, 8
mov ecx, 0x2202
mov word [ebx + 0x10], cx
cmp eax, 6
jne 0x5055fb
mov dword [ebx + 8], 0
xor ecx, ecx
jmp 0x50561f
mov ecx, dword [eax*4 + 0x572450]
mov dword [ebx + 8], ecx
test ecx, ecx
je 0x50561f
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x505610
sub ecx, edx
and ecx, 0x3fffffff
mov al, 1
mov dword [ebx + 0xc], ecx
mov byte [ebx + 0x12], al
cmp byte [esp + 0x4c], al
je 0x50563a
push dword [esp + 0x4c]
push ebx
call fcn.005096b0
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov ebp, dword [esp + 0x24]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
je 0x50567e
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
jmp 0x505680
xor eax, eax
push eax
push dword [edx + 4]
lea eax, [ecx + 0x7c]
push ebp
push eax
call fcn.004f39c0
add esp, 0x10
jmp 0x502549
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
mov edi, dword [eax + ecx*8 + 4]
cmp byte [edi + 9], 0
mov esi, dword [edi + 4]
je 0x5056c1
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x5056c1
push edi
call fcn.0049d7c0
add esp, 4
cmp byte [esi + 0x11], 0
jne 0x5056d1
mov eax, 0x65
jmp 0x505788
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 0x30]
mov eax, dword [eax + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
push ebx
push ebp
push esi
call fcn.004aa140
add esp, 0xc
mov dword [esp + 0x2c], eax
cmp ebp, eax
jb 0x505761
cmp ebx, ebp
jae 0x505761
test ebx, ebx
je 0x50575a
mov eax, dword [esi + 8]
test eax, eax
je 0x505716
push 0
push 0
push eax
call fcn.004c6760
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505754
push esi
call fcn.004b1650
push 0
push ebp
push dword [esp + 0x38]
push esi
call fcn.004b0b90
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505754
mov eax, dword [esi + 0xc]
push dword [eax + 0x48]
call fcn.004eb2d0
mov ecx, dword [esi + 0x30]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0xc]
bswap ecx
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], ecx
mov ebp, dword [esp + 0x24]
jmp 0x50578c
mov eax, 0x65
jmp 0x505784
push 0x5797bc
push 0x11f92
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004849d0
add esp, 0x14
mov eax, 0xb
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], eax
cmp byte [edi + 9], 0
je 0x5057a1
add dword [edi + 0xc], 0xffffffff
jne 0x5057a1
push edi
call fcn.00516c80
add esp, 4
mov edx, dword [esp + 0x18]
test edx, edx
je 0x4ff2b9
cmp edx, 0x65
jne 0x506cb8
xor edi, edi
mov dword [esp + 0x18], edi
jmp 0x5003d4
cmp dword [esi + 4], 0
jne 0x5057ea
push dword [esi + 8]
push ebp
call fcn.004d7fb0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [ecx + 0x98]
mov ecx, dword [esi + 8]
inc ecx
xor ecx, eax
and ecx, 3
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [eax + 0x98], ecx
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov ebx, dword [esp + 0x10]
mov bl, byte [ebx + 0xc]
test bl, bl
jne 0x505888
test dword [ebp + 0x24], 4
jne 0x500183
mov eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x18], edx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 8]
add ecx, ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], dl
je 0x505960
inc dword [esi + 0xc]
inc bl
mov byte [esp + 0xcc], bl
cmp byte [esi + 0xa], dl
jne 0x5058c4
push esi
call fcn.0049d7c0
add esp, 4
push dword [esp + 0xcc]
push edi
push esi
call fcn.004c1940
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
jne 0x505947
mov ebp, dword [esi + 4]
mov ecx, dword [ebp + 0x4c]
test ecx, ecx
je 0x505900
nop dword [eax]
cmp dword [ecx + 4], edi
jne 0x5058f9
cmp dword [ecx], esi
je 0x50592e
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x5058f0
push 0
push 0x10
call fcn.004e8780
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x50593a
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [ebp + 0x4c]
mov dword [ecx + 0xc], eax
mov dword [ebp + 0x4c], ecx
cmp bl, byte [ecx + 8]
jbe 0x505936
mov byte [ecx + 8], bl
xor edx, edx
jmp 0x50593f
mov edx, 7
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp byte [esi + 9], 0
je 0x505960
add dword [esi + 0xc], 0xffffffff
jne 0x505960
push esi
call fcn.00516c80
mov edx, dword [esp + 0x1c]
add esp, 4
test edx, edx
je 0x5048ef
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 6
jne 0x506ae6
push dword [esi + 0x10]
push str.database_table_is_locked:__s
push ebp
call fcn.004fec10
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
mov edx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x18], eax
mov esi, dword [edx + 0x10]
mov edx, dword [ebp + 0x180]
test edx, edx
jle 0x5059d4
cmp dword [ebp + 0x198], eax
jne 0x5059d4
mov dword [esp + 0x2c], 6
mov edx, 6
mov dword [esp + 0x18], edx
test esi, esi
je 0x506cb8
jmp 0x505a88
test esi, esi
jne 0x5059f5
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 8]
mov edi, dword [eax]
cmp dword [edi + 0x38], 0
je 0x505a88
xor ecx, ecx
test edx, edx
jle 0x505a20
mov eax, dword [ebp + 0x198]
cmp dword [eax], esi
je 0x505aa0
inc ecx
add eax, 4
cmp ecx, edx
jl 0x505a10
push ebp
call fcn.004b0450
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505a88
push dword [esi + 8]
mov eax, dword [edi + 0x38]
call eax
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505a88
mov ecx, dword [ebp + 0x180]
mov eax, dword [ebp + 0x198]
mov edx, dword [ebp + 0x1fc]
add edx, dword [ebp + 0x1f8]
mov dword [eax + ecx*4], esi
inc dword [ebp + 0x180]
inc dword [esi + 0xc]
test edx, edx
je 0x505a88
cmp dword [edi + 0x50], 0
je 0x505a88
lea eax, [edx - 1]
mov dword [esi + 0x14], edx
push eax
push dword [esi + 8]
mov eax, dword [edi + 0x50]
call eax
add esp, 8
mov dword [esp + 0x18], eax
push dword [esi + 8]
push dword [esp + 0x18]
call fcn.0050bfd0
mov edx, dword [esp + 0x20]
add esp, 8
jmp 0x50254f
xor eax, eax
jmp 0x505a84
mov edi, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x28]
movups xmmword [esp + 0x110], xmm0
mov dword [esp + 0x114], ebp
movups xmmword [esp + 0x100], xmm0
movq qword [esp + 0x120], xmm0
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00508ae0
mov dword [esp + 0x20], eax
add esp, 8
mov eax, dword [esp + 0x110]
and eax, 0x202
cmp eax, 0x202
jne 0x505b13
cmp byte [esp + 0x112], 1
jne 0x505b13
mov edx, dword [esp + 0x108]
jmp 0x505b35
test byte [esp + 0x110], 1
jne 0x505bfd
lea eax, [esp + 0x100]
push 1
push eax
call fcn.00518f50
add esp, 8
mov edx, eax
test edx, edx
je 0x505bfd
mov ecx, dword [edi + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [esp + 0x14]
add esi, 0x7c
push dword [eax + ecx*8]
push edx
push ebp
call fcn.004de200
mov ebx, eax
push 0
mov ecx, dword [ebx + 0x30]
mov edi, dword [ecx]
lea ecx, [ebp + 0x184]
push edi
push ecx
call fcn.004aa430
add esp, 0x18
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x505be3
mov eax, dword [ecx]
mov edx, dword [eax + 4]
test edx, edx
je 0x505be3
cmp dword [eax + 0x14], 0
je 0x505be3
push esi
push edx
push ecx
push ebx
push ebp
call fcn.0051ce60
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505bfd
mov eax, dword [ebx + 0x34]
test eax, eax
je 0x505bfd
cmp dword [eax], ebp
je 0x505bae
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x505ba1
jmp 0x505bfd
push ebp
call fcn.004b0450
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505bfd
push ebx
push ebp
call fcn.004e4590
mov edx, dword [ebp + 0x180]
add esp, 8
mov ecx, dword [ebp + 0x198]
mov dword [ecx + edx*4], eax
inc dword [ebp + 0x180]
inc dword [eax + 0xc]
jmp 0x505bfd
push edi
push str.no_such_module:__s
push ebp
call fcn.004e8760
mov dword [esi], eax
add esp, 0xc
mov eax, 1
mov dword [esp + 0x18], eax
test dword [esp + 0x110], 0x9000
jne 0x505c14
cmp dword [esp + 0x118], 0
je 0x505c24
lea eax, [esp + 0x100]
push eax
call fcn.00519f80
add esp, 4
mov edx, dword [esp + 0x18]
jmp 0x50254f
mov edx, dword [esp + 0x10]
xor eax, eax
inc dword [ebp + 0xcc]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
add ecx, ecx
push dword [eax + ecx*8]
push dword [edx + 0x10]
push ebp
call fcn.004de200
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x505d31
cmp byte [ebx + 0x2b], 1
jne 0x505d31
mov ecx, dword [ebx + 0x34]
test ecx, ecx
je 0x505d31
nop word [eax + eax]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], 0
jg 0x506e2b
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x505c80
push ebx
push ebp
call fcn.0051d390
mov esi, eax
add esp, 8
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov eax, dword [ecx + 0x14]
test eax, eax
jne 0x505caf
mov eax, dword [ecx + 0x10]
inc dword [ebx + 0x18]
push dword [esi + 8]
call eax
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x505d18
mov dword [esi + 8], eax
mov dword [ebx + 0x34], eax
mov ebp, dword [esi]
add dword [esi + 0xc], 0xffffffff
jne 0x505d14
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x505ce2
mov eax, dword [ecx]
push ecx
mov eax, dword [eax + 0x10]
call eax
add esp, 4
mov edi, dword [esi + 4]
mov ebx, dword [esi]
add dword [edi + 8], 0xffffffff
jne 0x505d06
mov eax, dword [edi + 0x10]
test eax, eax
je 0x505cfc
push dword [edi + 0xc]
call eax
add esp, 4
push edi
push ebx
call fcn.004d5a50
add esp, 8
push esi
push ebp
call fcn.004d5a50
mov ebx, dword [esp + 0x34]
add esp, 8
mov ebp, dword [esp + 0x24]
cmp dword [ebp + 0x210], 0
jne 0x505d27
add dword [ebx + 0x18], 0xffffffff
jne 0x505d31
push ebx
push ebp
call fcn.004a51c0
add esp, 8
dec dword [ebp + 0xcc]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506cbc
mov ecx, dword [esp + 0x14]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov dword [esp + 0x90], 0
mov eax, dword [edx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x506e4f
mov edi, dword [esi]
test edi, edi
je 0x506e4f
lea eax, [esp + 0x90]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ebx, dword [esp + 0x1c]
push esi
push ebx
mov dword [esp + 0x28], eax
call fcn.0050bfd0
mov edx, dword [esp + 0x28]
add esp, 0x10
test edx, edx
jne 0x507070
mov eax, dword [esp + 0x90]
push 2
push edx
mov dword [eax], esi
mov eax, dword [esp + 0x18]
push dword [eax + 4]
push ebx
call fcn.00498490
add esp, 0x10
test eax, eax
je 0x506e3b
mov ecx, dword [esp + 0x90]
mov dword [eax + 0x2c], ecx
inc dword [esi + 4]
jmp 0x503691
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + ecx*4]
call fcn.005156a0
test eax, eax
jne 0x5010e6
push eax
push 8
call fcn.004e8780
mov edi, eax
add esp, 8
test edi, edi
je 0x5010e6
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [edi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [edi + 4], ecx
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x505e5b
push esi
call fcn.004bbad0
add esp, 4
mov esi, eax
mov eax, 1
push esi
mov word [esi + 0x10], ax
call fcn.00519f80
mov dword [esi], str.ValueList
mov eax, 0x1a01
mov dword [esi + 8], edi
add esp, 4
mov word [esi + 0x10], ax
mov byte [esi + 0x13], 0x70
mov dword [esi + 0x24], fcn.004941f0
jmp 0x503691
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea ebx, [ebp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x60]
mov edi, dword [ebx + edx*8]
lea ebx, [ebx + edx*8]
movd xmm0, ebx
mov dword [esp + 0x2c], ebx
mov eax, dword [eax + ecx*4]
mov ebx, dword [esi + 0x5c]
mov dword [esp + 0x54], eax
pshufd xmm3, xmm0, 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x34], ecx
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov ecx, dword [eax]
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebp + edx*8]
mov dword [esp + 0x40], ecx
xor ecx, ecx
test edi, edi
jle 0x505fdb
cmp edi, 0x10
jb 0x505fc3
cmp dword [0x590f8c], 2
jl 0x505fc3
movaps xmm2, xmmword [0x5799c0]
mov eax, edi
and eax, reloc.WS2_32.dll_ntohs
jns 0x505f17
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm1, xmmword [0x5799d0]
lea edx, [ebx + 0x20]
mov ebp, edi
mov esi, 8
sub ebp, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [esi - 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x40]
paddd xmm0, xmm2
add ecx, 0x10
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x60], xmm0
movd xmm0, eax
lea eax, [esi + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x50], xmm0
movd xmm0, esi
add esi, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x40], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x30], xmm0
cmp ecx, ebp
jl 0x505f30
cmp ecx, edi
jge 0x505fdb
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, edi
jl 0x505fd0
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
push ebx
push edi
push dword [eax + 0x10]
mov edi, dword [esp + 0x78]
push dword [esp + 0x4c]
push esi
mov eax, dword [edi + 0x20]
call eax
push dword [esp + 0x50]
mov ebp, dword [esp + 0x2c]
push ebp
mov dword [esp + 0x34], eax
call fcn.0050bfd0
mov edx, dword [esp + 0x34]
add esp, 0x1c
test edx, edx
jne 0x506ae2
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [esp + 0x58]
add esp, 4
mov edi, dword [esp + 0x18]
test eax, eax
mov byte [ecx + 2], 0
jmp 0x5003ce
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, edx
mov ecx, dword [esp + 0x28]
cmp byte [edi + 2], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x506076
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4ff7e8
mov eax, 1
mov word [esi + 0x10], ax
jmp 0x4ff7f1
mov eax, dword [edi + 0x2c]
xorps xmm0, xmm0
mov ebx, dword [eax]
mov al, byte [esp + 0x4c]
mov ebp, dword [ebx]
movups xmmword [esp + 0x238], xmm0
mov byte [esp + 0x240], al
mov eax, dword [esp + 0x10]
movups xmmword [esp + 0x228], xmm0
mov dword [esp + 0x228], esi
test byte [eax + 2], 1
je 0x5060d1
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x5060c0
push esi
call fcn.00519fc0
add esp, 4
mov eax, 0x401
mov word [esi + 0x10], ax
mov dword [esi], 0
jmp 0x5060e5
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
push dword [eax + 8]
lea eax, [esp + 0x22c]
push eax
push dword [edi + 0x2c]
mov eax, dword [ebp + 0x2c]
call eax
mov ebp, dword [esp + 0x20]
push ebx
push ebp
mov dword [esp + 0x2c], eax
call fcn.0050bfd0
add esp, 0x14
cmp dword [esp + 0x23c], 0
jle 0x506163
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x506135
cmp byte [esi + 0x12], 1
jne 0x506135
mov eax, dword [esi + 8]
jmp 0x506149
test cl, 1
je 0x50613e
xor eax, eax
jmp 0x506149
push 1
push esi
call fcn.00518f50
add esp, 8
push eax
push 0x56155c
push ebp
call fcn.004fec10
mov eax, dword [esp + 0x248]
add esp, 0xc
mov dword [esp + 0x18], eax
test byte [esi + 0x10], 2
jne 0x506172
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x12], al
jmp 0x506188
mov al, byte [esp + 0x4c]
cmp byte [esi + 0x12], al
je 0x506188
push dword [esp + 0x4c]
push esi
call fcn.005096b0
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test edx, edx
jne 0x506ae6
mov ebp, dword [esp + 0x24]
mov edi, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4ff2b9
mov eax, dword [edi + 0x2c]
push eax
mov esi, dword [eax]
mov ebx, dword [esi]
mov eax, dword [ebx + 0x24]
call eax
push esi
push dword [esp + 0x1c]
mov dword [esp + 0x24], eax
call fcn.0050bfd0
mov edx, dword [esp + 0x24]
add esp, 0xc
test edx, edx
jne 0x506cb8
push dword [edi + 0x2c]
mov eax, dword [ebx + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x5047f1
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov dword [esp + 0x10], eax
jmp 0x5047f5
mov ebx, dword [ebp + 0x20]
or dword [ebp + 0x20], 0x4000000
and ebx, 0x4000000
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebp + 0x24], eax
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 2
lea esi, [ecx + eax*8]
jne 0x506268
mov byte [esi + 0x12], 1
jmp 0x506287
cmp byte [esi + 0x12], 1
je 0x506287
push 1
push esi
call fcn.005096b0
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x506cb8
mov eax, dword [edi]
push dword [esi + 8]
push edi
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x18], eax
test ebx, ebx
jne 0x5062aa
and dword [ebp + 0x20], 0xfbffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x24], eax
push edi
push dword [esp + 0x18]
call fcn.0050bfd0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
and dword [ecx + 0x98], 0xfffffffc
test edx, edx
jne 0x507065
mov eax, dword [esp + 0x1c]
mov edi, edx
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
xorps xmm0, xmm0
movlpd qword [esp + 0xdc], xmm0
cmp byte [ebp + 0x57], 0
jne 0x5010e6
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x506e4f
mov ebx, dword [edi]
test ebx, ebx
je 0x506e4f
cmp dword [ebx + 0x34], 0
mov edx, dword [edx + 8]
je 0x500937
mov al, byte [ebp + 0x5c]
mov esi, dword [ecx + 0x5c]
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x506352
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x506347
mov eax, dword [esp + 0x10]
mov al, byte [eax + 2]
mov byte [ebp + 0x5c], al
lea eax, [esp + 0xdc]
push eax
mov eax, dword [ebx + 0x34]
push esi
push edx
push edi
call eax
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x6b]
push edi
push dword [esp + 0x28]
mov byte [ebp + 0x5c], al
call fcn.0050bfd0
mov edx, dword [esp + 0x30]
add esp, 0x18
test edx, edx
jne 0x5063d8
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], edx
je 0x5063a9
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
test edx, edx
jne 0x507065
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
cmp dl, 0x13
jne 0x5063a9
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x5063a9
movzx ecx, word [edi + 2]
cmp ecx, 4
jne 0x506e74
mov esi, dword [esp + 0x10]
xor edi, edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x506444
push edx
call fcn.004bbad0
add esp, 4
mov edx, eax
jmp 0x50644d
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
lea ebx, [eax + ecx*8]
mov eax, 0x9000
test word [ebx + 0x10], ax
je 0x5064b7
push ebx
call fcn.004bbad0
mov edx, dword [esp + 0x14]
add esp, 4
mov ebx, eax
jmp 0x5064c0
mov eax, 4
mov word [ebx + 0x10], ax
mov ecx, dword [edx + 4]
xor edi, edi
mov eax, dword [ebp + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x5064e0
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x5064f8
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x5064f8
push esi
call fcn.0049d7c0
add esp, 4
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x506507
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x506522
add dword [esi + 0xc], 0xffffffff
jne 0x506522
push esi
call fcn.00516c80
add esp, 4
mov dword [ebx], edi
mov dword [ebx + 4], 0
jmp 0x4ff7f1
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
cmp dword [ebx], esi
je 0x50658e
mov al, byte [esp + 0x4c]
mov dword [ebx + 0xc], ecx
mov dword [ebx], esi
mov byte [ebx + 0x18], al
movzx ecx, byte [ebx + 0x1a]
sub ecx, 1
js 0x50658e
mov ebp, dword [esp + 0x10]
lea edx, [ebx + 0x1c]
mov ebx, dword [esp + 0x28]
lea edx, [edx + ecx*4]
nop
mov eax, dword [ebp + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [edx + 4], eax
jns 0x506570
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x24]
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
lea eax, [ebx + 0x1c]
mov ecx, dword [ebx + 4]
push eax
movzx eax, byte [ebx + 0x1a]
push eax
mov eax, dword [ecx + 0x10]
push ebx
call eax
mov eax, dword [ebx + 0x14]
add esp, 0xc
test eax, eax
je 0x50675a
jle 0x50660e
movzx ecx, word [esi + 0x10]
mov eax, ecx
and eax, 0x202
cmp eax, 0x202
jne 0x5065e1
cmp byte [esi + 0x12], 1
jne 0x5065e1
mov eax, dword [esi + 8]
jmp 0x5065f5
test cl, 1
je 0x5065ea
xor eax, eax
jmp 0x5065f5
push 1
push esi
call fcn.00518f50
add esp, 8
push eax
push 0x56155c
push dword [esp + 0x1c]
call fcn.004fec10
mov eax, dword [ebx + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
lea edi, [ecx + 0xe4]
mov esi, dword [edi]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [eax + 4]
test esi, esi
je 0x506722
nop dword [eax]
test ebx, ebx
js 0x506657
cmp dword [esi], ebx
jne 0x50664f
mov ecx, dword [esi + 4]
test ecx, ecx
js 0x50664f
cmp ecx, 0x1f
jg 0x506657
mov eax, 1
shl eax, cl
test ebp, eax
je 0x506657
lea edi, [esi + 0x10]
jmp 0x506714
mov eax, dword [esi + 0xc]
test eax, eax
je 0x506666
push dword [esi + 8]
call eax
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov dword [edi], eax
cmp esi, dword [ecx + 0x164]
jae 0x5066aa
cmp esi, dword [ecx + 0x15c]
jb 0x506692
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x506714
cmp esi, dword [ecx + 0x160]
jb 0x5066aa
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x506714
cmp dword [ecx + 0x210], 0
je 0x5066bf
push esi
push ecx
call fcn.004b8600
add esp, 8
jmp 0x506714
cmp dword [0x58d428], 0
je 0x50670a
mov eax, dword [0x590a50]
test eax, eax
je 0x5066db
push eax
call dword [0x58d478]
add esp, 4
push esi
call dword [0x58d454]
sub dword [0x5909e8], eax
dec dword [0x590a0c]
push esi
call dword [0x58d44c]
mov eax, dword [0x590a50]
add esp, 8
test eax, eax
je 0x506714
push eax
call dword [0x58d480]
jmp 0x506711
push esi
call dword [0x58d44c]
add esp, 4
mov esi, dword [edi]
test esi, esi
jne 0x506630
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x506cbc
mov ebp, dword [esp + 0x24]
mov edi, edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov eax, dword [esi + 4]
mov ebx, 0xf7ff
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
and word [edx + eax*8 + 0x10], bx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
push edx
push ebx
mov eax, dword [edx + 4]
lea edi, [eax + eax*4]
call fcn.004a9e00
mov esi, eax
add esp, 8
mov eax, dword [ebx + edi*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0052ed40
mov esi, eax
and eax, 7
shrd esi, edx, 3
mov edx, dword [ebx + edi*8 + 8]
movsx ecx, byte [esi + edx]
bts ecx, eax
mov byte [esi + edx], cl
jmp 0x4ff7f1
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
push edx
push edi
mov eax, dword [edx + 4]
lea ebx, [eax + eax*4]
call fcn.004a9e00
mov esi, eax
add esp, 8
mov eax, dword [edi + ebx*8 + 0xc]
mov ecx, edx
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.0052ed40
mov edi, eax
mov eax, dword [esp + 0x28]
mov esi, edi
and edi, 7
shrd esi, edx, 3
mov ecx, dword [eax + ebx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [esp + 0x18]
shl eax, cl
mov ecx, dword [esp + 0x14]
test eax, edx
jne 0x506849
inc dword [ecx + 0xc4]
jmp 0x5003d8
inc dword [ecx + 0xc0]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov cl, byte [ebp + 0x5e]
mov ebx, dword [esp + 0x14]
test cl, 0x41
je 0x506917
cmp byte [ebx + 0x95], 0xfe
je 0x506917
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x506898
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x506917
push eax
test cl, 0x40
je 0x5068c4
push ebx
call fcn.005075a0
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push dword [ebp + 0xdc]
call ecx
push esi
call fcn.004941f0
mov esi, dword [esp + 0x24]
add esp, 0x14
jmp 0x506917
cmp dword [ebp + 0xc8], 1
jle 0x506903
push str.____s
push ebp
call fcn.004e8760
mov ecx, dword [ebp + 0xd8]
mov esi, eax
push esi
push ebx
push dword [ebp + 0xdc]
push 1
call ecx
add esp, 0x1c
test esi, esi
je 0x5068fd
push esi
push ebp
call fcn.004d5a50
add esp, 8
mov esi, dword [esp + 0x10]
jmp 0x506917
mov eax, dword [ebp + 0xd8]
push ebx
push dword [ebp + 0xdc]
push 1
call eax
add esp, 0x10
mov eax, dword [esi + 4]
cmp eax, dword [0x58d534]
jl 0x50695c
cmp byte [esi], 0xb5
je 0x4fee3e
mov edx, 1
cmp dword [ebx + 0x6c], edx
jle 0x50695a
mov eax, 0x14
nop word [eax + eax]
mov ecx, dword [ebx + 0x68]
cmp byte [ecx + eax], 0xf
jne 0x506951
mov dword [ecx + eax + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x506940
xor eax, eax
mov ebp, dword [esp + 0x10]
inc eax
mov ecx, dword [esp + 0x14]
mov dword [ebp + 4], eax
inc dword [ecx + 0xbc]
jmp 0x5003dc
mov edi, dword [esp + 0x18]
jmp 0x5003d8
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x80]
add esi, 0x14
jmp 0x4fed2b
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
mov dword [ebx + 0x24], ecx
mov al, byte [edi + 8]
mov byte [ebx + 0x94], al
test ecx, ecx
je 0x506a42
movzx eax, word [edi + 2]
test ax, ax
je 0x5069f8
push dword [eax*4 + 0x5726d0]
push str._s_constraint_failed
push ebx
call fcn.004fec10
mov eax, dword [edi + 0x10]
add esp, 0xc
test eax, eax
je 0x506a0d
push eax
push dword [ebx + 0x7c]
push str._z:__s
push ebp
call fcn.004e8760
mov ebp, ebx
add esp, 0x10
mov dword [ebp + 0x7c], eax
jmp 0x506a0f
push dword [edi + 0x10]
mov ebp, ebx
push 0x56155c
push ebp
call fcn.004fec10
add esp, 0xc
jmp 0x506a0f
mov ebp, ebx
push dword [ebp + 0x7c]
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x24]
push dword [ebp + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.004849d0
add esp, 0x14
jmp 0x506a44
mov ebp, ebx
push ebp
call fcn.00507e30
mov esi, dword [esp + 0x14]
mov edi, eax
add esp, 4
cmp edi, 5
jne 0x506a60
mov dword [ebp + 0x24], eax
jmp 0x5071ec
cmp dword [ebp + 0x24], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x5071ec
mov edx, 0x14
jmp 0x506cb4
push 0x172f2
call fcn.004d41f0
mov esi, dword [esp + 0x14]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x506cc0
mov ecx, dword [esp + 0x34]
and edi, 0x3f
mov edx, dword [esp + 0x2c]
add ecx, ecx
mov ebp, dword [esp + 0x14]
push dword [edx + ecx*8]
mov ecx, dword [esp + 0x70]
push dword [ecx]
push dword [eax*4 + 0x58d60c]
movzx eax, byte [edi + 0x571a38]
push dword [eax*4 + 0x58def4]
push str.cannot_store__s_value_in__s_column__s._s
push ebp
call fcn.004fec10
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
push str.cannot_open_savepoint___SQL_statements_in_progress
push ecx
call fcn.004fec10
add esp, 8
mov edx, 5
jmp 0x506cb4
mov ebp, dword [esp + 0x14]
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x18]
mov edx, 5
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov esi, dword [esp + 0x10]
mov ebp, eax
mov ebx, dword [esp + 0x20]
mov byte [edi + 0x55], 0
jmp 0x506cc4
mov esi, dword [esp + 0x10]
mov eax, 0x66666667
mov ebp, dword [esp + 0x14]
mov ecx, esi
sub ecx, dword [esp + 0x20]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov byte [edi + 0x55], 0
mov edi, 5
mov dword [ebp + 0x24], edi
jmp 0x5071ec
mov edi, 0x65
mov ebp, ecx
jmp 0x5071ec
mov esi, dword [esp + 0x10]
and edx, 0x100000
or edx, 0
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
je 0x506ba6
mov edx, 8
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov edx, 0xb
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp dl, 5
jne 0x506ae6
mov edi, dword [esp + 0x18]
mov ecx, esi
sub ecx, dword [esp + 0x20]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edi
jmp 0x5071ec
mov eax, dword [ecx + 0x7c]
test eax, eax
je 0x506bfc
push eax
push ebx
call fcn.004d5a50
add esp, 8
push 0
push 0x1c
push ebx
call fcn.004d5b60
add esp, 0xc
test eax, eax
je 0x506c2d
movups xmm0, xmmword [str.database_schema_has_changed]
movups xmmword [eax], xmm0
movq xmm0, qword [0x5740d0]
movq qword [eax + 0x10], xmm0
mov ecx, dword [0x5740d8]
mov dword [eax + 0x18], ecx
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x7c], eax
mov edx, dword [edi + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x34]
je 0x506c54
push edx
push ebx
call fcn.004f2930
add esp, 8
mov eax, dword [ebp + 0x98]
mov edx, 0x11
mov esi, dword [esp + 0x10]
and eax, 0xffffffed
mov ebx, dword [esp + 0x20]
or eax, 1
mov dword [esp + 0x18], edx
mov dword [ebp + 0x98], eax
jmp 0x506cc4
mov edx, 0x204
jmp 0x506cb4
push dword [esi + 0x10]
call fcn.004cdac0
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x506cb8
push 0x5797bc
push 0x15b52
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004849d0
mov edx, 0xb
add esp, 0x14
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
cmp byte [edi + 0x57], 0
je 0x507090
mov edx, 7
jmp 0x5070bb
push 0x5797bc
push 0x17bb6
jmp 0x506c9b
push str.index_corruption
push 0x17feb
push 0x30b
call fcn.004f2730
add esp, 0xc
mov edx, eax
jmp 0x506cb4
cmp dword [esp + 0x1d0], 0
je 0x506d1d
lea eax, [esp + 0x1b8]
push eax
call fcn.00519f80
add esp, 4
push 0x5797bc
push 0x15b31
jmp 0x506c9b
push 0x180b8
call fcn.004d41f0
add esp, 4
mov edx, eax
jmp 0x506cb4
mov ebp, dword [esp + 0x14]
mov edx, 6
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov byte [ebp + 0x94], 2
jmp 0x506cc4
push ebp
call fcn.004f28b0
mov edx, dword [esp + 0x1c]
add esp, 4
cmp edx, 7
je 0x5010e6
jmp 0x506cb4
push ebp
call fcn.004f28b0
add esp, 4
jmp 0x5010e6
push dword [esp + 0xa4]
call fcn.004941f0
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x506cb8
mov eax, 1
push str.too_many_levels_of_trigger_recursion
push ecx
mov dword [esp + 0x20], eax
call fcn.004fec10
add esp, 8
mov edx, 1
jmp 0x506cb8
push esi
call fcn.00497000
mov ebp, dword [esp + 0x18]
push eax
push 0x56155c
push ebp
call fcn.004fec10
mov edx, dword [esp + 0x28]
add esp, 0x10
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
mov ebp, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x18], eax
mov ecx, str.out_of
cmp ebx, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov edx, 1
jmp 0x506cc4
dec dword [ebp + 0xcc]
mov edx, 6
jmp 0x506cb4
push dword [esp + 0x90]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x5010e6
mov edx, 6
jmp 0x506cb4
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x68], ebx
mov dword [esp + 0x84], eax
jmp 0x506cb4
mov ebp, dword [esp + 0x14]
mov esi, 2
mov ebx, dword [esp + 0x20]
cmp ecx, 5
movzx eax, cl
cmove eax, esi
mov esi, dword [esp + 0x10]
mov byte [ebp + 0x94], al
jmp 0x506cc4
mov eax, dword [ecx + 0x1c]
mov edi, dword [esp + 0x10]
add eax, 2
mov edx, dword [esp + 0x28]
or eax, 1
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ecx + 0x78], eax
cmp byte [ebp + 0x57], 0
jne 0x5010e6
test byte [ebp + 0x5e], 4
je 0x506edf
mov eax, dword [ebp + 0xd8]
push 0
push ecx
push dword [ebp + 0xdc]
push 4
call eax
add esp, 0x10
mov ebp, dword [esp + 0x14]
mov ecx, edi
sub ecx, dword [esp + 0x20]
mov eax, 0x66666667
imul ecx
mov edi, 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ebp + 0x20], eax
jmp 0x5071e8
mov edi, dword [esp + 0x10]
movzx eax, byte [ebp + 0x55]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
cmp ebx, eax
je 0x506ff2
test ecx, ecx
je 0x506f38
push 0x204
push ebp
call fcn.004f3170
mov esi, dword [esp + 0x1c]
add esp, 8
mov al, 1
jmp 0x506f8c
test ebx, ebx
je 0x506f6d
cmp dword [ebp + 0xc4], 0
jle 0x506f6d
mov ebp, dword [esp + 0x14]
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x18]
mov edx, 5
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov esi, dword [esp + 0x14]
push 1
push esi
call fcn.004fe510
mov edi, eax
add esp, 8
test edi, edi
jne 0x5071e4
mov edi, dword [esp + 0x10]
mov al, bl
push esi
mov byte [ebp + 0x55], al
call fcn.00507e30
add esp, 4
cmp eax, 5
jne 0x506fcf
mov ecx, edi
mov eax, 0x66666667
sub ecx, dword [esp + 0x20]
mov edi, 5
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x20], eax
mov al, 1
sub al, bl
mov byte [ebp + 0x55], al
mov ebp, dword [esp + 0x14]
mov dword [ebp + 0x24], edi
jmp 0x5071e8
push ebp
call fcn.004d1ae0
mov ebp, dword [esp + 0x18]
add esp, 4
mov edi, 0x65
mov eax, 1
cmp dword [ebp + 0x24], 0
cmovne edi, eax
jmp 0x5071e8
test ebx, ebx
jne 0x506ffd
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x50700c
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
mov edx, str.cannot_commit___no_transaction_is_active
cmove eax, edx
mov ebp, dword [esp + 0x14]
push eax
push ebp
call fcn.004fec10
mov esi, dword [esp + 0x18]
mov edx, 1
mov ebx, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x506cb4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], eax
jmp 0x5010e6
mov ebx, dword [esp + 0x20]
mov ebp, ecx
jmp 0x506cc4
mov esi, dword [esp + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
jmp 0x506cc4
cmp edx, 0x210a
jne 0x5070bf
push 0x5797bc
push 0x1894a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004849d0
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x18], edx
cmp dword [ebp + 0x7c], 0
jne 0x507127
cmp edx, 0xc0a
je 0x507127
mov eax, edx
mov ecx, 0x5793f4
sub eax, 0x64
je 0x50710a
sub eax, 1
je 0x507103
sub eax, 0x19f
je 0x5070fc
movzx eax, dl
cmp eax, 0x1d
jae 0x50710f
mov eax, dword [eax*4 + 0x571058]
test eax, eax
je 0x50710f
mov ecx, eax
jmp 0x50710f
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x50710f
mov ecx, str.no_more_rows_available
jmp 0x50710f
mov ecx, str.another_row_available
push ecx
push 0x56155c
push ebp
call fcn.004fec10
mov edx, dword [esp + 0x24]
add esp, 0xc
mov dword [ebp + 0x24], edx
jmp 0x507132
mov dword [ebp + 0x24], edx
cmp edx, 0xc0a
je 0x507159
movzx eax, dl
cmp eax, 0xe
je 0x50713f
cmp eax, 0xa
jne 0x507159
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x507154
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x507156
xor eax, eax
mov dword [edi + 0x4c], eax
push dword [ebp + 0x7c]
mov ecx, esi
mov eax, 0x66666667
push dword [ebp + 0xc8]
sub ecx, ebx
mov ebx, dword [esp + 0x20]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.004849d0
add esp, 0x14
cmp byte [ebp + 0x97], 2
jne 0x50719c
push ebp
call fcn.00507e30
add esp, 4
cmp ebx, 0xc0a
jne 0x5071af
push edi
call fcn.004e9170
add esp, 4
jmp 0x5071c4
cmp ebx, 0xb
jne 0x5071c4
cmp byte [edi + 0x55], 0
jne 0x5071c4
mov eax, dword [edi + 0x20]
mov dword [edi + 0x20], eax
or dword [edi + 0x24], 2
mov al, byte [esp + 0x67]
mov edi, 1
test al, al
je 0x5071ec
movzx eax, al
dec eax
push eax
push dword [esp + 0x28]
call fcn.004f2930
add esp, 8
jmp 0x5071ec
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0x80], ebx
jb 0x507255
mov edx, dword [esp + 0x68]
ja 0x507208
cmp dword [esp + 0x1c], edx
jb 0x507255
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x174]
test eax, eax
je 0x507255
add edx, dword [ecx + 0x17c]
push dword [ecx + 0x178]
mov dword [esp + 0x6c], edx
adc ebx, 0
call eax
add esp, 4
test eax, eax
je 0x5071f3
or ebx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x84], eax
mov dword [esp + 0x18], edx
jmp 0x506cc4
mov edx, dword [esp + 0x1c]
add dword [ebp + 0xb4], edx
cmp dword [ebp + 0xa0], 0
je 0x507271
push ebp
call fcn.00519ed0
add esp, 4
mov ecx, dword [esp + 0x354]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0052df19
add esp, 0x348
ret