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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1d0
mov edi, ecx
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x5c], eax
mov esi, dword [ecx]
mov eax, dword [ecx + 0x58]
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 0x54]
mov byte [esp + 0x54], al
call fcn.00454170
cmp dword [esi + 0x170], 0
je 0x45770f
mov eax, dword [edi + 0xb0]
mov ebx, edi
mov edi, dword [esi + 0x178]
xor edx, edx
div edi
sub edi, edx
xor ecx, ecx
jmp 0x45771b
mov ebx, edi
mov edi, 0xffffffff
mov ecx, 0xffffffff
cmp dword [ebx + 0x24], 7
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], esi
jne 0x4577c7
mov dword [esp + 0xdc], 0
mov dword [esp + 0x130], 0
xor eax, eax
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0xc], ecx
cmp byte [esi + 0x57], 0
jne 0x4577ac
cmp byte [esi + 0x58], 0
jne 0x4577ac
mov byte [esi + 0x57], 1
cmp dword [esi + 0xc4], 0
jle 0x457778
mov dword [esi + 0x128], 1
inc dword [esi + 0x130]
mov word [esi + 0x134], 0
mov eax, dword [esi + 0x108]
test eax, eax
je 0x4577ac
push str.out_of_memory
push eax
call fcn.00434540
add esp, 8
mov eax, dword [esi + 0x108]
mov dword [eax + 0xc], 7
push str.out_of_memory
push dword [esp + 0x34]
call fcn.00455690
add esp, 8
mov edx, 7
jmp 0x46244a
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x78], 0
mov dword [esi + 0x1c4], 0
mov eax, dword [esi + 0x128]
test eax, eax
je 0x45782b
mov dword [esp + 0xc], ecx
mov dword [esp + 0xdc], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x50], 0
mov edx, 9
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
jmp 0x46244a
lea eax, [ebx + 0x58]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x20]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x5c]
lea eax, [edx + eax*4]
lea edx, [ebx + 0xe0]
mov dword [esp + 0x150], edx
lea edx, [esi + 0x10]
mov dword [esp + 0x60], edx
lea edx, [ebx + 0x60]
mov dword [esp + 0x40], edx
lea edx, [ebx + 0x7c]
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x1c], 0
jmp 0x4578cb
mov ecx, dword [esi + 0x24]
lea edx, [esp + 0x70]
push edi
push eax
call fcn.00464a10
add esp, 8
mov dword [esi + 0x18], 0
test eax, eax
jne 0x46232b
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add eax, 0x14
add dword [esp + 0xdc], 1
adc dword [esp + 0x130], 0
mov dword [esp + 0x14], eax
movzx ebx, byte [eax]
cmp ebx, 0xb5
ja case.0x4578ee.89
mov dword [esp + 0xc], ecx
jmp dword [ebx*4 + 0x5272b0]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x38], eax
lea ebx, [eax + eax*4]
mov dword [esp + 0x3c], ecx
lea edi, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
movzx eax, word [edx + ebx*8 + 0x10]
movzx ecx, word [edx + edi*8 + 0x10]
mov dword [esp + 0x34], eax
movzx esi, ax
mov dword [esp + 0x48], ecx
movzx ecx, cx
mov dword [esp + 0x2c], ecx
and ecx, esi
lea eax, [edx + ebx*8]
mov dword [esp + 0x24], eax
lea eax, [edx + edi*8]
test cl, 4
jne 0x457bee
mov dword [esp + 0x64], eax
lea ebx, [edx + ebx*8]
add ebx, 0x10
mov dword [esp + 0x68], ebx
lea eax, [edx + edi*8 + 0x10]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x2c]
mov ebx, edi
mov edx, esi
or ebx, esi
mov eax, dword [esp + 0x14]
movzx esi, word [eax + 2]
test bl, 1
mov eax, edi
jne 0x458688
and esi, 0x47
cmp si, 0x43
mov edi, dword [esp + 0x10]
jb 0x45becb
test bl, 2
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
jne 0x45d07f
mov ebx, dword [esp + 0x48]
jmp 0x45d0bb
mov dword [esp + 0x10], edi
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ebx*8]
mov dword [esp + 0x20], ecx
movzx eax, word [eax + ebx*8 + 0x10]
mov ecx, eax
and ecx, 0x2c
je 0x45866e
mov dword [esp + 0x2c], ecx
jmp 0x45c1cc
mov dword [esp + 0x10], edi
mov dword [esp + 0xe0], 0xffffffff
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov edi, dword [eax + ecx*4]
movzx edx, byte [esi]
mov word [edi + 2], 0
mov dword [edi + 0x18], 0
cmp byte [edi + 4], 0
mov dword [esp + 0x20], edx
je 0x4586b6
mov eax, dword [esi + 0xc]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea ecx, [eax + esi*8]
movzx eax, word [eax + esi*8 + 0x10]
mov edx, eax
and edx, 0x2e
mov dword [esp + 0x24], eax
cmp dx, 2
jne 0x457a6a
mov ebx, ecx
xor edx, edx
call fcn.00433510
mov ecx, ebx
movzx eax, word [ebx + 0x10]
movzx ebx, ax
test bl, 0x24
je 0x45be87
mov esi, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45e551
mov dword [esp + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0xe0], ecx
movzx ecx, word [edx + 0x10]
mov word [esp + 0xf4], cx
xor edi, edi
cmp byte [edx], 0x29
mov ecx, 0
sbb ecx, ecx
mov byte [esp + 0xf6], cl
mov ecx, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + ecx*8]
mov dword [esp + 0xe4], ecx
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
mov esi, dword [eax + 0x24]
mov ecx, esi
call fcn.004514d0
mov eax, dword [esi + 0x2c]
test eax, eax
jle 0x461c66
mov word [esp + 0x80], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0
movzx ecx, word [esi + 0x30]
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x74]
mov ebx, dword [ebx + 0x3c]
sub ebx, edx
test ebx, ebx
cmovg edi, ebx
cmp ebx, ecx
cmovge edi, ecx
mov dword [esp + 0x78], edx
cmp edi, eax
jae 0x458609
lea edi, [esp + 0x70]
mov ecx, esi
xor edx, edx
push edi
push eax
call fcn.00463050
add esp, 8
test eax, eax
jne 0x46232b
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
jmp 0x458617
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
lea ebx, [edx + edx*4]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [esi + eax*8 + 0x10]
lea edx, [ecx + ecx*4]
movzx ecx, word [esi + edx*8 + 0x10]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], eax
or ecx, eax
lea eax, [esi + ebx*8]
mov dword [esp + 0x20], eax
test cl, 1
jne 0x4585f5
mov dword [esp + 0x48], ebx
lea ecx, [esi + edx*8]
test byte [esp + 0x24], 0x24
je 0x45bf6c
mov esi, dword [ecx]
mov edx, dword [ecx + 4]
mov ebx, dword [esp + 0x34]
jmp 0x45ef0b
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov edi, dword [eax]
mov esi, dword [eax + 4]
cmp edi, edx
mov ebx, esi
sbb ebx, ecx
jge 0x458747
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x52a92b], 0
jne 0x45e645
mov dword [esp + 0x6c], 1
jmp 0x4578bc
mov eax, ebx
mov ebx, edi
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 4]
mov edi, dword [ecx + edx*4]
mov esi, dword [edi + 0x24]
cmp al, 0x89
jne 0x45baac
mov dword [edi + 0x1c], 0xffffffff
cmp byte [esi], 0
jne 0x45bab7
jmp 0x46009d
mov eax, dword [esp + 0x30]
inc dword [eax + 0xa8]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov ebx, dword [eax + ecx*4]
cmp byte [ebx], 1
mov ecx, dword [ebx + 0x24]
jne 0x45877b
cmp byte [ecx + 0x38], 0
je 0x45c6ff
mov dword [esp + 0x154], ebx
mov ebx, ecx
call fcn.0046e930
test eax, eax
mov esi, dword [esp + 0x18]
jne 0x461c16
cmp byte [ebx + 0x3b], 0
je 0x45e292
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x15c], ecx
mov dword [esp + 0x64], eax
lea ecx, [eax + eax*8]
lea eax, [ebx + ecx*8]
add eax, 0x40
mov dword [esp + 0x2c], eax
mov dword [esp + 0xe0], 0
mov edx, dword [ebx + ecx*8 + 0x5c]
cmp edx, 0x11
jl 0x4581d1
mov dword [esp + 0x1c], ecx
lea eax, [ebx + ecx*8]
add eax, 0x5c
mov dword [esp + 0x3c], eax
xor esi, esi
mov eax, 0x10
xor ecx, ecx
nop word cs:[eax + eax]
mov edi, edx
shld ecx, eax, 4
sar edi, 0x1f
shl eax, 4
cmp eax, edx
mov ebx, ecx
sbb ebx, edi
mov ebx, esi
lea esi, [esi - 1]
jl 0x457d10
mov dword [esp + 0x44], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
cmp edx, 0x11
mov edi, dword [esp + 0x10]
jl 0x4581e1
mov eax, dword [0x53c308]
test eax, eax
je 0x457d60
push 0x64
call eax
add esp, 4
xor edx, edx
test eax, eax
jne 0x457da3
mov ecx, 0x3d0
xor edx, edx
call fcn.00424d20
xor edx, edx
test eax, eax
je 0x457da3
mov edi, eax
lea esi, [eax + 0x10]
push 0x3c0
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [edi], 0x10
mov dword [edi + 4], 0
mov dword [edi + 0xc], esi
mov eax, edi
add eax, 0x390
mov dword [edi + 8], eax
mov edx, edi
mov dword [esp + 0xe0], edx
xor ecx, ecx
test edx, edx
mov eax, 7
cmovne eax, ecx
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
test ecx, ecx
jle 0x45822a
mov dword [esp + 0x68], edx
test edx, edx
mov edi, dword [esp + 0x10]
je 0x4581fa
mov eax, 0xfffffffe
mov edx, dword [esp + 0x44]
sub eax, edx
mov dword [esp + 0x144], eax
mov eax, ebx
neg eax
mov esi, eax
and esi, 0xfffffff8
mov dword [esp + 0x140], esi
neg bl
movzx esi, bl
and esi, 7
mov dword [esp + 0x158], esi
cmp eax, 2
mov esi, 1
cmovae esi, eax
mov dword [esp + 0x164], esi
not edx
mov dword [esp + 0x160], edx
mov eax, dword [esp + 0x14c]
mov edx, dword [esp + 0x1c]
lea eax, [eax + edx*8]
add eax, 0x48
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], 0
xor ebx, ebx
mov dword [esp + 0x138], 0
sub ecx, ebx
cmp ecx, 0x10
mov edx, 0x10
cmovl edx, ecx
lea eax, [esp + 0x138]
lea esi, [esp + 0x70]
mov ecx, dword [esp + 0x2c]
push eax
push esi
call fcn.0046f6a0
add esp, 8
test eax, eax
jne 0x461c3a
mov edi, dword [esp + 0x138]
mov eax, dword [0x53c308]
test eax, eax
mov esi, dword [esp + 0x18]
je 0x457e9b
push 0x64
call eax
add esp, 4
test eax, eax
jne 0x457f23
mov ecx, 0x40
xor edx, edx
call fcn.00424d20
test eax, eax
je 0x457f23
mov ecx, eax
pxor xmm0, xmm0
movdqu xmmword [eax + 0x28], xmm0
movdqu xmmword [eax + 0x18], xmm0
movdqu xmmword [eax + 8], xmm0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 4], edi
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
mov esi, dword [esp + 0x34]
mov eax, dword [esi]
mov edi, ecx
mov ecx, dword [eax + 4]
mov edx, ecx
shr edx, 0x1f
add edx, ecx
mov eax, dword [eax + 8]
add eax, 9
sar edx, 1
cmp eax, edx
cmovg edx, eax
mov dword [esp + 0x48], edi
mov dword [edi + 0x10], edx
mov eax, edx
sar eax, 0x1f
add dword [esi + 0x38], edx
adc dword [esi + 0x3c], eax
mov dl, 1
mov ecx, dword [esp + 0x68]
cmp dword [esp + 0x44], 0xffffffff
mov edi, dword [esp + 0x10]
mov eax, 0
jne 0x457f48
jmp 0x4580fc
mov ecx, edi
call fcn.004550a0
xor edx, edx
mov eax, 7
mov dword [esp + 0x48], 0
cmp dword [esp + 0x44], 0xffffffff
mov edi, dword [esp + 0x10]
je 0x461c3e
mov dword [esp + 0x38], ebx
mov ebx, 1
mov ecx, dword [esp + 0x140]
cmp dword [esp + 0x144], 7
jb 0x457f77
nop word cs:[eax + eax]
add ecx, 0xfffffff8
jne 0x457f70
xor ebx, ebx
test byte [esp + 0x160], 7
je 0x457f98
mov ecx, dword [esp + 0x158]
nop dword [eax + eax]
shl ebx, 4
dec ecx
jne 0x457f90
jmp 0x457f9a
xor ebx, ebx
mov esi, dword [esp + 0x164]
mov ecx, dword [esp + 0x68]
test dl, dl
jne 0x457fcb
jmp 0x458138
lea edx, [ebx + 0xf]
test ebx, ebx
cmovns edx, ebx
mov ecx, dword [eax + 4]
sar edx, 4
mov ebx, edx
mov esi, dword [esp + 0x1c]
dec esi
je 0x4580f8
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x20]
cdq
idiv ebx
lea edx, [eax + 0xf]
test eax, eax
cmovns edx, eax
and edx, 0xfffffff0
sub eax, edx
mov ecx, dword [ecx + 0xc]
imul esi, eax, 0x38
mov eax, dword [ecx + esi + 0x30]
test eax, eax
jne 0x457fb0
mov dword [esp + 0x24], ecx
mov eax, dword [0x53c308]
test eax, eax
je 0x45800d
push 0x64
call eax
add esp, 4
test eax, eax
jne 0x45812d
mov ecx, 0x3d0
xor edx, edx
call fcn.00424d20
mov edi, eax
mov eax, 7
test edi, edi
je 0x458134
mov eax, dword [esp + 0x24]
add eax, esi
add eax, 0x30
mov dword [esp + 0x24], eax
lea esi, [edi + 0x10]
push 0x3c0
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [edi], 0x10
mov dword [edi + 4], 0
mov dword [edi + 0xc], esi
mov eax, edi
add eax, 0x390
mov dword [edi + 8], eax
mov eax, dword [0x53c308]
test eax, eax
je 0x45807a
push 0x64
call eax
add esp, 4
test eax, eax
jne 0x458118
mov ecx, 0x40
xor edx, edx
call fcn.00424d20
test eax, eax
je 0x458118
pxor xmm0, xmm0
movdqu xmmword [eax + 0x28], xmm0
movdqu xmmword [eax + 0x18], xmm0
movdqu xmmword [eax + 8], xmm0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov dword [eax + 4], edi
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov edi, dword [esp + 0x34]
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
mov esi, edx
shr esi, 0x1f
add esi, edx
mov ecx, dword [ecx + 8]
add ecx, 9
sar esi, 1
cmp ecx, esi
cmovg esi, ecx
mov dword [eax + 0x10], esi
mov eax, esi
sar eax, 0x1f
add dword [edi + 0x38], esi
adc dword [edi + 0x3c], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax]
mov edi, dword [esp + 0x10]
jmp 0x457fb0
mov ebx, dword [esp + 0x38]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
and ecx, 0xf
imul ecx, ecx, 0x38
mov edx, dword [esp + 0x48]
mov dword [eax + ecx + 0x30], edx
xor eax, eax
jmp 0x4581b6
mov eax, dword [esp + 0x24]
mov dword [eax], 0
mov ecx, edi
call fcn.004550a0
mov edi, dword [esp + 0x10]
mov eax, 7
jmp 0x458138
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x48]
test esi, esi
je 0x4581a2
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 4]
call fcn.004550a0
cmp dword [0x53c208], 0
mov ebx, dword [esp + 0x38]
je 0x4581a8
mov eax, dword [0x53de88]
test eax, eax
je 0x45816c
push eax
call dword [0x53c258]
add esp, 4
mov esi, dword [esp + 0x48]
push esi
call dword [0x53c234]
add esp, 4
sub dword [0x53de30], eax
dec dword [0x53de54]
push esi
call dword [0x53c22c]
add esp, 4
mov eax, dword [0x53de88]
test eax, eax
je 0x4581b2
push eax
call dword [0x53c260]
jmp 0x4581af
mov ebx, dword [esp + 0x38]
jmp 0x4581b6
push esi
call dword [0x53c22c]
add esp, 4
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x4581fa
inc dword [esp + 0x20]
add ebx, 0x10
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
cmp ecx, ebx
jg 0x457e3f
jmp 0x4581fa
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea eax, [esp + 0xe0]
lea esi, [esp + 0x70]
mov ecx, dword [esp + 0x2c]
push eax
push esi
call fcn.0046f6a0
add esp, 8
mov esi, dword [esp + 0xe0]
test eax, eax
jne 0x461c8e
mov edx, dword [esp + 0x64]
inc edx
mov ebx, dword [esp + 0x14c]
movzx eax, byte [ebx + 0x3b]
mov ecx, esi
cmp edx, eax
mov eax, edx
jb 0x457cbd
jmp 0x45e294
mov edi, dword [esp + 0x10]
jmp 0x4581fa
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
movzx eax, word [edx + eax*8 + 0x10]
test al, 0x24
je 0x45bfb8
mov eax, dword [ecx]
xor ebx, ebx
or eax, dword [ecx + 4]
setne bl
jmp 0x460977
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x5e]
test al, 0x41
je 0x45ff1a
mov edx, dword [esp + 0x30]
cmp byte [edx + 0x93], 0xfe
je 0x45ff1a
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x45829b
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0xc4]
test edx, edx
je 0x45ff1a
test al, 0x40
jne 0x45e71e
mov esi, dword [esp + 0x18]
cmp dword [esi + 0xc4], 2
jl 0x45ff00
push edx
push str.____s
push esi
call fcn.004346d0
add esp, 0xc
mov ecx, esi
mov esi, eax
push eax
push dword [esp + 0x34]
push dword [ecx + 0xd8]
push 1
call dword [ecx + 0xd4]
add esp, 0x10
test esi, esi
mov ecx, dword [esp + 0xc]
je 0x45ff1a
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0043f4f0
jmp 0x45ff16
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
lea ecx, [eax + ecx*8]
mov dword [esp + 0x24], ecx
cmp dword [ebx], ecx
je 0x45f379
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx], ecx
movzx ecx, byte [esp + 0x54]
mov byte [ebx + 0x18], cl
movzx edx, byte [ebx + 0x1a]
test edx, edx
je 0x45f379
mov esi, dword [esp + 0x14]
lea ecx, [esi + 8]
cmp dl, 8
jae 0x45cf84
mov eax, dword [esp + 0x28]
jmp 0x45f352
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
lea eax, [edx + esi*8]
add eax, 0x10
test byte [edx + esi*8 + 0x11], 0x90
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
je 0x45bfdf
lea ecx, [edx + esi*8]
call fcn.004686a0
mov ecx, dword [esp + 0xc]
jmp 0x45bfe4
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4583bd
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
mov dword [edx + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [edx + eax*8 + 8], 0x52a82c
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [ecx + 4]
mov esi, dword [eax + edx*4]
test esi, esi
mov dword [esp + 0x10], edi
je 0x4583e8
test byte [esi + 5], 8
jne 0x4583e8
movsx eax, word [esi + 0x34]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 8], eax
jle 0x45e33c
mov ecx, dword [esp + 0x30]
push 0
mov ebx, dword [esp + 0x18]
push dword [ebx + 8]
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov esi, eax
or byte [eax + 5], 1
mov edi, dword [esp + 0x18]
mov ecx, dword [edi]
lea edx, [eax + 8]
movzx eax, word [ebx + 2]
mov ebx, edx
or eax, 5
xor edx, edx
push 0x41e
push eax
push ebx
push edi
call fcn.004448c0
add esp, 0x10
test eax, eax
jne 0x46232b
mov ecx, dword [ebx]
mov edx, 1
push 0
call fcn.0042e240
add esp, 4
mov edx, eax
test eax, eax
jne 0x45f05c
mov edi, ebx
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0x10]
mov dword [esi + 0x28], ebx
test ebx, ebx
je 0x45f035
mov ecx, dword [esi + 8]
mov edx, esi
add edx, 0x30
movzx eax, word [eax + 2]
or eax, 2
push eax
call fcn.00463880
add esp, 4
test eax, eax
jne 0x458496
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 8]
push dword [esi + 0x24]
push ebx
push 4
call fcn.00463750
add esp, 0xc
mov edx, eax
xor eax, eax
jmp 0x45f057
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x24]
cmp byte [eax], 0
je 0x4584d6
mov ecx, esi
call fcn.00462e30
test eax, eax
jne 0x461c2a
cmp byte [esi + 2], 0
je 0x45c130
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
test byte [ecx + eax*8 + 0x11], 0x90
je 0x45cf56
lea ecx, [ecx + eax*8]
call fcn.00455c60
jmp 0x45e774
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
movzx ebx, word [edi + 2]
lea edx, [ebx*4 + 0x44]
mov ecx, dword [esp + 0x18]
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x462074
mov esi, eax
mov dword [eax + 8], 0
lea eax, [eax + ebx*4]
add eax, 0x1c
mov dword [esi], eax
mov word [esi + ebx*4 + 0x2c], 1
mov eax, dword [esp + 0x18]
mov dword [esi + ebx*4 + 0x30], eax
mov dword [esi + ebx*4 + 0x34], 0
mov eax, dword [edi + 0x10]
mov dword [esi + 4], eax
mov eax, edi
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0xc], eax
mov byte [esi + 0x19], 0
mov dword [esi + 0x14], 0
movzx eax, byte [esp + 0x54]
mov byte [esi + 0x18], al
mov byte [esi + 0x1a], bl
mov dword [edi + 0x10], esi
mov word [edi], 0xf1a3
jmp 0x45b4e5
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
mov esi, dword [esp + 0x28]
lea ebx, [esi + ecx*8]
test eax, eax
je 0x45c061
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ebx, dword [edx + 0x10]
pxor xmm0, xmm0
lea ecx, [esp + 0x74]
movdqu xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], 0
test byte [esi + eax*8 + 0x11], 0x90
je 0x45cea7
mov ecx, edi
call fcn.00455c60
jmp 0x45ceb2
test byte [esi + ebx*8 + 0x11], 0x90
je 0x45c074
mov ecx, dword [esp + 0x20]
jmp 0x45c103
mov word [esp + 0x80], 0x4010
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x10]
lea esi, [esp + 0xe0]
mov ecx, eax
push 0
push esi
call fcn.00465d00
add esp, 8
mov esi, eax
cmp dword [esp + 0x88], 0
je 0x458644
lea ecx, [esp + 0x70]
call fcn.00455c20
mov eax, esi
neg eax
inc esi
mov ecx, dword [esp + 0x14]
test byte [ecx], 1
cmovne esi, eax
mov dword [esp + 0x1c], 0
test esi, esi
mov esi, ecx
mov ecx, dword [esp + 0xc]
jg 0x460e07
jmp case.0x4578ee.89
test al, 0x12
je 0x45c1c4
mov ecx, dword [esp + 0x20]
call fcn.00468710
mov dword [esp + 0x2c], eax
jmp 0x45c1cc
mov edx, esi
test dl, 0x80
mov edi, dword [esp + 0x10]
jne 0x45c084
mov eax, esi
test al, 0x10
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jne 0x460e07
mov dword [esp + 0x6c], 1
jmp case.0x4578ee.89
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x1c], edi
mov eax, dword [edi + 0x28]
movzx ebx, byte [ecx + 3]
movzx edi, word [esi + 0x10]
mov dword [esp + 0x70], eax
mov word [esp + 0x84], di
mov eax, edx
and al, 1
neg al
or al, 1
mov byte [esp + 0x86], al
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*8]
mov dword [esp + 0x74], eax
mov byte [esp + 0x8a], 0
lea eax, [esp + 0xe0]
lea edx, [esp + 0x70]
push eax
call fcn.00464200
add esp, 4
test eax, eax
jne 0x461cae
and ebx, 2
mov esi, ebx
shr esi, 1
test ebx, ebx
je 0x45e1b5
mov eax, 1
cmp byte [esp + 0x8a], 0
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
je 0x45e637
jmp 0x45e598
cmp edx, edi
sbb ecx, esi
mov eax, dword [esp + 0x20]
jge 0x45c0b9
cmp byte [eax + 0x52a91f], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jne 0x460e07
mov dword [esp + 0x6c], 0xffffffff
jmp case.0x4578ee.89
mov esi, ecx
call fcn.00468f20
test eax, eax
je 0x45c10d
mov edx, eax
cmp eax, 0x10
mov esi, dword [esp + 0x18]
jne 0x46213d
mov dword [ebx + 0x18], 0
mov word [ebx + 2], 1
jmp 0x45f12c
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x10]
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x45d0c4
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x1e8]
test esi, esi
je 0x461e10
mov dword [esp + 0x24], 0
mov eax, dword [esi]
xor ecx, ecx
jmp 0x458800
movzx edx, byte [edx + 0x52a853]
cmp dl, byte [ebx + 0x52a853]
jne 0x458815
inc ecx
movzx edx, byte [eax + ecx]
movzx ebx, byte [edi + ecx]
cmp dl, bl
jne 0x4587f0
test edx, edx
jne 0x4587ff
jmp 0x45c4db
inc dword [esp + 0x24]
mov esi, dword [esi + 0x18]
test esi, esi
jne 0x4587df
jmp 0x461e10
mov dword [esp + 0x10], edi
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 8]
test edx, edx
je 0x45885d
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
and ecx, 2
mov esi, eax
and esi, 0x100000
or esi, ecx
mov ecx, dword [esp + 0x14]
jne 0x4621b1
mov eax, dword [esp + 0x60]
mov ebx, dword [eax]
mov edi, dword [ecx + 4]
shl edi, 4
mov esi, dword [ebx + edi + 4]
test esi, esi
je 0x458941
lea eax, [esp + 0x70]
mov ecx, esi
push eax
call fcn.0042e240
add esp, 4
test eax, eax
jne 0x4621d4
mov eax, dword [esp + 0x30]
test byte [eax + 0x96], 0x20
mov ecx, dword [esp + 0xc]
je 0x458951
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
je 0x458951
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x55], 0
je 0x4588ca
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xbc], 2
jl 0x458951
mov dword [esp + 0x20], ebx
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x4588f7
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x1f8]
inc eax
mov dword [ecx + 0x1f8], eax
add eax, dword [ecx + 0x1f4]
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x30], eax
dec eax
mov ebx, dword [esp + 0x18]
mov ecx, ebx
xor edx, edx
push eax
call fcn.00455af0
add esp, 4
test eax, eax
jne 0x45891b
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x30]
mov ecx, esi
call fcn.004634a0
mov dword [esp + 0x1c], eax
movsd xmm0, qword [ebx + 0x200]
mov eax, dword [esp + 0x30]
movsd qword [eax + 0x48], xmm0
movq xmm0, qword [ebx + 0x208]
movq qword [eax + 0x50], xmm0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
mov ecx, dword [esp + 0xc]
jne 0x46232b
mov edx, dword [esp + 0x14]
cmp word [edx + 2], 0
je 0x458979
mov eax, dword [esp + 0x70]
cmp eax, dword [edx + 0xc]
jne 0x461e2c
mov eax, dword [ebx + edi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 0x10]
jne 0x461e2c
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
mov dword [esp + 0x10], edi
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
test eax, eax
jle 0x45d0f3
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
mov ecx, ebx
neg ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], 0
mov esi, 1
mov edi, 4
lea ecx, [esp + 0x78]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], ebx
nop word cs:[eax + eax]
cmp ebx, 0xc
je 0x458a20
mov ecx, dword [esp + 0x2c]
add ecx, esi
cmp ecx, 1
je 0x458a20
xor edx, edx
jmp 0x458a6f
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + edi]
mov edx, dword [esp + 0x48]
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.004eb060
add esp, 8
mov edx, eax
xor eax, eax
cmp edx, 5
mov dword [esp + 0x20], 0
cmove edx, eax
mov eax, 1
mov ecx, dword [esp + 0x1c]
cmove ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx + 0x14]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x24], 0
test edx, edx
sete cl
cmp esi, eax
jge 0x45d0ff
inc esi
add edi, 0x10
test edx, edx
je 0x458a00
jmp 0x45d0ff
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 8]
lea edi, [eax + eax*4]
lea ecx, [edx + edi*8]
mov dword [esp + 0x2c], edx
test byte [edx + edi*8 + 0x11], 0x90
mov dword [esp + 0x20], ecx
je 0x45d16a
call fcn.004686a0
jmp 0x45d170
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
test eax, eax
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea esi, [edx + ecx*8]
cmove esi, eax
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x18]
push esi
push dword [ebx + 4]
call fcn.00467b60
add esp, 8
jmp 0x45afe0
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
lea ebx, [eax + eax*4]
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x5c]
mov edx, dword [edx + 0x60]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x2c], ecx
mov edi, dword [ecx + 0x24]
mov ecx, dword [edi]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + ebx*8]
mov dword [esp + 0x24], edx
mov esi, dword [ecx + ebx*8 + 0x28]
test esi, esi
jle 0x45f93b
xor edx, edx
cmp esi, 8
jb 0x45f919
mov ecx, dword [esp + 0x28]
lea ecx, [ecx + ebx*8]
add ecx, 0x28
lea edx, [esi - 8]
movd xmm0, ecx
mov ecx, edx
shr ecx, 3
inc ecx
cmp edx, 8
mov dword [esp + 0x34], ecx
jae 0x45f83c
movdqa xmm1, xmmword [0x527240]
xor ecx, ecx
jmp 0x45f8c6
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x57], 0
jne 0x462080
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov edx, 6
test eax, eax
je 0x46244a
mov ebx, dword [eax]
test ebx, ebx
je 0x46244a
cmp dword [ebx + 0x34], 0
je case.0x4578ee.89
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
movzx eax, byte [esi + 0x5c]
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x5c]
test ecx, ecx
jle 0x458d60
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x20]
xor ebx, ebx
cmp ecx, 8
jb 0x458d55
mov dword [esp + 0x10], edi
add ecx, 0xfffffff8
mov ebx, ecx
shr ebx, 3
inc ebx
mov esi, ebx
and esi, 3
mov dword [esp + 0x1c], esi
xor esi, esi
mov edi, eax
cmp ecx, 0x18
jb 0x458ce9
and ebx, 0xfffffffc
xor esi, esi
mov edi, eax
movd xmm0, edi
pshufd xmm2, xmm0, 0
movdqa xmm0, xmmword [0x527220]
movdqa xmm3, xmm2
paddd xmm3, xmm0
movdqa xmm1, xmmword [0x527230]
paddd xmm2, xmm1
movdqu xmmword [edx + esi*4], xmm3
movdqu xmmword [edx + esi*4 + 0x10], xmm2
lea ecx, [edi + 0x140]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
movdqa xmm3, xmm2
paddd xmm3, xmm0
paddd xmm2, xmm1
movdqu xmmword [edx + esi*4 + 0x20], xmm3
movdqu xmmword [edx + esi*4 + 0x30], xmm2
lea ecx, [edi + 0x280]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
movdqa xmm3, xmm2
paddd xmm3, xmm0
paddd xmm2, xmm1
movdqu xmmword [edx + esi*4 + 0x40], xmm3
movdqu xmmword [edx + esi*4 + 0x50], xmm2
lea ecx, [edi + 0x3c0]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm0, xmm2
paddd xmm2, xmm1
movdqu xmmword [edx + esi*4 + 0x60], xmm0
movdqu xmmword [edx + esi*4 + 0x70], xmm2
add esi, 0x20
add edi, 0x500
add ebx, 0xfffffffc
jne 0x458c36
mov ebx, dword [esp + 0x20]
and ebx, 0xfffffff8
cmp dword [esp + 0x1c], 0
je 0x458d3b
lea esi, [edx + esi*4]
add esi, 0x10
shl dword [esp + 0x1c], 5
xor ecx, ecx
movd xmm0, edi
pshufd xmm0, xmm0, 0
movdqa xmm1, xmmword [0x527220]
paddd xmm1, xmm0
paddd xmm0, xmmword [0x527230]
movdqu xmmword [esi + ecx - 0x10], xmm1
movdqu xmmword [esi + ecx], xmm0
add edi, 0x140
add ecx, 0x20
cmp dword [esp + 0x1c], ecx
jne 0x458d04
mov ecx, dword [esp + 0x20]
cmp ecx, ebx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
je 0x458d60
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x20]
mov dword [edx + ebx*4], eax
add eax, 0x28
inc ebx
cmp ecx, ebx
jne 0x458d55
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 2]
mov byte [esi + 0x5c], al
lea eax, [esp + 0x70]
push eax
push edx
push ecx
mov ebx, dword [esp + 0x30]
push ebx
mov eax, dword [esp + 0x3c]
call dword [eax + 0x34]
add esp, 0x10
mov ecx, esi
mov esi, eax
movzx eax, byte [esp + 0x34]
mov byte [ecx + 0x5c], al
mov ecx, dword [esp + 0x30]
mov edx, ebx
call fcn.00455830
test esi, esi
je 0x45f0f2
mov edx, esi
cmp dl, 0x13
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jne 0x46217f
mov eax, dword [esi + 0x10]
cmp byte [eax + 0x10], 0
je 0x46217f
movzx eax, word [esi + 2]
mov dword [esp + 0x1c], 0
cmp eax, 4
mov esi, dword [esp + 0x18]
je case.0x4578ee.89
jmp 0x462197
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
mov word [edx + eax*8 + 0x10], 4
sub ecx, dword [esp + 0x5c]
sar ecx, 2
imul ecx, ecx, 0xcccccccd
mov dword [edx + eax*8], ecx
sar ecx, 0x1f
mov dword [edx + eax*8 + 4], ecx
mov ecx, dword [esp + 0xc]
jmp case.0x4578ee.8
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xc]
lea eax, [eax + eax*4]
dec ecx
mov edx, dword [esp + 0x28]
mov dword [edx + eax*8], ecx
sar ecx, 0x1f
mov dword [edx + eax*8 + 4], ecx
mov ecx, dword [esp + 0xc]
mov word [edx + eax*8 + 0x10], 4
cmp dword [esi + 8], 0
jne 0x460e07
jmp case.0x4578ee.89
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov ebx, dword [esp + 0x28]
mov word [ebx + eax*8 + 0x10], 4
mov ecx, dword [ebx + eax*8]
mov esi, dword [esp + 0x5c]
sub edx, esi
sar edx, 2
imul edx, edx, 0xcccccccd
mov dword [ebx + eax*8], edx
sar edx, 0x1f
mov dword [ebx + eax*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0xc]
lea eax, [esi + eax*4]
mov dword [esp + 0x14], eax
jmp case.0x4578ee.89
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea esi, [eax + ecx*8]
add esi, 0x10
movzx eax, word [eax + ecx*8 + 0x10]
test al, 4
jne 0x45c0df
mov eax, dword [esp + 0x28]
lea ecx, [eax + ecx*8]
movzx eax, byte [esp + 0x54]
mov edx, 0x43
push eax
call fcn.00462970
add esp, 4
movzx eax, word [esi]
test al, 4
jne 0x45c0df
mov esi, dword [esp + 0x14]
cmp dword [esi + 8], 0
jne 0x45d1e7
jmp 0x46236c
cmp dword [esp + 0x6c], 0
js 0x45d1cb
mov eax, dword [esp + 0x14]
je 0x45e98b
mov eax, dword [eax + 0xc]
jmp 0x460e0a
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0xcc]
test eax, eax
je 0x45d1d7
mov edx, dword [esp + 0x14]
sub edx, ecx
sar edx, 2
imul edx, edx, 0xcccccccd
mov eax, dword [eax + 0x18]
mov esi, edx
mov ecx, edx
and cl, 7
mov ebx, 1
shl ebx, cl
shr esi, 3
movzx ecx, byte [eax + esi]
and edx, 7
bt ecx, edx
jb 0x45f134
or bl, cl
mov byte [eax + esi], bl
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 4]
mov esi, dword [esp + 0x14]
jmp 0x45d372
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
movzx eax, word [edx + eax*8 + 0x10]
test al, 0x24
je 0x45d1f0
mov edx, dword [ecx]
xor eax, eax
or edx, dword [ecx + 4]
setne al
jmp 0x460dfb
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
movzx eax, word [edx + eax*8 + 0x10]
test al, 0x24
je 0x45d212
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jmp 0x45d2ff
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
movzx eax, word [edx + eax*8 + 0x10]
test al, 1
jne 0x460e07
and eax, 0x3f
movzx eax, byte [eax + 0x52a9ea]
cmp dword [esi + 0xc], eax
jne case.0x4578ee.89
jmp 0x460e07
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x4578c0
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
test byte [ecx + eax*8 + 0x11], 0x90
je 0x45e9ac
lea ecx, [ecx + eax*8]
call fcn.00455c60
mov ecx, dword [esp + 0xc]
jmp 0x460e07
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea edi, [ecx + ecx*4]
mov ebx, dword [esp + 0x28]
lea esi, [ebx + edi*8]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 1
jne 0x45c793
lea ecx, [ebx + eax*8]
xor edx, edx
call fcn.00462d70
test byte [ebx + edi*8 + 0x11], 0x90
je 0x45f4f3
xor edx, edx
test eax, eax
sete dl
mov ecx, esi
push 0
call fcn.00457030
add esp, 4
jmp 0x4578bc
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
cmp dword [eax + ecx*4], 0
mov ecx, dword [esp + 0xc]
jne case.0x4578ee.89
jmp case.0x4578ee.8
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
movzx eax, word [eax + 6]
cmp dword [edx + 0x10], eax
jle case.0x4578ee.89
mov dword [esp + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov edi, dword [eax + ecx*4]
lea eax, [edx + edx*4]
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + eax*8]
mov dword [esp + 0x74], ecx
mov edx, dword [esi + 0x10]
mov word [esp + 0x84], dx
test edx, 0xffff
je 0x45913b
mov eax, dword [edi + 0x28]
mov dword [esp + 0x70], eax
mov byte [esp + 0x86], 0
mov ecx, dword [edi + 0x24]
lea eax, [edi + 0x1c]
lea edx, [esp + 0x70]
push eax
call fcn.00464200
add esp, 4
mov edx, eax
test edx, edx
je 0x45ccc5
jmp 0x46232d
test byte [ebx + eax*8 + 0x11], 4
je 0x45914f
call fcn.00430490
test eax, eax
jne 0x462074
mov ebx, dword [edi + 0x28]
movzx eax, word [ebx + 6]
lea eax, [eax + eax*4]
lea edx, [eax*8 + 0x48]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x45cc5b
push 0
call fcn.0043f5f0
add esp, 4
jmp 0x45cc64
mov dword [esp + 0x148], 0xffffffff
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0xc]
lea eax, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 0x24
jne 0x45922e
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
movups xmm0, xmmword [edx + eax*8]
movupd xmm1, xmmword [edx + eax*8 + 0x10]
movaps xmmword [esp + 0x70], xmm0
movapd xmmword [esp + 0x80], xmm1
movq xmm0, qword [edx + eax*8 + 0x20]
movq qword [esp + 0x90], xmm0
movzx eax, byte [esp + 0x54]
lea ecx, [esp + 0x70]
mov edx, 0x43
push eax
call fcn.00462970
add esp, 4
movzx eax, word [esp + 0x80]
test al, 4
je 0x45d1e7
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
jmp 0x45923c
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], edi
lea eax, [ecx + ecx*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x148], 0
lea eax, [esp + 0x148]
mov edx, esi
push eax
push 0
push edi
call fcn.00463ea0
add esp, 0xc
mov edx, eax
mov dword [ebx + 0x3c], edi
mov dword [ebx + 0x38], esi
mov word [ebx + 2], 0
mov dword [ebx + 0x18], 0
mov eax, dword [esp + 0x148]
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x45c3d0
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
je 0x461e9c
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 0x14]
jmp 0x460e07
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x24]
mov ecx, esi
call fcn.00468f20
cmp eax, 0x10
je 0x45f12c
mov edx, eax
test eax, eax
jne 0x46202f
mov ecx, esi
call fcn.0046a970
test eax, eax
jne 0x461c2a
mov ecx, esi
call fcn.00463170
test edx, edx
js 0x45e774
mov ecx, eax
call fcn.0043e750
cwde
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x14]
cmp dword [esi + 0xc], eax
jmp 0x45865f
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + ecx*4]
mov edi, dword [ebx + 0x24]
cmp byte [edi + 0x38], 0
je 0x45d230
mov dword [esp + 0x70], 0
mov ecx, dword [edi + 0x14]
lea edx, [esp + 0x70]
call fcn.004703e0
mov edx, eax
test eax, eax
jne 0x45f99e
cmp dword [esp + 0x70], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jne 0x45d274
jmp 0x45f9a6
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x24]
and byte [ecx + 1], 0xf1
mov word [ecx + 0x32], 0
cmp byte [ecx], 0
je 0x45d280
call fcn.0046aa30
mov edx, eax
jmp 0x45f9a2
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x24]
mov word [ecx + 0x32], 0
and byte [ecx + 1], 0xf9
cmp byte [ecx], 0
je 0x45d2a5
call fcn.0046a640
mov edx, eax
jmp 0x45f9a2
mov dword [esp + 0x10], edi
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea edi, [eax + esi*8]
add edi, 0x10
movzx eax, word [eax + esi*8 + 0x10]
test al, 0x10
je 0x45f51a
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + esi*8 + 8]
lea edx, [esp + 0x70]
call fcn.004674f0
test eax, eax
je 0x45f513
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea esi, [eax + eax*4]
lea ecx, [ebx + esi*8]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
test byte [ebx + esi*8 + 0x11], 0x90
je 0x460055
push eax
call fcn.00457030
add esp, 4
jmp 0x460065
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
mov edx, dword [ecx + 0x10]
lea edi, [eax + eax*4]
mov esi, dword [esp + 0x28]
test byte [esi + edi*8 + 0x10], 0x10
jne 0x459492
lea ecx, [esi + edi*8]
mov dword [esp + 0x20], edx
call fcn.004673d0
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x462074
lea eax, [ebx + ebx*4]
lea ebx, [esi + eax*8]
test edx, edx
je 0x4594c3
mov ecx, dword [esi + edi*8 + 8]
mov esi, edx
push dword [ebx + 4]
push dword [ebx]
call fcn.00467590
add esp, 8
test eax, eax
jne 0x45e645
test esi, esi
mov esi, dword [esp + 0x28]
js 0x4578bc
mov ecx, dword [esi + edi*8 + 8]
mov edx, dword [ebx]
push dword [ebx + 4]
call fcn.004674a0
add esp, 4
jmp 0x4578bc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
cmp word [ecx + 2], 0
mov esi, dword [esp + 0x18]
je 0x45950f
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xcc]
test ecx, ecx
je 0x45950f
mov edx, dword [ebx + 0x14]
cmp dword [ecx + 0x1c], edx
je 0x4578c0
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x4594ff
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + 0xd4]
cmp ecx, dword [esi + 0xa0]
jge 0x462125
mov dword [esp + 0x10], edi
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x28]
test byte [eax + edi*8 + 0x10], 0x10
mov dword [esp + 0x20], ebx
jne 0x45cfad
mov eax, dword [ebx + 0xc]
cmp eax, 1
mov ecx, ebx
mov ebx, dword [ebx + 8]
adc ebx, eax
mov ecx, dword [ecx + 4]
lea edx, [ecx + 7]
add ecx, 0xe
test edx, edx
cmovns ecx, edx
mov dword [esp + 0x2c], ebx
lea edx, [ebx + ebx*4]
sar ecx, 3
lea eax, [ecx + eax*4]
mov dword [esp + 0x48], edx
lea ebx, [eax + edx*8]
add ebx, 0x58
mov eax, ebx
sar eax, 0x1f
mov ecx, esi
mov edx, ebx
push eax
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x462074
mov esi, eax
mov eax, ebx
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + edi*8]
add ecx, 0x10
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
push eax
push 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x24]
test byte [eax + 1], 0x90
jne 0x4595be
cmp dword [ebx + edi*8 + 0x18], 0
je 0x4595c6
lea ecx, [ebx + edi*8]
call fcn.00455c20
mov eax, dword [esp + 0x24]
mov word [eax], 0x1010
mov dword [ebx + edi*8 + 8], esi
mov eax, dword [esp + 0x34]
mov dword [ebx + edi*8 + 0xc], eax
mov dword [ebx + edi*8 + 0x24], 0x467830
mov ebx, dword [esp + 0x30]
mov dword [esi], ebx
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x3c], edx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esi + 0x30], eax
mov eax, dword [ebx + 0x58]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x60]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x2c], eax
mov eax, dword [ebx + 0x68]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x6c]
mov dword [esi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x1c], eax
test edx, edx
je 0x45cfb5
mov eax, dword [esp + 0x48]
lea ecx, [eax*8 - 0x28]
mov edx, 0xcccccccd
mov eax, ecx
mul edx
lea eax, [esi + 0x58]
shr edx, 5
inc edx
and edx, 7
je 0x459673
mov edi, dword [esp + 0x18]
mov word [eax + 0x10], 0
mov dword [eax + 0x14], edi
add eax, 0x28
dec edx
jne 0x459664
cmp ecx, 0x118
jb 0x45cfb5
mov ecx, dword [esp + 0x48]
lea ecx, [esi + ecx*8]
add ecx, 0x58
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov word [eax + 0x10], 0
mov dword [eax + 0x14], edx
mov word [eax + 0x38], 0
mov dword [eax + 0x3c], edx
mov word [eax + 0x60], 0
mov dword [eax + 0x64], edx
mov word [eax + 0x88], 0
mov dword [eax + 0x8c], edx
mov word [eax + 0xb0], 0
mov dword [eax + 0xb4], edx
mov word [eax + 0xd8], 0
mov dword [eax + 0xdc], edx
mov word [eax + 0x100], 0
mov dword [eax + 0x104], edx
mov word [eax + 0x128], 0
mov dword [eax + 0x12c], edx
add eax, 0x140
cmp eax, ecx
jne 0x459691
jmp 0x45cfb9
mov esi, dword [esp + 0x14]
cmp dword [esi + 4], 0
je 0x45d2df
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne 0x4578c0
jmp 0x45d2f3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + eax*8]
mov edx, dword [ebx + eax*8 + 4]
cmp ecx, 1
mov esi, edx
sbb esi, 0
jl 0x4578c0
mov esi, dword [esp + 0x14]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x10], edi
mov edi, esi
sar edi, 0x1f
sub ecx, esi
sbb edx, edi
mov edi, dword [esp + 0x10]
lea eax, [ebx + eax*8]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp 0x45f134
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 1
je case.0x4578ee.89
jmp 0x460e07
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 1
jne case.0x4578ee.89
jmp 0x460e07
cmp dword [esp + 0x6c], 0
jne case.0x4578ee.89
mov dword [esp + 0x6c], 0
mov esi, dword [esp + 0x14]
jmp 0x460e07
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea edx, [eax + eax*4]
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
mov esi, eax
or esi, ecx
je 0x4578c0
cmp eax, 1
mov esi, ecx
sbb esi, 0
jl 0x45f134
mov esi, dword [esp + 0x28]
lea edx, [esi + edx*8]
add eax, 0xffffffff
adc ecx, 0xffffffff
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp 0x45f134
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + ecx*8]
xor esi, esi
mov edx, 0xffffffff
add edx, 1
mov edx, dword [ebx + ecx*8 + 4]
adc esi, 0x7fffffff
xor esi, edx
or esi, eax
je 0x4578c0
add eax, 0xffffffff
adc edx, 0xffffffff
lea ecx, [ebx + ecx*8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
or edx, eax
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jne case.0x4578ee.89
jmp 0x460e07
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
shl ecx, 4
mov esi, dword [eax + ecx + 4]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], 0
je 0x459891
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x459891
mov ecx, esi
call fcn.0044f0a0
mov dword [esp + 0x2c], esi
mov eax, 0x65
cmp byte [ebx + 0x11], 0
je 0x45e513
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x30]
mov ecx, dword [eax + 0x38]
mov eax, 0xcccccccd
mul dword [ebx + 0x28]
mov eax, esi
mov esi, ebx
mov ebx, edx
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x24], ecx
shr ebx, 2
cmp eax, 1
mov dword [esp + 0x48], esi
ja 0x45e36e
mov ecx, eax
mov eax, dword [0x53c870]
xor edx, edx
div dword [esi + 0x24]
xor edx, edx
mov dword [esp + 0x1c], eax
lea eax, [ebx + 1]
mov dword [esp + 0x20], eax
jmp 0x45e3a9
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x4578bc
mov eax, dword [edi + 0x24]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov esi, dword [ecx]
push eax
call dword [esi + 0x24]
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
call fcn.00455830
test ebx, ebx
jne 0x462190
push dword [edi + 0x24]
call dword [esi + 0x28]
add esp, 4
mov dword [esp + 0x1c], 0
test eax, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jne 0x45f9fb
jmp case.0x4578ee.8
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x10]
test edx, edx
jle 0x45d30e
mov ebx, dword [eax + 0xc]
add edx, ebx
lea eax, [ebx + ebx*4]
mov ecx, dword [esp + 0x28]
lea edi, [ecx + eax*8]
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x24], edx
jmp 0x4599a1
add ecx, dword [edi]
adc esi, dword [edi + 4]
inc ebx
add edi, 0x28
cmp ebx, edx
jge 0x45d312
movzx eax, word [edi + 0x10]
test al, 0x24
jne 0x459990
test al, 8
jne 0x4599e1
test al, 0x12
je 0x459995
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0xc]
mov edx, ecx
sar edx, 0x1f
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
adc esi, edx
test eax, 0x400
je 0x4599f6
mov eax, dword [edi]
mov ecx, eax
sar ecx, 0x1f
add dword [esp + 0x20], eax
adc esi, ecx
mov ecx, dword [esp + 0x20]
jmp 0x4599f6
movq xmm0, qword [edi]
mov dword [esp + 0x20], ecx
call fcn.00456cb0
mov ecx, dword [esp + 0x20]
add ecx, eax
adc esi, edx
mov edx, dword [esp + 0x24]
jmp 0x459995
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 4
je case.0x4578ee.89
mov eax, dword [edx + eax*8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x5c]
lea eax, [edx + eax*4]
mov dword [esp + 0x14], eax
jmp case.0x4578ee.89
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x28]
mov ecx, dword [esi + eax*8]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov word [esi + eax*8 + 0x10], 0
jmp case.0x4578ee.89
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 1
je case.0x4578ee.89
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xcc]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
test ecx, ecx
je 0x461d7b
test eax, eax
jne 0x461d9b
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0x30]
mov dword [ebx + 0xcc], eax
dec dword [ebx + 0xd4]
mov eax, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov esi, dword [esp + 0x18]
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], edx
add dword [esi + 0x70], eax
adc dword [esi + 0x74], edx
call fcn.00454ac0
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 8], 4
mov ecx, dword [ebx + 0x68]
jne 0x459adf
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 8]
dec eax
mov edx, dword [esp + 0x58]
mov edx, dword [edx]
mov dword [esp + 0x28], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x5c], ecx
lea eax, [ecx + eax*4]
mov dword [esp + 0x14], eax
jmp 0x4578c0
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d35b
mov ecx, esi
call fcn.004686a0
jmp 0x45d366
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d37a
mov ecx, esi
call fcn.004686a0
jmp 0x45d385
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + eax*8 + 0x10]
and ecx, 0xffffffc0
jmp 0x460b1d
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x58]
mov edi, dword [eax]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 8]
lea ebx, [eax + eax*4]
lea ecx, [edi + ebx*8]
test byte [edi + ebx*8 + 0x11], 0x90
mov dword [esp + 0x20], ecx
je 0x45d399
call fcn.004686a0
jmp 0x45d3a4
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x64]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
dec ecx
lea ecx, [ecx + ecx*4]
lea edi, [eax + ecx*8]
movzx ebx, word [eax + ecx*8 + 0x10]
test bl, 0x12
je 0x459bd8
mov edx, dword [eax + ecx*8 + 0xc]
test ebx, 0x400
je 0x459bcb
add edx, dword [edi]
mov eax, dword [eax + ecx*8 + 0x14]
cmp edx, dword [eax + 0x78]
jg 0x461c4b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea esi, [eax + ebx*8]
test byte [eax + ebx*8 + 0x11], 0x90
je 0x459bf7
mov ecx, esi
call fcn.00455c60
mov eax, dword [esp + 0x28]
lea eax, [eax + ebx*8]
add eax, 0x10
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x10], ecx
movdqu xmm0, xmmword [edi]
movdqu xmmword [esi], xmm0
mov ecx, 0xffff8fbf
and ecx, dword [eax]
or ecx, 0x2040
mov word [eax], cx
jmp 0x4578bc
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0xc]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
lea esi, [edx + ecx*8]
mov ecx, dword [esp + 0xc]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
add ebx, 0x18
jmp 0x459c61
add esi, 0x28
add ebx, 0x28
mov edi, dword [esp + 0x20]
dec edi
je 0x45c99b
mov dword [esp + 0x20], edi
lea edi, [ebx - 0x18]
test byte [esi + 0x11], 0x90
jne 0x459c74
cmp dword [esi + 0x18], 0
je 0x459c7f
mov ecx, esi
call fcn.00455c20
mov ecx, dword [esp + 0xc]
movsd xmm0, qword [edi + 0x20]
movsd qword [esi + 0x20], xmm0
movdqu xmm0, xmmword [edi]
movdqu xmm1, xmmword [edi + 0x10]
movdqu xmmword [esi + 0x10], xmm1
movdqu xmmword [esi], xmm0
mov word [ebx - 8], 1
mov dword [ebx], 0
test byte [esi + 0x11], 0x40
je 0x459c50
mov ecx, esi
call fcn.004308e0
mov ecx, dword [esp + 0xc]
test eax, eax
mov eax, dword [esp + 0x50]
je 0x459c50
jmp 0x461c1d
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0xc]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea esi, [edx + eax*8]
lea eax, [ecx + ecx*4]
lea ebx, [edx + eax*8]
test byte [ebx + 0x11], 0x90
jne 0x459cfc
jmp 0x459d0f
add ebx, 0x28
add esi, 0x28
test byte [ebx + 0x11], 0x90
je 0x459d0f
mov ecx, ebx
mov edx, esi
push 0x4000
call fcn.004686c0
add esp, 4
jmp 0x459d40
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
movdqu xmm0, xmmword [esi]
movdqu xmmword [ebx], xmm0
test byte [esi + 0x11], 0x20
jne 0x459d40
mov eax, 0xffff8fff
and eax, dword [ebx + 0x10]
or eax, 0x4000
mov word [ebx + 0x10], ax
nop word cs:[eax + eax]
movzx eax, word [ebx + 0x10]
test eax, 0x4000
je 0x459d5e
mov ecx, ebx
call fcn.004308e0
test eax, eax
jne 0x462074
movzx eax, word [ebx + 0x10]
test eax, 0x800
mov ecx, dword [esp + 0xc]
je 0x459d7c
mov edx, dword [esp + 0x14]
test byte [edx + 2], 2
je 0x459d7c
and eax, 0xf7ff
mov word [ebx + 0x10], ax
sub edi, 1
jae 0x459cf0
jmp 0x45c99b
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea esi, [eax + eax*4]
mov ebx, dword [esp + 0x28]
lea edx, [ebx + esi*8]
lea eax, [ecx + ecx*4]
lea ecx, [ebx + eax*8]
test byte [ebx + eax*8 + 0x11], 0x90
je 0x45d3d0
push 0x4000
call fcn.004686c0
jmp 0x460e57
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + ecx*4]
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + esi*8]
mov edx, dword [ebx + eax*8]
mov eax, dword [ebx + eax*8 + 4]
test byte [ebx + esi*8 + 0x11], 0x90
jne 0x460e51
lea esi, [ebx + esi*8]
add esi, 0x10
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov word [esi], 4
jmp 0x4578c0
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x44]
mov dword [esp + 0x1c], 0
cmp dword [edx + 0x40], 1
sbb eax, 0
jl case.0x4578ee.89
jmp 0x461f8d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
test eax, eax
je case.0x4578ee.89
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
test byte [edx + eax*8 + 0x11], 0x90
jne 0x45a000
lea eax, [edx + eax*8]
add eax, 0x10
jmp 0x4602cb
mov ebx, edi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
movzx edi, word [ecx + eax*8 + 0x10]
movzx ecx, di
test cl, 0x24
je 0x45d408
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x460076
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x10], 0x24
je case.0x4578ee.89
lea ecx, [edx + eax*8]
call fcn.00462a50
jmp 0x4578c0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
test byte [ecx + eax*8 + 0x11], 4
je 0x459ec7
mov ecx, esi
call fcn.00430490
test eax, eax
jne 0x461c2a
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + 8]
movzx eax, byte [esp + 0x54]
mov ecx, esi
push eax
call fcn.00462ab0
add esp, 4
test eax, eax
je 0x45e774
jmp 0x461c2a
xor edx, edx
mov eax, dword [esp + 0x14]
test byte [eax + 2], 1
je 0x459efe
mov edx, dword [eax - 4]
add edx, 4
mov esi, dword [eax + 0xc]
mov dword [esp + 0x24], esi
test esi, esi
jle case.0x4578ee.89
mov dword [esp + 0x10], edi
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
xor esi, esi
mov dword [esp + 0x38], edx
nop dword [eax]
mov eax, esi
test edx, edx
je 0x459f39
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x10]
movzx ecx, byte [ecx + esi]
mov byte [esp + 0x48], cl
mov ecx, dword [esp + 0x2c]
add ecx, eax
lea edi, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + edi*8]
add eax, dword [esp + 0x34]
lea ebx, [eax + eax*4]
lea edx, [edx + ebx*8]
mov eax, dword [esp + 0x20]
push dword [eax + esi*4 + 0x14]
call fcn.00462c40
add esp, 4
test eax, eax
jne 0x45e31e
inc esi
cmp dword [esp + 0x24], esi
mov edx, dword [esp + 0x38]
jne 0x459f30
mov dword [esp + 0x6c], 0
jmp 0x4578bc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
movzx eax, word [edx + eax*8 + 0x10]
test al, 0x24
je 0x45d439
mov eax, dword [ecx]
xor edx, edx
or eax, dword [ecx + 4]
setne dl
jmp 0x460e34
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x28]
test byte [esi + eax*8 + 0x10], 1
jne 0x45c0ef
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x45c0ef
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
test byte [esi + eax*8 + 0x11], 0x90
je 0x4602c5
xor edx, edx
push 0
jmp 0x460e52
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], eax
shl ebx, 2
mov eax, dword [esp + 0x40]
add ebx, dword [eax]
mov ebx, dword [ebx]
mov esi, dword [esp + 0x18]
nop
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
cmp eax, dword [edx + 0x1c]
jne 0x45a08b
mov eax, dword [ebx + 0x24]
cmp byte [eax], 0
je 0x45f17b
mov ecx, ebx
call fcn.00462e30
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x45a050
jmp 0x461c16
cmp byte [ebx + 2], 0
jne 0x45f19f
mov esi, dword [ebx + 0x24]
cmp byte [ebx + 3], 0
mov eax, dword [esp + 0x1c]
jne 0x45a0cb
cmp byte [esi], 0
je 0x460f4b
mov ecx, ebx
call fcn.00462e30
mov dword [esp + 0x1c], 0
test eax, eax
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
je 0x45a050
jmp 0x461c16
mov eax, dword [ebx + 8]
test eax, eax
mov edx, dword [esp + 0x3c]
je 0x460f38
mov eax, dword [eax + edx*4 + 4]
test eax, eax
je 0x460f38
add ebx, 0x20
dec eax
mov dword [esp + 0x3c], eax
jmp 0x45a049
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x10]
movzx eax, word [esi + 0x22]
test ax, ax
jle case.0x4578ee.89
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], esi
mov ebx, dword [esi + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
lea esi, [edx + ecx*8]
xor edi, edi
jmp 0x45c2cf
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
movzx eax, byte [edi]
inc edi
jmp 0x45a199
movd xmm0, dword [esi]
movd xmm1, ecx
punpckldq xmm0, xmm1
movq qword [esp + 0x1a8], xmm0
fild qword [esp + 0x1a8]
fstp qword [esp + 0x1a0]
movq xmm0, qword [esp + 0x1a0]
movq qword [esi], xmm0
mov cx, 8
mov dx, 0xfff3
movsx edx, dx
and edx, eax
movzx eax, cx
or eax, edx
mov word [esi + 0x10], ax
movzx eax, byte [edi]
add esi, 0x28
inc edi
test al, al
je 0x4578bc
movzx ebx, byte [esp + 0x54]
movsx edx, al
mov ecx, esi
push ebx
call fcn.00462970
add esp, 4
cmp byte [edi - 1], 0x45
jne 0x45a18a
movzx eax, word [esi + 0x10]
test al, 4
je 0x45a18a
mov ecx, dword [esi + 4]
mov edx, 0x8000
add edx, ecx
mov ebx, 0x10000
cmp edx, ebx
jae 0x45a144
mov cx, 0x20
mov dx, 0xffdb
jmp 0x45a17c
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x10]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x2c], eax
test edi, edi
je 0x45bb05
movzx eax, byte [edi]
inc edi
mov esi, dword [esp + 0x24]
jmp 0x45a22f
add esi, 0x28
movzx eax, byte [edi]
inc edi
test al, al
je 0x45bb05
movzx ebx, byte [esp + 0x54]
movsx edx, al
mov ecx, esi
push ebx
call fcn.00462970
add esp, 4
cmp byte [edi - 1], 0x45
jne 0x45a220
movzx eax, word [esi + 0x10]
test al, 4
je 0x45a220
and eax, 0xffffffdb
or eax, 0x20
mov word [esi + 0x10], ax
jmp 0x45a220
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x24]
cmp dword [esi + 0xc], 0
je 0x45d45b
mov ecx, edx
call fcn.00463170
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
jmp 0x45d48c
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shl eax, 4
mov esi, dword [ecx + eax + 4]
mov ebx, dword [esi + 4]
cmp byte [esi + 9], 0
je 0x45a2d1
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x45a2d1
mov ecx, esi
call fcn.0044f0a0
cmp edi, 0xf
jne 0x45c7aa
mov eax, dword [ebx]
mov edi, dword [esi + 0x14]
add edi, dword [eax + 0x6c]
jmp 0x45c7b6
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x60]
mov esi, dword [eax]
mov ebx, dword [esp + 0x14]
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
shl edi, 4
mov ecx, dword [esi + edi + 4]
push dword [ebx + 0xc]
call fcn.0042ed50
add esp, 4
mov edx, eax
mov eax, dword [ebx + 8]
cmp eax, 2
je 0x45e2b9
cmp eax, 1
mov ebx, dword [esp + 0x14]
jne 0x45e2c8
mov eax, dword [ebx + 0xc]
movzx ecx, word [ebx + 2]
sub eax, ecx
mov ecx, dword [esi + edi + 0xc]
mov dword [ecx], eax
mov ecx, dword [esp + 0x18]
or byte [ecx + 0x18], 1
mov esi, edx
mov edx, dword [ebx + 4]
call fcn.004635e0
mov edx, esi
jmp 0x45e2c8
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 4]
mov esi, dword [ecx + edx*4]
test esi, esi
je case.0x4578ee.112
mov ecx, dword [esi + 0x30]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 8]
jne case.0x4578ee.112
mov ecx, dword [esi + 0x24]
call fcn.00453700
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
jmp 0x45fd08
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax + 0x96]
and cl, 3
cmp cl, 1
je 0x461d08
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
mov dword [esp + 0x2c], edx
shl edx, 4
mov eax, dword [ecx + edx + 4]
mov dword [esp + 0x20], eax
cmp bl, 0x71
jne 0x45a3ea
movzx ebx, word [esi + 2]
and ebx, 8
or ebx, 4
mov eax, dword [ecx + edx + 0xc]
movzx eax, byte [eax + 0x4c]
mov ecx, dword [esp + 0x30]
cmp al, byte [ecx + 0x93]
jae 0x45a3ec
mov byte [ecx + 0x93], al
jmp 0x45a3ec
xor ebx, ebx
mov eax, dword [esp + 0x1c]
test byte [esi + 2], 0x10
je 0x45fc1b
mov dword [esp + 0x1c], ebx
mov ebx, edi
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
movzx edi, word [ecx + eax*8 + 0x10]
movzx ecx, di
test cl, 0x24
je 0x45cc2a
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x45fbff
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov esi, dword [edx + 8]
lea ebx, [eax + eax*4]
mov dword [esp + 0x34], esi
lea eax, [esi + esi*4]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x24], ebx
mov esi, dword [edi + ebx*8 + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [edi + eax*8 + 0x10]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], esi
or eax, esi
mov edx, dword [edx + 0xc]
lea esi, [edx + edx*4]
lea ebx, [edi + esi*8]
mov dword [esp + 0x38], ebx
test al, 1
jne 0x45c7f2
mov dword [esp + 0x68], esi
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x24]
lea ecx, [edi + eax*8]
mov ebx, dword [esp + 0x20]
movzx eax, bx
mov esi, dword [esp + 0x48]
lea edx, [edi + esi*8]
add edx, 0x10
mov dword [esp + 0x44], edx
test al, 0x12
je 0x45f548
mov edi, esi
mov edx, ebx
test eax, 0x400
mov esi, dword [esp + 0x2c]
je 0x45f575
mov edi, ecx
call fcn.00430490
jmp 0x45f559
mov ebx, edi
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
test byte [ecx + eax*8 + 0x11], 0x90
je 0x45d4b2
mov ecx, esi
call fcn.00455c60
jmp 0x45d4b8
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x60]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov esi, dword [esi + 8]
mov esi, dword [eax + esi*4]
movsx eax, word [esi + 0x34]
push 0
push eax
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov dword [esp + 0x10], edi
mov byte [eax + 2], 1
movzx ecx, byte [eax + 5]
or cl, 1
mov byte [eax + 5], cl
mov edx, dword [esi + 0x28]
mov dword [eax + 0x28], edx
movzx edx, byte [esi + 4]
mov byte [eax + 4], dl
mov edx, dword [esi + 0x30]
mov dword [eax + 0x30], edx
movzx edx, byte [esi + 5]
and dl, 4
and cl, 0xfb
or cl, dl
mov byte [eax + 5], cl
mov edx, dword [esi + 8]
mov dword [eax + 8], edx
or cl, 8
mov byte [eax + 5], cl
or byte [esi + 5], 8
mov esi, dword [eax + 8]
mov ecx, dword [eax + 0x24]
mov edi, dword [eax + 0x30]
mov ebx, dword [eax + 0x28]
cmp byte [esi + 9], 0
je 0x45e1c2
mov dword [esp + 0x1c], ecx
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x45a581
mov ecx, esi
call fcn.0044f0a0
mov ecx, esi
mov edx, edi
push dword [esp + 0x1c]
push ebx
push 4
call fcn.00469840
add esp, 0xc
cmp byte [esi + 9], 0
mov dword [esp + 0x1c], eax
je 0x4578bc
dec dword [esi + 0xc]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jne case.0x4578ee.89
mov ecx, esi
call fcn.0044f130
jmp 0x4578c0
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
lea ecx, [edx + esi*8]
mov dword [esp + 0x20], edx
test byte [edx + esi*8 + 0x11], 0x90
mov dword [esp + 0x10], edi
mov ebx, ecx
je 0x45d4e6
call fcn.004686a0
jmp 0x45d4ec
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x30]
push 1
push dword [esi + 8]
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov dword [esp + 0x10], edi
mov edx, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
mov dword [eax + 0x28], edx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
movzx ebx, word [edx + 6]
lea edi, [ebx*4 + 0x9c]
mov ecx, dword [esp + 0x18]
mov edx, edi
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x46200b
mov esi, eax
shl ebx, 2
push edi
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 0x24], esi
add ebx, 0x14
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov eax, esi
add eax, 0x88
mov dword [esi + 0x1c], eax
push ebx
push dword [ecx + 0x28]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 0x94], 0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x45a69d
mov word [esi + 0x8e], ax
cmp byte [edi + 9], 0
je 0x45a6b3
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x45a6b3
mov ecx, edi
call fcn.0044f0a0
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x24]
mov dword [esi + 0xc], eax
cmp byte [edi + 9], 0
je 0x45a6ce
dec dword [edi + 0xc]
jne 0x45a6ce
mov ecx, edi
call fcn.0044f130
mov byte [esi + 0x3b], 1
mov word [esi + 0x39], 0xff00
mov eax, dword [esp + 0x18]
mov dword [esi + 0x18], eax
mov dword [esi + 0x48], esi
mov dword [esp + 0x1c], 0
cmp word [esi + 0x90], 0xc
ja 0x4578bc
mov eax, dword [esi + 0x9c]
test eax, eax
mov edi, dword [esp + 0x10]
je 0x45a713
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 8]
jne 0x4578c0
mov eax, dword [esi + 0x98]
test byte [eax], 2
jne 0x4578c0
mov byte [esi + 0x3c], 3
jmp 0x4578c0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov esi, ecx
add esi, 1
mov dword [eax + 0x10], esi
mov esi, edx
adc esi, 0
mov dword [eax + 0x14], esi
mov esi, ebx
or ecx, edx
jmp 0x45d2ff
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x30]
push 3
push dword [esi + 0xc]
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov byte [eax + 2], 1
mov ecx, dword [esi + 8]
mov dword [eax + 0x1c], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x24], 0x53e0d0
jmp 0x4578c0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x45a7b9
mov ebx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00454bb0
mov eax, dword [ebx + 0x60]
mov ecx, dword [esi + 4]
mov dword [eax + ecx*4], 0
jmp 0x4578c0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x18]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx + 0x24]
cmp byte [eax], 0
jne 0x4578c0
mov esi, dword [edx + 4]
mov eax, dword [ebx + 0x28]
mov dword [esp + 0xe0], eax
movzx eax, word [edx + 0x24]
mov word [esp + 0xf4], ax
mov byte [esp + 0xf6], 0
mov eax, dword [edx + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*8]
mov dword [esp + 0xe4], eax
lea eax, [edx + 0x14]
mov dword [esp + 0x24], eax
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
mov esi, dword [ebx + 0x24]
mov ecx, esi
call fcn.004514d0
mov eax, dword [esi + 0x2c]
test eax, eax
jle 0x461d12
mov word [esp + 0x80], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x3c]
sub ecx, edx
mov edi, ecx
test ecx, ecx
jg 0x45a8b1
xor edi, edi
movzx ebx, word [esi + 0x30]
cmp ecx, ebx
cmovge edi, ebx
mov dword [esp + 0x78], edx
cmp edi, eax
jae 0x45a8e6
lea edi, [esp + 0x70]
mov ecx, esi
xor edx, edx
push edi
push eax
call fcn.00463050
add esp, 8
test eax, eax
jne 0x46232b
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
jmp 0x45a8f4
mov word [esp + 0x80], 0x4010
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x10]
lea esi, [esp + 0xe0]
mov ecx, eax
push 0
push esi
call fcn.00465d00
add esp, 8
mov esi, eax
cmp dword [esp + 0x88], 0
mov ebx, dword [esp + 0x20]
je 0x45a925
lea ecx, [esp + 0x70]
call fcn.00455c20
test esi, esi
jg 0x460c71
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
je 0x460c82
mov eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x45e774
mov ecx, dword [ebx + 0x24]
mov word [ecx + 0x32], 0
and byte [ecx + 1], 0xf9
cmp byte [ecx], 0
je 0x45a967
call fcn.0046a640
mov edx, eax
jmp 0x45a99d
mov eax, dword [ecx + 0x74]
movzx edx, word [ecx + 0x46]
lea esi, [edx + 1]
mov word [ecx + 0x46], si
cmp si, word [eax + 0x18]
jae 0x45a98e
xor edx, edx
cmp byte [eax + 8], 0
mov esi, dword [esp + 0x18]
jne 0x45a99d
call fcn.0046a970
jmp 0x45a963
mov word [ecx + 0x46], dx
call fcn.0046a640
mov edx, eax
mov esi, dword [esp + 0x18]
test edx, edx
je 0x45a840
cmp edx, 0x65
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jne 0x46244a
jmp 0x460c86
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov eax, dword [eax + edx*4]
movzx edx, word [eax + 6]
cmp ecx, edx
jg 0x45a9e1
mov ecx, dword [esi + 0xc]
cmp ecx, edx
jge 0x4578c0
mov word [eax + 6], cx
jmp 0x4578c0
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
mov dword [esp + 0x10], edi
je 0x45d50e
mov ecx, esi
call fcn.004686a0
jmp 0x45d519
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
test byte [eax + edx*8 + 0x11], 0x90
mov dword [esp + 0x20], ecx
je 0x45d549
call fcn.004686a0
jmp 0x45d554
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
mov ebx, dword [edx + ecx*4]
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
mov edx, dword [esp + 0x28]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x7c], ecx
xor eax, eax
cmp byte [esi + 1], 0xfb
jne 0x45c806
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0xf8], 0
mov esi, 0
je 0x45c808
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
movsx edx, byte [ebx + 1]
shl edx, 4
mov eax, dword [ecx + edx]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x10]
jmp 0x45c808
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x45d5b2
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + eax*8]
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x24], eax
jmp 0x45d5c2
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
xor ebx, ebx
cmp byte [edx + 1], 0xfb
jne 0x45c911
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xf8], 0
mov esi, 0
je 0x45c913
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
movsx ecx, byte [edi + 1]
shl ecx, 4
mov ebx, dword [eax + ecx]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x10]
test byte [eax + 2], 2
je 0x45c913
cmp byte [edi + 4], 0
je 0x45c913
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x1c], ecx
call fcn.004514d0
mov eax, dword [esp + 0x1c]
movq xmm0, qword [eax + 0x20]
movq qword [edi + 0x38], xmm0
jmp 0x45c913
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
mov edx, dword [esp + 0x18]
mov dword [edx + 0x68], eax
mov dword [edx + 0x6c], ecx
add dword [edx + 0x70], eax
adc dword [edx + 0x74], ecx
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
jmp case.0x4578ee.89
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x20], esi
mov eax, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ebx, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x1c], eax
mov esi, dword [ebx + 0x20]
test esi, esi
jne 0x45fd79
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + 6]
lea eax, [eax + eax*4]
lea edx, [eax*8 + 0x48]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x45fd53
push 0
call fcn.0043f5f0
add esp, 4
jmp 0x45fd5c
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x24]
cmp byte [eax + 0x38], 0
je 0x45d634
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
imul ecx, dword [ecx + 4], 0x38
lea eax, [edx + ecx]
add eax, 0x14
mov edx, dword [edx + ecx + 0x20]
jmp 0x45d63a
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
test byte [ecx + eax*8 + 0x11], 0x90
mov dword [esp + 0x10], edi
je 0x45d6b9
mov ecx, ebx
call fcn.004686a0
jmp 0x45d6bf
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d787
mov ecx, ebx
call fcn.004686a0
jmp 0x45d78d
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x45ad32
mov ecx, dword [esp + 0x30]
push 3
push 1
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov dword [eax + 0x1c], 0
mov byte [eax + 4], 1
or byte [eax + 5], 8
mov dword [eax + 0x24], 0x53e0d0
mov ecx, dword [esp + 0xc]
mov byte [eax + 2], 1
mov dword [eax + 0x18], 0
cmp byte [eax], 0
jne case.0x4578ee.89
mov ecx, dword [eax + 0x24]
call fcn.00453700
jmp 0x4578c0
mov dword [esp + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
mov edi, dword [esp + 0x14]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
mov esi, dword [ecx + edx*4]
test byte [edi + 2], 1
je 0x45ada5
mov ecx, dword [esp + 0x30]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
lea edi, [eax + eax*4]
mov ebx, dword [esp + 0x28]
test byte [ebx + edi*8 + 0x11], 4
je 0x45adc3
lea ecx, [ebx + edi*8]
call fcn.00430490
test eax, eax
jne 0x46232b
mov eax, dword [ebx + edi*8 + 0xc]
mov dword [esp + 0x78], eax
sar eax, 0x1f
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + edi*8 + 8]
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
mov dword [esp + 0x84], eax
movzx eax, word [ecx + 0x10]
mov word [esp + 0x88], ax
movzx ecx, word [ecx + 2]
mov eax, ecx
and eax, 0x8a
xor edi, edi
test cl, 0x10
je 0x457894
mov edi, dword [esi + 0x1c]
jmp 0x457894
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov ebx, dword [esp + 0x28]
test byte [ebx + ecx*8 + 0x11], 4
mov dword [esp + 0x2c], ecx
je 0x45ae55
mov eax, dword [esp + 0x2c]
lea ecx, [ebx + eax*8]
call fcn.00430490
mov ecx, dword [esp + 0x2c]
test eax, eax
jne 0x461c2a
mov eax, dword [esi + 0x24]
mov dword [esp + 0x20], eax
mov ecx, dword [ebx + ecx*8 + 8]
movzx eax, byte [ecx + 1]
test al, al
js 0x45e0f5
mov esi, dword [esp + 0x20]
jmp 0x45e10d
mov ebx, edi
mov dword [esp + 0xe0], 0xffffffff
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov esi, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x70], eax
movzx eax, word [edx + 0xc]
mov word [esp + 0x84], ax
mov byte [esp + 0x86], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*8]
mov dword [esp + 0x74], eax
lea eax, [esp + 0xe0]
lea edx, [esp + 0x70]
mov ecx, esi
push eax
call fcn.00464200
add esp, 4
test eax, eax
jne 0x461fc3
cmp dword [esp + 0xe0], 0
mov ecx, dword [esp + 0xc]
je 0x45e1dd
mov eax, dword [esp + 0x14]
cmp word [eax + 2], 0
mov esi, dword [esp + 0x18]
je 0x45e1f9
mov eax, 0x10000001
and eax, dword [esi + 0x20]
cmp eax, 1
je 0x45e1f9
jmp 0x4622a2
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x4578c0
call fcn.00462dc0
jmp 0x45afe0
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea ebx, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d7ae
mov ecx, ebx
call fcn.004686a0
jmp 0x45d7b4
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
lea eax, [esp + 0x70]
push eax
call fcn.004637c0
add esp, 4
cmp dword [esi + 0xc], 0
je 0x45afe0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x30]
add dword [esi + 0x28], ecx
adc dword [esi + 0x2c], edx
mov esi, dword [esp + 0x14]
mov esi, dword [esi + 0xc]
test esi, esi
jle 0x45afe0
lea esi, [esi + esi*4]
mov ebx, dword [esp + 0x28]
add dword [ebx + esi*8], ecx
adc dword [ebx + esi*8 + 4], edx
mov dword [esp + 0x1c], 0
test eax, eax
je 0x4578c0
jmp 0x461c2a
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
mov edx, dword [eax + 0x24]
jne 0x45c9a4
mov ecx, dword [esp + 0x18]
call fcn.00454df0
jmp 0x4578c0
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d918
mov ecx, esi
call fcn.004686a0
jmp 0x45d923
mov esi, dword [esp + 0x18]
inc byte [esi + 0x60]
push 0
push 0
push 0
mov eax, dword [esp + 0x20]
push dword [eax + 0x10]
push esi
call fcn.00435e30
add esp, 0x14
dec byte [esi + 0x60]
jmp 0x45b181
pcmpeqd xmm0, xmm0
movdqu xmmword [esp + 0x7c], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 4]
cmp dword [ecx + 0x10], 0
je 0x45d968
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], 0
mov eax, dword [ebx + 0x10]
shl esi, 4
mov eax, dword [eax + esi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x10]
push dword [ecx + 0x10]
push str.sqlite_master
push dword [eax + esi]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.004346d0
add esp, 0x14
test eax, eax
je 0x4621c6
mov esi, eax
mov byte [ebx + 0xb1], 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
lea eax, [esp + 0x70]
push 0
push eax
push fcn.00466eb0
push esi
push ebx
call fcn.00435e30
add esp, 0x14
mov ebx, eax
test eax, eax
jne 0x45b128
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
or eax, ebx
jne 0x45b156
push 0x52b213
push 0x17336
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov ebx, 0xb
mov ecx, dword [esp + 0x18]
mov edx, esi
mov esi, ecx
call fcn.0043f4f0
mov byte [esi + 0xb1], 0
jmp 0x45d9b9
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
mov esi, dword [esp + 0x18]
mov ecx, esi
call fcn.004671e0
mov dword [esp + 0x1c], 0
test eax, eax
je 0x4578c0
jmp 0x461c16
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shl eax, 4
mov ecx, dword [ecx + eax + 0xc]
add ecx, 8
push 0
call fcn.00470a80
add esp, 4
test eax, eax
mov esi, dword [esp + 0x18]
je 0x45e9db
cmp dword [esi + 0x210], 0
je 0x45e9c0
mov ecx, esi
mov edx, eax
call fcn.004759d0
jmp 0x45e9db
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shl eax, 4
mov ecx, dword [ecx + eax + 0xc]
add ecx, 0x18
push 0
call fcn.00470a80
add esp, 4
test eax, eax
mov esi, dword [esp + 0x18]
je 0x45e9db
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 8]
cmp edx, eax
je 0x45e9ca
test edx, edx
je 0x45e9d2
mov ecx, edx
mov edx, dword [edx + 0x14]
cmp edx, eax
jne 0x45b21f
add ecx, 0x14
jmp 0x45e9cd
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45d9ca
mov ecx, esi
call fcn.004686a0
jmp 0x45d9d0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shl eax, 4
mov ecx, dword [ecx + eax + 0xc]
add ecx, 0x28
push 0
call fcn.00470a80
add esp, 4
test eax, eax
je 0x4578c0
mov esi, eax
mov ecx, dword [eax + 0x14]
cmp ecx, dword [eax + 0x18]
je 0x45e9e4
mov ecx, dword [esp + 0x18]
mov edx, esi
mov esi, ecx
call fcn.00423690
jmp 0x45e9db
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 4]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x2c], eax
mov esi, dword [edx + 0x10]
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
movzx ecx, word [edx + 2]
shl ecx, 4
mov ebx, dword [eax + ecx + 4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov edi, dword [eax + ecx*8]
mov dword [esp + 0x11c], 0xffffffff
mov eax, dword [ebx + 4]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x20]
mov dword [esp + 0x44], edx
mov eax, dword [eax + 0x24]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0xd0], 0xffffffff
mov edx, dword [esi + 4]
mov dword [esp + 0x34], edx
test edx, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], esi
je 0x45d9ee
mov dword [esp + 0x64], 0
jmp 0x45d9f9
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
lea esi, [eax + eax*4]
mov ebx, dword [esp + 0x28]
test byte [ebx + esi*8 + 0x10], 0x10
jne 0x45b39a
lea ecx, [ebx + esi*8]
call fcn.004673d0
test eax, eax
jne 0x462074
lea eax, [edi + edi*4]
lea eax, [ebx + eax*8]
mov esi, dword [ebx + esi*8 + 8]
mov ebx, dword [eax]
mov edi, dword [eax + 4]
mov ecx, esi
call fcn.00473000
test eax, eax
je 0x4578bc
mov dword [eax], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], 0
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x45ed61
mov edx, dword [ecx + 4]
cmp dword [ecx], ebx
sbb edx, edi
jl 0x45b3dc
and byte [esi + 0x1a], 0xfe
mov dword [ecx + 8], eax
mov dword [esi + 0xc], eax
jmp 0x4578bc
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45dc7c
mov ebx, edi
mov ecx, esi
call fcn.004686a0
movzx eax, word [esi + 0x10]
jmp 0x45dc88
mov edx, dword [esp + 0x18]
test byte [edx + 0x22], 8
jne 0x45c9cd
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ecx, eax
je 0x45f5a4
sar ecx, 0x1f
add dword [edx + 0x200], eax
adc dword [edx + 0x204], ecx
jmp 0x4578c0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0xcc]
mov eax, dword [esp + 0x28]
test ecx, ecx
mov edx, dword [esp + 0x14]
je 0x45b47c
nop word cs:[eax + eax]
mov eax, ecx
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x45b470
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], edi
mov ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
movzx edi, word [eax + ecx*8 + 0x10]
movzx edx, di
test dl, 0x24
je 0x45dcce
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4600a8
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
test byte [eax + edx*8 + 0x11], 0x90
mov dword [esp + 0x20], ecx
je 0x45dcfb
call fcn.004686a0
jmp 0x45dd06
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
lea ebx, [eax + eax*4]
mov edi, dword [esp + 0x28]
lea eax, [edi + ebx*8]
cmp dword [esi + 8], eax
je 0x45c699
mov dword [esi + 8], eax
movzx eax, byte [esi + 0x1a]
test eax, eax
je 0x45c699
mov edx, dword [esp + 0x14]
lea ecx, [edx + 8]
cmp al, 8
jae 0x45c58a
mov edx, eax
jmp 0x45c677
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 4], 0
je 0x45dd58
movzx eax, byte [ecx + 8]
inc al
mov edx, dword [esp + 0x30]
movzx ecx, byte [edx + 0x96]
and al, 3
and cl, 0xfc
or cl, al
mov byte [edx + 0x96], cl
jmp 0x4578c0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x24]
or byte [eax + 1], 0x40
jmp case.0x4578ee.89
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x24]
and byte [eax + 1], 0xbf
jmp case.0x4578ee.89
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
test al, 0xff
jne 0x45b5aa
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x21], 4
jne 0x4578c0
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
shl esi, 4
mov ecx, dword [ecx + esi + 4]
movzx eax, al
push eax
call fcn.00468300
add esp, 4
test eax, eax
je 0x45e774
jmp 0x4620ef
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x17c]
test ecx, ecx
jle 0x45b5fc
cmp dword [esi + 0x194], 0
je 0x45ea29
test edi, edi
je 0x4578b4
mov eax, dword [edi + 8]
mov edx, dword [eax]
mov dword [esp + 0x1c], edx
mov edx, dword [edx + 0x38]
xor ebx, ebx
test edx, edx
je 0x4614e2
test ecx, ecx
jle 0x45b638
mov esi, dword [esp + 0x18]
mov ebx, dword [esi + 0x194]
xor esi, esi
cmp dword [ebx + esi*4], edi
je 0x4602ba
inc esi
cmp ecx, esi
jne 0x45b62a
imul esi, ecx, 0xcccccccd
add esi, 0x19999999
cmp esi, 0x33333332
mov esi, dword [esp + 0x18]
ja 0x4614d0
mov ebx, ecx
sar ebx, 0x1f
shld ebx, ecx, 2
lea edx, [ecx*4]
add edx, 0x14
adc ebx, 0
mov eax, dword [esi + 0x194]
test eax, eax
je 0x460e84
cmp dword [esi + 0x164], eax
mov dword [esp + 0x20], edx
jbe 0x461490
cmp dword [esi + 0x15c], eax
jbe 0x461483
cmp dword [esi + 0x160], eax
ja 0x461490
movzx esi, word [esi + 0x136]
mov dword [esp + 0x24], esi
xor esi, esi
cmp dword [esp + 0x24], edx
sbb esi, ebx
mov esi, dword [esp + 0x18]
jb 0x461490
jmp 0x4614af
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov esi, dword [esp + 0x18]
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ebx, dword [esp + 0x28]
mov edx, dword [ebx + ecx*8 + 0x10]
mov dword [esp + 0x80], edx
movdqu xmm0, xmmword [ebx + ecx*8]
movdqa xmmword [esp + 0x70], xmm0
mov eax, edx
and eax, 0xefff
mov word [esp + 0x80], ax
test dl, 0x12
je 0x45c3a7
test byte [ebx + ecx*8 + 0x11], 0x20
jne 0x45c3a7
or eax, 0x4000
mov word [esp + 0x80], ax
lea ecx, [esp + 0x70]
call fcn.004308e0
mov edx, eax
movzx eax, word [esp + 0x80]
jmp 0x45c3a9
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
mov edi, dword [ecx + 0xc8]
lea edx, [edi + 1]
mov dword [ecx + 0xc8], edx
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 4]
mov edx, dword [edx + 0x10]
shl esi, 4
push dword [eax + esi]
call fcn.0043cbf0
add esp, 4
test eax, eax
je 0x45bebc
mov esi, eax
cmp byte [eax + 0x2b], 1
jne 0x45bebc
mov eax, dword [esi + 0x34]
test eax, eax
je 0x45bebc
mov ecx, eax
mov edx, dword [ecx + 8]
cmp dword [edx + 4], 0
jg 0x461cb5
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x45b7b2
mov dword [esi + 0x34], 0
xor ebx, ebx
jmp 0x45b7ea
mov edi, dword [edx + 0x198]
mov dword [eax + 0x18], edi
mov dword [edx + 0x198], eax
mov eax, ecx
test ecx, ecx
je 0x46020f
mov edx, dword [eax]
mov ecx, dword [eax + 0x18]
cmp edx, dword [esp + 0x18]
jne 0x45b7d1
mov dword [esi + 0x34], eax
mov dword [eax + 0x18], 0
mov ebx, eax
jmp 0x45b7e0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 8]
mov edx, 6
test esi, esi
je 0x46202f
mov ecx, dword [esi]
test ecx, ecx
je 0x46202f
mov dword [esp + 0x10], edi
lea eax, [esp + 0x70]
push eax
push esi
mov dword [esp + 0x24], ecx
call dword [ecx + 0x18]
add esp, 8
mov ebx, eax
mov edi, dword [esp + 0x30]
mov ecx, edi
mov edx, esi
call fcn.00455830
test ebx, ebx
jne 0x462029
mov eax, dword [esp + 0x70]
mov dword [eax], esi
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
mov ecx, edi
push 2
push 0
call fcn.00463650
add esp, 8
test eax, eax
je 0x462066
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x24], ecx
inc dword [esi + 4]
jmp 0x4578b4
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.00423a30
test eax, eax
jne 0x462074
mov ecx, 8
xor edx, edx
call fcn.00424d20
test eax, eax
je 0x462074
mov esi, eax
mov eax, dword [edi + 0x24]
mov dword [esi], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*8]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov eax, dword [ecx + 8]
lea ebx, [eax + eax*4]
lea edi, [edx + ebx*8]
mov dword [esp + 0x20], edx
test byte [edx + ebx*8 + 0x11], 0x90
je 0x45e23c
mov ecx, edi
call fcn.004686a0
jmp 0x45e242
mov dword [esp + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov edi, dword [eax + ecx*4]
lea ebx, [edx + edx*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + ebx*8]
cmp byte [edi + 2], 0
je 0x45dd8e
test byte [edx + ebx*8 + 0x11], 0x90
mov edi, dword [esp + 0x10]
jne 0x45c103
lea eax, [edx + ebx*8]
add eax, 0x10
jmp 0x45c07a
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x20]
mov eax, edi
or eax, 0x4000000
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0x10]
mov esi, dword [ecx + 8]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x28]
test byte [eax + ebx*8 + 0x10], 2
lea eax, [eax + ebx*8 + 0x12]
jne 0x45c9ea
mov byte [eax], 1
jmp 0x45ca08
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45dded
mov ecx, esi
call fcn.004686a0
jmp 0x45ddf8
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
mov dword [esp + 0x10], edi
je 0x45de20
mov ecx, esi
call fcn.004686a0
jmp 0x45de2b
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
and word [edx + eax*8 + 0x10], 0xf7ff
jmp case.0x4578ee.89
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x10]
test edx, edx
jle 0x45de5a
mov ebx, dword [eax + 0xc]
add edx, ebx
lea eax, [ebx + ebx*4]
mov ecx, dword [esp + 0x28]
lea edi, [ecx + eax*8]
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x24], edx
jmp 0x45ba51
add ecx, dword [edi]
adc esi, dword [edi + 4]
inc ebx
add edi, 0x28
cmp ebx, edx
jge 0x45de5e
movzx eax, word [edi + 0x10]
test al, 0x24
jne 0x45ba40
test al, 8
jne 0x45ba91
test al, 0x12
je 0x45ba45
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0xc]
mov edx, ecx
sar edx, 0x1f
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
adc esi, edx
test eax, 0x400
je 0x45baa6
mov eax, dword [edi]
mov ecx, eax
sar ecx, 0x1f
add dword [esp + 0x20], eax
adc esi, ecx
mov ecx, dword [esp + 0x20]
jmp 0x45baa6
movq xmm0, qword [edi]
mov dword [esp + 0x20], ecx
call fcn.00456cb0
mov ecx, dword [esp + 0x20]
add ecx, eax
adc esi, edx
mov edx, dword [esp + 0x24]
jmp 0x45ba45
cmp byte [esi], 0
jne 0x45bab7
test byte [esi + 1], 8
jne 0x45baeb
mov ecx, esi
call fcn.00468f20
cmp eax, 0x10
je 0x45c1a0
mov edx, eax
test eax, eax
jne 0x462167
mov ecx, esi
call fcn.0046a320
mov edx, eax
movzx eax, byte [esi + 1]
test edx, edx
jne 0x462162
or al, 8
mov byte [esi + 1], al
mov word [edi + 2], 0
mov dword [edi + 0x18], 0
mov dword [esp + 0x1c], 0
jmp 0x46009d
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x24]
lea edx, [ecx + eax*8]
add edx, 0xffffffd8
mov eax, dword [esp + 0x2c]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x144], esi
lea eax, [eax + esi*8]
mov dword [esp + 0x140], eax
xor edi, edi
mov dword [esp + 0x2c], edx
mov ebx, edx
mov dword [esp + 0x38], 0
xor edx, edx
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
jmp 0x45bb7a
shl eax, 0x15
sar eax, 0x1f
and eax, 0xa
mov dword [ebx + 0x1c], eax
inc edx
lea eax, [ebx - 0x28]
cmp ebx, ecx
mov ebx, eax
je 0x45be74
movzx eax, word [ebx + 0x10]
test al, 1
jne 0x45bb60
test al, 0x24
je 0x45bbea
mov dword [esp + 0x20], edi
mov ecx, dword [ebx]
mov dword [esp + 0x48], ebx
mov esi, dword [ebx + 4]
mov edi, esi
sar edi, 0x1f
mov ebx, edi
xor ebx, esi
mov dword [esp + 0x3c], ecx
xor edi, ecx
inc edx
mov dword [esp + 0x34], edx
xor edx, edx
mov ecx, 0x7f
cmp ecx, edi
mov ecx, 0
sbb ecx, ebx
jb 0x45bc22
mov eax, 1
cmp eax, dword [esp + 0x3c]
sbb edx, esi
mov ecx, dword [esp + 0x24]
jb 0x45bc49
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x93], 4
jb 0x45bc49
add edi, 8
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], edi
mov edx, dword [esp + 0x34]
jmp 0x45be03
test al, 8
jne 0x45bc69
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0xc]
mov ecx, eax
shr ecx, 1
and ecx, 1
mov dword [esp + 0x44], edx
lea edx, [ecx + edx*2]
add edx, 0xc
test eax, 0x400
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], ebx
jne 0x45bca9
mov eax, dword [esp + 0x38]
jmp 0x45bd49
mov ecx, 0x7fff
cmp ecx, edi
sbb edx, ebx
jb 0x45bc7e
mov edi, dword [esp + 0x20]
add edi, 2
adc dword [esp + 0x38], 0
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], 2
jmp 0x45bcf7
mov edi, dword [esp + 0x20]
add edi, 1
adc dword [esp + 0x38], 0
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], 1
mov edx, dword [esp + 0x34]
jmp 0x45bb6d
inc edx
add edi, 8
adc dword [esp + 0x38], 0
mov dword [ebx + 0x1c], 7
jmp 0x45bb6d
xor edx, edx
mov ecx, 0x7fffff
cmp ecx, edi
mov ecx, 0
sbb ecx, ebx
jb 0x45bcd5
mov edi, dword [esp + 0x20]
add edi, 3
adc dword [esp + 0x38], 0
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], 3
jmp 0x45bcf7
mov ecx, dword [ebx]
lea edx, [edx + ecx*2]
mov dword [esp + 0x3c], edx
mov edx, edi
or edx, dword [esp + 0x38]
je 0x45bd34
mov dword [esp + 0x20], edi
add ecx, dword [esp + 0x44]
test ecx, ecx
jle 0x45bd4f
mov edx, ecx
mov edi, dword [esp + 0x10]
jmp 0x45bd5c
mov ecx, 0x7fffffff
cmp ecx, edi
sbb edx, ebx
jb 0x45bd04
mov edi, dword [esp + 0x20]
add edi, 4
adc dword [esp + 0x38], 0
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], 4
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
jmp 0x45bb6d
test ebx, 0xffff8000
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
jne 0x45be0c
add edi, 6
adc dword [esp + 0x38], 0
mov ebx, dword [esp + 0x48]
mov dword [ebx + 0x1c], 5
mov ecx, dword [esp + 0x24]
jmp 0x45bb6d
mov eax, ecx
sar eax, 0x1f
add dword [esp + 0x68], ecx
adc dword [esp + 0x64], eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
jmp 0x45bda2
mov edx, 1
test al, 0x10
mov edi, dword [esp + 0x10]
je 0x45bd96
mov ebx, dword [esp + 0x48]
mov ecx, ebx
push 1
call fcn.00455dd0
add esp, 4
test eax, eax
jne 0x46207c
mov eax, dword [ebx + 8]
add eax, dword [ebx + 0xc]
push dword [ebx]
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov eax, dword [ebx]
add dword [ebx + 0xc], eax
and byte [ebx + 0x11], 0xf9
mov ecx, dword [esp + 0x44]
add ecx, eax
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add edi, ecx
mov dword [esp + 0x20], edi
adc eax, 0
mov dword [esp + 0x38], eax
mov eax, 1
mov dword [esp + 0x3c], edx
cmp edx, 0x80
jb 0x45bdee
xor ecx, ecx
mov eax, 1
mov edi, dword [esp + 0x3c]
xor edx, edx
nop dword [eax]
mov ebx, ecx
shld ebx, edi, 0x19
shr edx, 7
inc eax
mov esi, 0x3fff
cmp esi, edi
mov esi, 0
sbb esi, ecx
mov edi, ebx
mov ecx, edx
jb 0x45bdd0
mov edx, dword [esp + 0x34]
add edx, eax
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x1c], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x45bb6d
add edi, 8
adc dword [esp + 0x38], 0
test al, 0x20
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x48]
jne 0x45be2c
mov dword [ebx + 0x1c], 6
jmp 0x45bb6d
movd xmm0, dword [esp + 0x3c]
movd xmm1, esi
punpckldq xmm0, xmm1
movq qword [esp + 0x1b8], xmm0
fild qword [esp + 0x1b8]
fstp qword [esp + 0x1b0]
movq xmm0, qword [esp + 0x1b0]
movq qword [ebx], xmm0
and eax, 0xffffffd7
or eax, 8
mov word [ebx + 0x10], ax
mov dword [ebx + 0x1c], 7
jmp 0x45bb6d
mov dword [esp + 0x20], edi
cmp edx, 0x7e
jg 0x45cab7
inc edx
jmp 0x45cb51
test bl, 8
jne 0x45cf42
test bl, 0x12
je 0x45e54d
mov eax, dword [esp + 0x28]
cmp dword [eax + esi*8 + 8], 0
je 0x45e54d
mov esi, ecx
call fcn.00456d20
mov ecx, esi
mov esi, eax
movzx ebx, word [ecx + 0x10]
jmp 0x45e551
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc8], edi
jmp 0x4578b4
cmp si, 0x42
jne 0x45de99
mov ecx, edx
mov edx, eax
test cl, 2
movzx eax, byte [esp + 0x54]
mov ebx, dword [esp + 0x48]
jne 0x45bf2b
and ecx, 0x2c
je 0x45bf2b
movzx edx, al
mov ecx, dword [esp + 0x24]
push 1
call fcn.00456350
add esp, 4
mov eax, 0xfffff240
mov ecx, dword [esp + 0x68]
and eax, dword [ecx]
mov ecx, dword [esp + 0x34]
and ecx, 0xdbf
or ecx, eax
mov dword [esp + 0x34], ecx
mov eax, ecx
or eax, 2
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x38], ecx
cmove ebx, eax
movzx edx, bx
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
test dl, 2
jne 0x45d0bb
and edx, 0x2c
je 0x45d0bb
movzx edx, byte [esp + 0x54]
push 1
call fcn.00456350
add esp, 4
mov eax, 0xfffff240
mov ecx, dword [esp + 0x44]
and eax, dword [ecx]
and ebx, 0xdbf
or ebx, eax
jmp 0x45d0b7
test byte [esp + 0x24], 8
mov ebx, dword [esp + 0x34]
jne 0x45dee8
test byte [esp + 0x24], 0x12
je 0x45ef07
mov eax, edx
mov edx, dword [esp + 0x28]
cmp dword [edx + eax*8 + 8], 0
je 0x45ef07
mov dword [esp + 0x10], edi
lea edi, [edx + ebx*8]
add edi, 0x10
call fcn.00456d20
mov esi, eax
movzx eax, word [edi]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x10]
jmp 0x45ef0b
mov ebx, 2
test al, 1
jne 0x460977
test al, 8
jne 0x45f5b6
test al, 0x12
je 0x460963
call fcn.004565a0
jmp 0x460967
mov word [eax], 4
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
mov edi, dword [edx + 0xc]
xor ebx, ebx
cmp dword [edx + 4], 0
setne bl
shl ebx, 8
or ebx, 1
mov edx, dword [esp + 0x24]
mov word [edx], bx
mov edx, dword [esp + 0x20]
mov dword [edx + esi*8 + 0xc], 0
sub edi, eax
jle 0x45c99b
mov eax, edx
lea esi, [edx + esi*8]
add esi, 0x28
inc edi
jmp 0x45c04e
mov word [esi + 0x10], 1
mov word [esi + 0x10], bx
mov dword [esi + 0xc], 0
add esi, 0x28
dec edi
cmp edi, 1
jle 0x45c99b
test byte [esi + 0x11], 0x90
je 0x45c030
mov ecx, esi
call fcn.00455c60
mov ecx, dword [esp + 0xc]
jmp 0x45c036
mov edx, dword [edx + 0x10]
mov ecx, ebx
call fcn.00455d30
mov edx, eax
mov ecx, ebx
jmp 0x45cef8
lea eax, [esi + ebx*8]
add eax, 0x10
mov word [eax], 1
jmp 0x4578c0
test cl, 1
mov esi, dword [esp + 0x14]
je 0x45def8
mov ecx, eax
and ecx, 0x100
jne 0x45def8
mov dword [esp + 0x6c], 0
mov ecx, 0x52a925
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
jmp 0x45f64f
cmp byte [eax + 0x52a925], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jne 0x460e07
mov dword [esp + 0x6c], 0
jmp case.0x4578ee.89
and eax, 0xfffff240
or eax, 4
mov word [esi], ax
jmp 0x4578c0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x11], 0x90
je 0x45e6c5
lea ecx, [esi + eax*8]
call fcn.00455c60
jmp 0x4578c0
mov ecx, esi
call fcn.0046a970
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
test eax, eax
mov esi, dword [esp + 0x18]
je 0x45c720
jmp 0x461c16
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov edx, dword [esi + 0x24]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x18]
push eax
call fcn.00465ab0
add esp, 4
test eax, eax
jne 0x461c2a
mov ebx, dword [esp + 0x14]
cmp byte [ebx], 0x8d
jne 0x45e216
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [ebx + 0xc]
mov eax, dword [eax + ecx*4]
mov byte [eax + 2], 0
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], edx
mov byte [eax + 3], 1
mov dword [eax + 0x18], 0
mov ecx, dword [ebx + 0x10]
mov dword [eax + 8], ecx
mov dword [eax + 0x20], esi
jmp 0x45e774
mov word [edi + 2], 1
mov dword [edi + 0x18], 0
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x14]
cmp dword [esi + 8], 0
mov edi, ebx
jmp 0x45865f
mov dword [esp + 0x2c], 0
mov eax, dword [esi + 8]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea ecx, [eax + esi*8]
mov dword [esp + 0x24], ecx
movzx ecx, word [eax + esi*8 + 0x10]
mov eax, ecx
and eax, 0x2c
jne 0x45c1fb
test cl, 0x12
je 0x45c1f9
mov ecx, dword [esp + 0x24]
call fcn.00468710
jmp 0x45c1fb
xor eax, eax
mov edx, dword [esp + 0x28]
lea edi, [edx + ebx*8]
add edi, 0x10
lea ebx, [edx + esi*8 + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
and eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], ecx
lea ecx, [edx + ecx*8]
test al, 4
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], edi
je 0x45c296
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x24]
mov ebx, dword [edi]
mov edi, dword [edi + 4]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
movzx esi, byte [esi]
add esi, 0xffffff96
cmp esi, 3
ja case.default.0x45c257
jmp dword [esi*4 + 0x52759c]
test eax, eax
js 0x45ea33
cmp ebx, 1
mov esi, edi
sbb esi, 0
mov ecx, dword [esp + 0xc]
jl 0x45ea70
mov esi, 0x7fffffff
sub esi, edi
mov ecx, ebx
not ecx
cmp ecx, edx
mov ecx, dword [esp + 0xc]
sbb esi, eax
jb 0x45c432
jmp 0x45ea70
movzx eax, word [ebx]
or ax, word [edi]
test al, 1
mov ecx, dword [esp + 0xc]
je 0x45c432
jmp 0x45fb6d
test al, 2
je 0x461ccd
add esi, 0x28
mov eax, dword [esp + 0x20]
movzx eax, word [eax + 0x22]
inc edi
movsx ecx, ax
add ebx, 0xc
cmp edi, ecx
jge 0x4578bc
movzx ecx, word [ebx + 0xa]
test cl, 0x60
je 0x45c2ec
test cl, 0x20
jne 0x45c2c0
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xc], 0
je 0x45c2ec
add esi, 0x28
jmp 0x45c2c0
movsx edx, byte [ebx + 5]
movzx eax, byte [esp + 0x54]
mov ecx, esi
push eax
call fcn.00462970
add esp, 4
movzx eax, word [esi + 0x10]
test al, 1
jne case.default.0x45c317
movzx ecx, byte [ebx + 4]
shr ecx, 4
lea edx, [ecx - 2]
cmp edx, 4
ja case.default.0x45c317
jmp dword [edx*4 + 0x527588]
test al, 4
jne case.default.0x45c317
jmp 0x461ccd
test al, 0x10
jne case.default.0x45c317
jmp 0x461ccd
test al, 4
jne 0x45c341
test al, 0x28
jne case.default.0x45c317
jmp 0x461ccd
mov ecx, dword [esi + 4]
lea edx, [ecx + 0x8000]
test edx, 0xffff0000
jne 0x45c35c
mov cx, 0x20
mov dx, 0xffdb
jmp 0x45c394
movd xmm0, dword [esi]
movd xmm1, ecx
punpckldq xmm0, xmm1
movq qword [esp + 0x198], xmm0
fild qword [esp + 0x198]
fstp qword [esp + 0x190]
movq xmm0, qword [esp + 0x190]
movq qword [esi], xmm0
mov cx, 8
mov dx, 0xfff3
movsx edx, dx
and edx, eax
movzx eax, cx
or eax, edx
mov word [esi + 0x10], ax
jmp case.default.0x45c317
xor edx, edx
mov ecx, eax
not ecx
test ecx, 0x202
jne 0x45ca50
cmp byte [esp + 0x82], 1
jne 0x45ca50
mov eax, dword [esp + 0x78]
jmp 0x45ca6a
mov dword [esp + 0x1c], 0
jmp 0x45eefc
mov ecx, edx
or ecx, eax
mov ecx, dword [esp + 0xc]
je 0x45fb6d
mov ecx, edx
and ecx, eax
xor esi, esi
cmp ecx, 0xffffffff
mov ecx, 1
cmovne ecx, edx
cmovne esi, eax
push esi
push ecx
push edi
push ebx
call fcn.0050f6d0
jmp 0x45c4c7
lea ecx, [esp + 0x70]
push eax
call fcn.00462720
jmp 0x45c423
lea ecx, [esp + 0x70]
push eax
call fcn.004627e0
add esp, 4
test eax, eax
mov ecx, dword [esp + 0xc]
je 0x45ea7c
mov eax, dword [esp + 0x48]
movzx eax, word [eax]
test al, 8
jne 0x45c464
test al, 0x24
mov edi, dword [esp + 0x38]
je 0x45cf66
mov eax, dword [esp + 0x20]
fild qword [eax]
fstp qword [esp + 0x188]
movsd xmm2, qword [esp + 0x188]
jmp 0x45fa5e
mov eax, dword [esp + 0x20]
movsd xmm2, qword [eax]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
jmp 0x45fa62
mov ecx, edx
or ecx, eax
mov ecx, dword [esp + 0xc]
je 0x45fb6d
mov ecx, edx
and ecx, eax
mov dword [esp + 0x44], ecx
xor esi, esi
mov ecx, 0xffffffff
add ecx, 1
mov dword [esp + 0x3c], ecx
adc esi, 0x7fffffff
cmp dword [esp + 0x44], 0xffffffff
mov ecx, dword [esp + 0xc]
jne 0x45c4be
xor dword [esp + 0x3c], ebx
xor esi, edi
or esi, dword [esp + 0x3c]
je 0x45c432
push eax
push edx
push edi
push ebx
call fcn.0050f570
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
jmp 0x45ea7c
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc0], 0
jle 0x45c4f3
cmp dword [esp + 0x20], 1
je 0x46220e
cmp dword [esi + 0x18], 0
mov edi, dword [esp + 0x10]
je 0x45f088
xor eax, eax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x24]
not ecx
mov eax, dword [esp + 0x18]
add ecx, dword [eax + 0x1f4]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x20], 2
jne 0x45ed10
mov edx, dword [eax + 0x18]
and edx, 1
cmp dword [eax + 0x14], 0
jle 0x45f1cf
mov dword [esp + 0x34], edx
xor edx, 1
mov dword [esp + 0x1c], edx
xor edi, edi
mov ebx, 4
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [eax + ebx]
mov edx, 0x204
push dword [esp + 0x1c]
call fcn.004534e0
add esp, 4
test eax, eax
jne 0x46232b
inc edi
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
add ebx, 0x10
cmp edi, eax
jl 0x45c548
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x34]
jmp 0x45ed15
mov dword [esp + 0x20], eax
lea eax, [esi + 0x1c]
add edx, 0xc
cmp eax, edx
mov edx, dword [esp + 0x20]
jae 0x45c5aa
lea eax, [esi + edx*4]
add eax, 0x1c
cmp ecx, eax
jb 0x45c677
mov dword [esp + 0x24], ebx
mov eax, edx
and eax, 0xfffffff8
mov ebx, edx
and edx, 7
movd xmm0, dword [ecx]
pshufd xmm0, xmm0, 0
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
mov edi, eax
movd xmm1, ebx
pshufd xmm2, xmm1, 0
movdqa xmm1, xmmword [0x5271f0]
paddd xmm1, xmm2
paddd xmm2, xmm0
movdqa xmm3, xmm0
paddd xmm3, xmm1
movdqa xmm4, xmmword [0x527200]
pshufd xmm5, xmm2, 0xf5
pmuludq xmm2, xmm4
pshufd xmm2, xmm2, 0xe8
pmuludq xmm5, xmm4
pshufd xmm5, xmm5, 0xe8
punpckldq xmm2, xmm5
pshufd xmm5, xmm3, 0xf5
pmuludq xmm5, xmm4
pmuludq xmm3, xmm4
movd xmm4, dword [esp + 0x28]
pshufd xmm4, xmm4, 0
movd eax, xmm1
pshufd xmm1, xmm3, 0xe2
pshufd xmm3, xmm5, 0xe2
punpckldq xmm3, xmm1
paddd xmm3, xmm4
pshufd xmm1, xmm2, 0x1b
paddd xmm1, xmm4
paddd xmm1, xmmword [0x527210]
movdqu xmmword [esi + eax*4 + 0x10], xmm3
movdqu xmmword [esi + eax*4], xmm1
add ebx, 0xfffffff8
add edi, 0xfffffff8
jne 0x45c5cb
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
je 0x45c699
dec edx
nop dword [eax + eax]
mov eax, dword [ecx]
add eax, edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esi + edx*4 + 0x1c], eax
lea eax, [edx - 1]
inc edx
cmp edx, 1
mov edx, eax
ja 0x45c680
inc dword [edi + ebx*8 + 0xc]
lea eax, [esi + 0x1c]
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 4], 0
mov ecx, dword [esi + 4]
mov edx, 0x10
mov edi, 0x1c
cmove edi, edx
movzx edx, byte [esi + 0x1a]
push eax
push edx
push esi
call dword [ecx + edi]
add esp, 0xc
cmp dword [esi + 0x14], 0
je 0x4578bc
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jle 0x45c74f
mov ecx, dword [esi]
xor eax, eax
test ecx, ecx
je 0x45c73a
mov ebx, edi
mov edx, dword [ecx + 0x10]
mov edi, edx
not edi
test edi, 0x202
jne 0x45c729
cmp byte [ecx + 0x12], 1
jne 0x45c729
mov eax, dword [ecx + 8]
mov edi, ebx
jmp 0x45c73a
cmp dword [ecx + 0x24], 0
mov esi, dword [esp + 0x18]
je 0x45f128
lea edx, [ecx + 0x24]
add ecx, 0x40
call fcn.0046e600
test eax, eax
jne 0x461c16
mov byte [ebx + 2], 0
jmp 0x45e774
test dl, 1
mov edi, ebx
jne 0x45c73a
mov edx, 1
call fcn.00456040
push eax
push 0x52a965
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov edx, dword [esi + 0x14]
cmp byte [esi + 0x19], 0
je 0x45e6f3
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x45e6ef
mov ebx, edx
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
test byte [edx + eax*8 + 0x11], 0x90
je 0x45e6d5
mov edx, 1
push 0
call fcn.00457030
add esp, 4
jmp 0x45e6ed
test byte [ebx + edi*8 + 0x11], 0x90
je 0x45f5bf
mov ecx, esi
call fcn.00455c60
jmp 0x4578bc
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + edi*4 + 0x24]
bswap edi
cmp byte [esi + 9], 0
je 0x45c7c8
dec dword [esi + 0xc]
jne 0x45c7c8
mov ecx, esi
call fcn.0044f130
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45df1a
mov ecx, esi
call fcn.004686a0
jmp 0x45df25
test byte [edi + esi*8 + 0x11], 0x90
je 0x45f5cf
mov ecx, dword [esp + 0x38]
jmp 0x45fb80
xor esi, esi
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 2]
test cl, 1
je 0x45c82d
mov ecx, dword [esp + 0x30]
add dword [ecx + 0x28], 1
adc dword [ecx + 0x2c], 0
mov ecx, dword [esp + 0x14]
movzx ecx, word [ecx + 2]
test cl, 0x20
je 0x45c844
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0x28], edx
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x28]
mov eax, dword [edx + ecx*8 + 8]
mov dword [esp + 0x80], eax
mov eax, dword [edx + ecx*8 + 0xc]
mov dword [esp + 0x8c], eax
xor edx, edx
mov eax, dword [esp + 0x14]
test byte [eax + 2], 0x10
mov eax, 0
je 0x45c879
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x28]
test byte [edi + ecx*8 + 0x11], 4
je 0x45c88d
lea ecx, [edi + ecx*8]
mov edx, dword [ecx]
mov dword [esp + 0x90], edx
mov dword [esp + 0x70], 0
mov ecx, dword [ebx + 0x24]
mov edx, dword [esp + 0x14]
movzx edi, word [edx + 2]
and edi, 0x8a
lea edx, [esp + 0x70]
push eax
push edi
call fcn.00464a10
add esp, 8
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
test eax, eax
jne 0x46232b
test esi, esi
je 0x4578b4
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 2]
and eax, 4
shr eax, 2
lea eax, [eax + eax*4]
add eax, 0x12
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esi]
push dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x2c]
push dword [eax + 0xf4]
call dword [eax + 0xf8]
add esp, 0x18
jmp 0x4578b4
xor esi, esi
mov ecx, dword [edi + 0x24]
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + 2]
call fcn.00465580
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
test eax, eax
jne 0x46232b
mov dword [esp + 0x1c], 0
test byte [esp + 0x20], 1
je 0x4578bc
mov eax, dword [esp + 0x30]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xf8]
test eax, eax
mov ecx, dword [esp + 0xc]
je 0x45c99b
test esi, esi
je 0x45c99b
test byte [esi + 0x1c], 0x80
jne 0x45c99b
push dword [edi + 0x3c]
push dword [edi + 0x38]
push dword [esi]
push ebx
push 9
mov ecx, dword [esp + 0x2c]
push dword [ecx + 0xf4]
call eax
mov ecx, dword [esp + 0x24]
add esp, 0x18
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0x40]
push 0
call fcn.004637c0
add esp, 4
mov dword [esp + 0x1c], 0
test eax, eax
mov esi, dword [esp + 0x18]
je 0x4578c0
jmp 0x461c16
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov ecx, eax
sar ecx, 0x1f
add dword [edx + 0x208], eax
adc dword [edx + 0x20c], ecx
jmp 0x4578c0
cmp byte [eax], 1
je 0x45ca08
mov eax, dword [esp + 0x28]
lea ecx, [eax + ebx*8]
mov edx, 1
call fcn.00457070
test eax, eax
jne 0x46232b
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
push dword [ecx + ebx*8 + 8]
push esi
call dword [eax + 0x4c]
add esp, 8
mov ebx, eax
test edi, 0x4000000
jne 0x45ca2b
mov eax, dword [esp + 0x18]
and byte [eax + 0x23], 0xfb
mov edi, dword [esp + 0x30]
mov ecx, edi
mov edx, esi
call fcn.00455830
and byte [edi + 0x96], 0xfc
test ebx, ebx
mov edi, dword [esp + 0x10]
je 0x45e774
jmp 0x461ff4
test al, 1
jne 0x45ca89
lea ecx, [esp + 0x70]
mov ebx, esi
mov esi, edx
mov edx, 1
call fcn.00456040
mov edx, esi
mov esi, ebx
test eax, eax
je 0x45ca89
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov ecx, esi
push dword [esp + 0xd8]
push eax
call fcn.00468430
add esp, 8
mov edx, eax
test byte [esp + 0x81], 0x90
jne 0x45caa1
cmp dword [esp + 0x88], 0
je 0x4607aa
lea ecx, [esp + 0x70]
mov ebx, esi
mov esi, edx
call fcn.00455c20
mov edx, esi
mov esi, ebx
jmp 0x4607aa
mov eax, 1
mov dword [esp + 0x34], edx
cmp edx, 0x7f
je 0x45caf4
xor edx, edx
mov eax, 1
mov edi, dword [esp + 0x34]
xor esi, esi
mov ebx, edx
shld ebx, edi, 0x19
shr esi, 7
inc eax
mov ecx, eax
mov eax, 0x3fff
cmp eax, edi
mov eax, 0
sbb eax, edx
mov eax, ecx
mov edi, ebx
mov edx, esi
jb 0x45cad2
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
add ecx, eax
mov dword [esp + 0x34], ecx
cmp ecx, 0x80
mov ecx, 1
jb 0x45cb42
mov edi, dword [esp + 0x34]
mov edx, edi
sar edx, 0x1f
mov ecx, 1
mov esi, edx
mov eax, edx
shld eax, edi, 0x19
shr esi, 7
inc ecx
mov dword [esp + 0x48], ecx
xor ebx, ebx
mov ecx, 0x3fff
cmp ecx, edi
mov ecx, dword [esp + 0x48]
sbb ebx, edx
mov edi, eax
mov edx, esi
jb 0x45cb1f
xor eax, eax
cmp dword [esp + 0x3c], ecx
setl al
mov edx, dword [esp + 0x34]
add edx, eax
mov ecx, edx
sar ecx, 0x1f
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x20]
add eax, edx
mov edi, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
adc edi, ecx
mov dword [esp + 0x20], eax
add eax, dword [esp + 0x68]
adc edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x144]
mov ecx, dword [ebx + esi*8 + 0x18]
mov edx, ecx
sar edx, 0x1f
cmp ecx, eax
sbb edx, edi
mov ecx, dword [esp + 0x18]
jge 0x45cbd0
mov ecx, dword [ecx + 0x78]
mov edx, ecx
sar edx, 0x1f
cmp ecx, eax
sbb edx, edi
jl 0x461c4b
mov ecx, dword [esp + 0x140]
mov edi, dword [esp + 0x20]
mov edx, edi
call fcn.00456580
test eax, eax
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x144]
je 0x45cbde
jmp 0x462078
mov eax, dword [ebx + esi*8 + 0x20]
mov dword [ebx + esi*8 + 8], eax
mov edx, esi
mov edi, dword [esp + 0x20]
mov dword [ebx + edx*8 + 0xc], edi
mov word [ebx + edx*8 + 0x10], 0x10
mov eax, dword [esp + 0x68]
or dword [esp + 0x64], eax
mov ecx, dword [esp + 0xc]
je 0x45cc0b
lea edi, [ebx + edx*8]
add edi, 0x10
mov esi, dword [esp + 0x140]
mov dword [esi], eax
mov word [edi], 0x410
mov esi, dword [ebx + edx*8 + 8]
mov edx, dword [esp + 0x34]
cmp edx, 0x7f
jg 0x45cd45
lea eax, [esi + 1]
mov dword [esp + 0x20], eax
mov byte [esi], dl
jmp 0x45cd65
test cl, 8
jne 0x45e87e
test cl, 0x12
je 0x45fbfb
mov ecx, dword [esp + 0x28]
cmp dword [ecx + eax*8 + 8], 0
je 0x45fbfb
mov ecx, esi
call fcn.00456d20
movzx edi, word [esi + 0x10]
jmp 0x45fbff
mov ecx, edx
xor edx, edx
call fcn.00424d20
mov esi, eax
test eax, eax
je 0x462074
lea eax, [esi + 0x20]
mov dword [esi + 4], eax
mov dword [esi], ebx
movzx eax, word [ebx + 6]
inc eax
mov word [esi + 0x14], ax
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 0xc]
push esi
push dword [eax + 8]
call fcn.00464810
add esp, 8
mov byte [esi + 0x16], 0
mov ecx, dword [edi + 0x24]
lea eax, [edi + 0x1c]
mov edx, esi
push eax
call fcn.00464200
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0043f4f0
mov edx, ebx
mov esi, dword [esp + 0x14]
test edx, edx
jne 0x46232d
mov ecx, dword [edi + 0x1c]
test ecx, ecx
setne byte [edi + 2]
mov byte [edi + 3], 0
mov dword [edi + 0x18], 0
movzx eax, byte [esi]
cmp eax, 0x1c
jne 0x45cceb
test ecx, ecx
jne 0x4578b4
jmp 0x45ccef
test ecx, ecx
je 0x45cd04
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jmp 0x460e07
cmp eax, 0x19
je 0x45f16e
cmp eax, 0x1a
jne 0x4578b4
movzx ecx, word [esp + 0x84]
test ecx, ecx
je 0x4578b4
mov eax, dword [esp + 0x74]
shl ecx, 3
lea ecx, [ecx + ecx*4]
xor edx, edx
test byte [eax + edx + 0x10], 1
jne 0x45ccef
add edx, 0x28
cmp ecx, edx
jne 0x45cd32
jmp 0x4578b4
mov ecx, esi
mov edx, dword [esp + 0x34]
push dword [esp + 0x48]
call fcn.00463120
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
add esp, 4
add eax, esi
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
add esi, edx
jmp 0x45cd8e
add esi, ebx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
lea eax, [ebx + 0x28]
cmp ebx, dword [esp + 0x2c]
mov ebx, eax
je case.0x4578ee.89
mov edx, dword [ebx + 0x1c]
cmp edx, 7
ja 0x45ce10
mov eax, dword [esp + 0x20]
mov byte [eax], dl
inc eax
mov dword [esp + 0x20], eax
test edx, edx
je 0x45cd7f
mov ecx, dword [ebx]
mov dword [esp + 0x24], ebx
mov edi, dword [ebx + 4]
movzx ebx, byte [edx + 0x52c7a9]
lea eax, [ebx - 1]
mov dword [esp + 0x34], eax
mov eax, ebx
mov edx, ebx
and eax, 3
je 0x45cddf
nop word cs:[eax + eax]
mov byte [esi + edx - 1], cl
dec edx
shrd ecx, edi, 8
shr edi, 8
dec eax
jne 0x45cdd0
cmp dword [esp + 0x34], 3
jb 0x45cd71
nop word cs:[eax + eax]
bswap ecx
mov dword [esi + edx - 4], ecx
mov ecx, edi
mov edi, 0
add edx, 0xfffffffc
jne 0x45cdf0
jmp 0x45cd71
cmp edx, 0x7f
ja 0x45ce4d
mov eax, dword [esp + 0x20]
mov byte [eax], dl
inc eax
mov dword [esp + 0x20], eax
cmp edx, 0xe
jb 0x45cd7f
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x45cd7f
push eax
push dword [ebx + 8]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [esp + 0x18]
add esp, 0xc
add esi, dword [ebx + 0xc]
jmp 0x45cd7f
cmp edx, 0x3fff
ja 0x45ce6f
mov eax, edx
shr eax, 7
or al, 0x80
mov ecx, dword [esp + 0x20]
mov byte [ecx], al
and dl, 0x7f
mov byte [ecx + 1], dl
mov eax, 2
jmp 0x45ce81
mov ecx, dword [esp + 0x20]
push 0
call fcn.00468d10
mov ecx, dword [esp + 0x24]
add esp, 4
add ecx, eax
mov dword [esp + 0x20], ecx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x45ce9e
push eax
push dword [ebx + 8]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add esi, dword [ebx + 0xc]
mov ecx, dword [esp + 0xc]
jmp 0x45cd7f
lea eax, [esi + eax*8]
add eax, 0x10
mov word [eax], 1
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [esi + eax*8 + 0x14]
movzx eax, byte [eax + 0x54]
mov byte [esp + 0x88], al
lea eax, [esp + 0x70]
push eax
call dword [ebx + 0x18]
add esp, 4
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov edi, dword [esp + 0x10]
test edx, edx
mov esi, dword [esp + 0xc]
movzx eax, byte [esp + 0x54]
jne 0x461d3a
test byte [ecx + 0x10], 2
jne 0x45cf21
mov byte [ecx + 0x12], al
mov dword [esp + 0x1c], 0
mov ecx, esi
jmp case.0x4578ee.89
mov dword [esp + 0x1c], 0
cmp byte [ecx + 0x12], al
jne 0x45cf35
mov ecx, esi
jmp case.0x4578ee.89
movzx edx, al
call fcn.00457070
jmp 0x4578c0
movq xmm0, qword [ecx]
mov esi, ecx
call fcn.00456cb0
mov ecx, esi
mov esi, eax
jmp 0x45e551
lea eax, [ecx + eax*8]
add eax, 0x10
mov word [eax], 1
jmp 0x45e774
test al, 0x12
je 0x45fa5a
mov ecx, dword [esp + 0x20]
call fcn.004565a0
mov ecx, dword [esp + 0xc]
movapd xmm2, xmm0
jmp 0x45fa5e
mov eax, edx
lea edx, [ebx + 0x1c]
add esi, 0xc
cmp edx, esi
jae 0x45f273
lea edx, [ebx + eax*4]
add edx, 0x1c
cmp ecx, edx
jae 0x45f273
mov edx, eax
mov eax, dword [esp + 0x28]
jmp 0x45f352
mov esi, dword [eax + edi*8 + 8]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
inc dword [ebx + 0xd4]
mov eax, dword [ebx + 0xcc]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
movsd xmm0, qword [eax + 0x28]
movsd qword [esi + 0x20], xmm0
movsd xmm0, qword [ebx + 0x28]
movsd qword [esi + 0x48], xmm0
mov eax, dword [ebx]
movq xmm0, qword [eax + 0x68]
movq qword [esi + 0x50], xmm0
mov eax, dword [ebx + 0xe0]
mov dword [esi + 0x28], eax
mov dword [ebx + 0xe0], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0xcc], esi
lea eax, [esi + 0x58]
mov dword [esp + 0x28], eax
mov dword [ebx + 0x58], eax
mov eax, dword [esi + 0x3c]
mov dword [ebx + 0x14], eax
movzx ecx, word [esi + 0x40]
mov dword [ebx + 0x18], ecx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8 + 0x58]
mov dword [ebx + 0x60], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
lea eax, [eax + ecx*4]
mov dword [esi + 0x18], eax
mov ecx, dword [edx + 4]
mov esi, edx
lea edx, [ecx + 7]
add ecx, 0xe
test edx, edx
cmovns ecx, edx
sar ecx, 3
push ecx
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov ecx, dword [esi]
mov dword [ebx + 0x68], ecx
mov eax, dword [esi + 4]
mov dword [ebx + 0x6c], eax
mov dword [esp + 0x5c], ecx
lea eax, [ecx - 0x14]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0xc]
jmp 0x45f9fb
and edx, 0x2e
cmp edx, 2
mov ebx, dword [esp + 0x48]
jne 0x45d09d
mov ecx, dword [esp + 0x24]
xor edx, edx
call fcn.00433510
mov eax, dword [esp + 0x44]
movzx ebx, word [eax]
mov eax, ebx
and eax, 0x2e
cmp ax, 2
jne 0x45dea1
mov ecx, dword [esp + 0x64]
xor edx, edx
call fcn.00433510
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x24]
jmp 0x45dea9
mov esi, dword [esp + 0x18]
cmp dword [esi + 0xc0], 0
jg 0x4622cf
test edi, edi
je 0x45fe94
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
and esi, 0x3fffffff
jmp 0x45fe96
mov cl, 1
xor edx, edx
mov dword [esp + 0x1c], 0
cmp dword [esp + 0x1c], 0
mov eax, 5
cmove eax, edx
test cl, cl
cmove eax, edx
cmp eax, 5
je 0x45d12c
test eax, eax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
jne 0x46202f
mov edx, dword [esp + 0x70]
jmp 0x45d13d
mov dword [esp + 0x70], 1
mov edx, 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea esi, [ecx + eax*8]
test byte [ecx + eax*8 + 0x11], 0x90
je 0x45e142
mov eax, edx
sar eax, 0x1f
mov ecx, esi
push eax
call fcn.00457030
add esp, 4
jmp 0x45e155
mov word [ecx + 0x10], 4
mov eax, dword [esi + 4]
mov esi, dword [esi + 0xc]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
shl eax, 4
mov ecx, dword [ecx + eax + 4]
mov eax, dword [ecx + 4]
mov ebx, dword [eax]
movzx edx, byte [ebx + 5]
cmp esi, 0xffffffff
cmove esi, edx
cmp byte [ebx + 0x11], 2
ja 0x45d1ac
mov eax, dword [ebx + 0x44]
cmp dword [eax], 0
je 0x45d1ae
mov eax, dword [ebx + 0x54]
cmp dword [ebx + 0x50], 1
sbb eax, 0
jl 0x45d1ae
mov esi, edx
cmp byte [ebx + 0xf], 0
je 0x45df32
mov eax, 0x52bb36
cmp esi, 5
je 0x45df49
jmp 0x46019f
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
jmp 0x460e0a
mov eax, dword [ecx + 4]
mov esi, dword [esp + 0x14]
cmp eax, dword [esi + 4]
jne 0x45d372
mov ecx, dword [esp + 0xc]
jmp 0x460e07
test al, 1
jne 0x45f5da
test al, 8
jne 0x4602dd
test al, 0x12
je 0x460de7
call fcn.004565a0
jmp 0x460deb
test al, 1
jne 0x45f5e2
test al, 8
jne 0x4602e6
test al, 0x12
je 0x45d1e7
call fcn.004565a0
jmp 0x4602ea
mov dword [esp + 0x1c], ebx
mov edx, dword [edi + 0x24]
mov eax, dword [edx + 4]
mov dword [edi + 0x24], eax
mov dword [edx + 4], 0
cmp dword [edi + 0x28], 0
mov esi, dword [esp + 0x18]
jne 0x45d25e
mov ebx, dword [edx + 4]
mov ecx, esi
call fcn.0043f4f0
mov edx, ebx
test ebx, ebx
jne 0x45d24e
cmp dword [edi + 0x24], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
jne 0x45d2d3
mov dword [ebx + 0x18], 0
jmp 0x45f9ef
movzx eax, word [ecx + 0x46]
test ax, ax
je 0x4593a1
mov edx, dword [ecx + 0x74]
cmp byte [edx + 8], 0
je 0x4593a1
dec eax
mov word [ecx + 0x46], ax
mov ecx, dword [esp + 0xc]
jmp 0x45d2d3
mov esi, edi
mov eax, dword [ecx + 0x74]
movzx edx, word [ecx + 0x46]
lea edi, [edx + 1]
mov word [ecx + 0x46], di
cmp di, word [eax + 0x18]
jae 0x45f5eb
cmp byte [eax + 8], 0
mov edi, esi
je 0x4609cc
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov dword [ebx + 0x18], 0
jmp 0x45f9ba
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
mov ecx, dword [esp + 0x18]
jne 0x4578c0
mov eax, dword [ecx + 0x208]
or eax, dword [ecx + 0x20c]
mov ecx, dword [esp + 0xc]
jne case.0x4578ee.89
jmp 0x460e07
xor ecx, ecx
xor esi, esi
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov edx, ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + eax*8 + 8]
mov eax, dword [ecx + eax*8 + 0xc]
mov ecx, eax
sar ecx, 0x1f
push ecx
push eax
push esi
push edx
call fcn.00513110
add esp, 0x10
shld edx, eax, 0x1d
movzx ecx, byte [edi + edx]
and eax, 7
bt ecx, eax
jae 0x45df7a
mov eax, dword [esp + 0x30]
inc dword [eax + 0xbc]
jmp 0x4578bc
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esi], eax
sar eax, 0x1f
mov dword [esi + 4], eax
jmp 0x4578c0
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
movq xmm0, qword [eax]
movq qword [esi], xmm0
jmp 0x4578c0
lea eax, [edi + ebx*8]
add eax, 0x10
mov word [eax], 4
mov eax, esi
mov esi, dword [esi + 4]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x45df8d
mov eax, esi
sar eax, 0x1f
mov ecx, dword [esp + 0x20]
push 0
push 0
push eax
push esi
call fcn.00430c10
add esp, 0x10
jmp 0x45dfa9
mov dword [esp + 0x10], edi
mov edi, dword [edx + 0x10]
mov dword [ecx + 0x10], edi
movdqu xmm0, xmmword [edx]
movdqu xmmword [ecx], xmm0
test byte [ebx + esi*8 + 0x11], 0x20
jne 0x4578bc
lea eax, [ebx + eax*8]
add eax, 0x10
mov ecx, 0xffff8fff
and ecx, dword [eax]
or ecx, 0x4000
mov word [eax], cx
jmp 0x4578bc
test cl, 8
jne 0x45f5fd
test cl, 0x12
je 0x460072
mov ecx, dword [esp + 0x28]
cmp dword [ecx + eax*8 + 8], 0
je 0x460072
mov ecx, esi
call fcn.00456d20
movzx edi, word [esi + 0x10]
jmp 0x460076
test al, 1
jne 0x45f60b
test al, 8
jne 0x460307
test al, 0x12
je 0x460e20
call fcn.004565a0
jmp 0x460e24
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x18]
push eax
call fcn.00463270
add esp, 4
mov dword [esp + 0x1c], 0
test eax, eax
jne 0x461c2a
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45e0d7
mov ecx, esi
call fcn.004686a0
jmp 0x45e0e2
mov word [esi + 0x10], 1
lea eax, [edi + edi*4]
mov ecx, dword [esp + 0x28]
test byte [ecx + eax*8 + 0x10], 1
jne 0x46009d
lea ecx, [ecx + eax*8]
mov word [esi + 0x10], 4
call fcn.00430630
not eax
not edx
mov dword [esi + 4], edx
mov dword [esi], eax
jmp 0x46009d
mov word [ecx + 0x10], 4
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x45dfb7
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
and eax, 0x3fffffff
jmp 0x45dfb9
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov edi, ecx
add edi, 1
mov ebx, edx
adc ebx, 0
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], ebx
mov dword [esi], ecx
mov dword [esi + 4], edx
jmp 0x4578bc
lea eax, [eax + edx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 4]
mov edx, esi
mov esi, dword [eax + ecx*4]
test byte [esi + 5], 2
mov dword [esp + 0x10], edi
jne 0x4607df
mov ecx, dword [esi + 0x24]
lea edx, [esp + 0xe0]
call fcn.00463e40
test eax, eax
jne 0x462285
cmp dword [esp + 0xe0], 0
je 0x45f7c5
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
mov dword [esp + 0x1c], 0
jmp 0x4607db
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [eax + 0x24]
mov dword [esp + 0x70], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 0x54]
mov ecx, esi
call fcn.004514d0
mov dword [esp + 0x34], esi
mov edx, dword [esi + 0x2c]
cmp edx, 0x7f
ja 0x45d60f
mov byte [ebx], dl
inc ebx
jmp 0x45e78f
cmp edx, 0x3fff
ja 0x45e781
mov eax, edx
shr eax, 7
or al, 0x80
mov byte [ebx], al
and dl, 0x7f
mov byte [ebx + 1], dl
mov eax, 2
jmp 0x45e78d
mov eax, dword [eax + 0x24]
lea edx, [eax + 8]
mov ecx, dword [esi + 8]
lea ebx, [ecx + ecx*4]
mov esi, dword [eax]
mov edi, dword [esp + 0x28]
cmp dword [edi + ebx*8 + 0x18], esi
jge 0x45d676
mov dword [esp + 0x1c], edx
lea ecx, [edi + ebx*8]
mov edx, esi
push 0
call fcn.00455dd0
add esp, 4
test eax, eax
jne 0x46211b
movzx ecx, word [edi + ebx*8 + 0x10]
mov eax, dword [edi + ebx*8 + 8]
mov edx, dword [esp + 0x1c]
jmp 0x45d680
mov eax, dword [edi + ebx*8 + 0x20]
mov dword [edi + ebx*8 + 8], eax
xor ecx, ecx
mov dword [edi + ebx*8 + 0xc], esi
and ecx, 0xfffff240
or ecx, 0x10
mov word [edi + ebx*8 + 0x10], cx
push esi
push edx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x18], 0
jmp 0x4578b4
mov word [ebx + 0x10], 4
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x24]
mov ecx, edi
call fcn.004514d0
mov eax, dword [edi + 0x2c]
cmp eax, dword [esi + 0x78]
ja 0x461c4b
mov dword [esp + 0x24], ebx
movzx ecx, word [edi + 0x30]
mov edx, dword [edi + 0x28]
mov ebx, dword [edi + 0x74]
mov ebx, dword [ebx + 0x3c]
sub ebx, edx
xor esi, esi
test ebx, ebx
cmovg esi, ebx
cmp ebx, ecx
cmovge esi, ecx
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [ecx + ebx*8 + 8], edx
cmp esi, eax
jae 0x45d737
mov ecx, edi
xor edx, edx
mov edi, dword [esp + 0x24]
push edi
push eax
call fcn.00463050
add esp, 8
test eax, eax
mov esi, dword [esp + 0x18]
je 0x45d74b
jmp 0x462430
mov edx, ebx
mov edi, dword [esp + 0x24]
mov word [edi + 0x10], 0x4010
mov dword [ecx + ebx*8 + 0xc], eax
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xc], 0
jne 0x4578bc
test byte [edi + 0x11], 0x40
je 0x4578bc
mov ecx, edi
call fcn.004308e0
test eax, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
je case.0x4578ee.89
jmp 0x462080
mov word [ebx + 0x10], 4
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esi + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x45e013
mov word [ebx + 0x10], 1
jmp 0x4578c0
mov word [ebx + 0x10], 4
mov esi, dword [esp + 0x18]
mov word [ebx + 0x10], 1
mov eax, dword [esi + 0xc8]
inc eax
cmp dword [esi + 0xbc], eax
jg 0x461fd0
mov dword [esp + 0x2c], ebx
mov edx, dword [esp + 0x14]
mov ebx, dword [edx + 0xc]
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, ebx
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
mov esi, dword [edx + 4]
cmp byte [ecx + 9], 0
mov dword [esp + 0x1c], ecx
je 0x45d80a
inc dword [ecx + 0xc]
cmp byte [ecx + 0xa], 0
jne 0x45d80a
call fcn.0044f0a0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov edi, dword [ecx + 4]
cmp dword [edi + 0x30], esi
mov dword [esp + 0x34], ebx
jae 0x45d853
push 0x52b213
push 0x12bc3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
mov ecx, dword [esp + 0x30]
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
jmp 0x45d89d
mov edx, esi
push 0
call fcn.004637c0
add esp, 4
mov dword [esp + 0x20], 0
test eax, eax
jne 0x45d88f
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [edi]
lea ecx, [esp + 0x70]
push 0
push ecx
push esi
push eax
call dword [eax + 0xdc]
add esp, 0x10
test eax, eax
je 0x460b55
mov edx, eax
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 9], 0
je 0x45d8b9
dec dword [ecx + 0xc]
jne 0x45d8b9
mov ebx, esi
mov esi, edx
call fcn.0044f130
mov edx, esi
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
mov word [edi + 0x10], 4
mov ecx, dword [esp + 0x20]
mov eax, ecx
sar eax, 0x1f
mov dword [edi + 4], eax
mov dword [edi], ecx
test edx, edx
jne 0x462020
mov edi, ecx
mov dword [esp + 0x1c], 0
test ecx, ecx
je 0x45e275
mov ecx, esi
mov ebx, dword [esp + 0x34]
mov edx, ebx
mov eax, dword [esp + 0x14]
push dword [eax + 4]
push edi
call fcn.00466520
mov ecx, dword [esp + 0x14]
add esp, 8
inc bl
mov eax, ebx
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
shl ecx, 4
mov ecx, dword [eax + ecx + 4]
lea edx, [esp + 0x70]
push dword [ebx + 0xc]
call fcn.00463880
add esp, 4
test eax, eax
jne 0x461c2a
mov eax, dword [esp + 0x70]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x45e774
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 0x10]
mov ebx, ecx
mov ecx, esi
shl ecx, 4
push dword [eax + ecx + 0xc]
call fcn.00466590
add esp, 4
and byte [edi + 0x18], 0xef
movzx eax, word [ebx + 2]
mov ecx, edi
mov edx, esi
mov esi, edi
mov edi, dword [esp + 0x10]
push eax
push dword [esp + 0xdc]
call fcn.00466650
add esp, 8
or byte [esi + 0x18], 1
mov ebx, eax
mov eax, dword [esp + 0x30]
and byte [eax + 0x96], 0xfc
test ebx, ebx
mov ecx, dword [esp + 0xc]
je 0x45e311
jmp 0x461ff8
mov word [esi + 0x10], 4
mov ecx, dword [esp + 0xc]
mov word [esi + 0x10], 8
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
movq xmm0, qword [eax]
movq qword [esi], xmm0
jmp case.0x4578ee.89
cmp dword [esi + 8], 1
setne al
mov dword [esp + 0x64], eax
inc edi
cmp byte [ebx + 9], 0
mov esi, dword [esp + 0x18]
je 0x45da14
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x45da14
mov ecx, ebx
call fcn.0044f0a0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x124], esi
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xe0], ecx
mov eax, dword [ecx]
mov dword [esp + 0xe4], eax
mov esi, dword [ecx + 0x30]
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], edi
mov dword [esp + 0xe8], 0
mov dword [esp + 0x120], 0
pxor xmm0, xmm0
lea eax, [esp + 0xf4]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0
lea eax, [esp + 0x70]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], 0
mov dword [esp + 0x110], 0x64
mov dword [esp + 0x114], 0x3b9aca00
mov dword [esp + 0x118], 0
mov word [esp + 0x11c], 0x100
test esi, esi
je 0x45eab9
shr esi, 3
inc esi
mov ecx, esi
xor edx, edx
call fcn.00424d20
test eax, eax
je 0x45eaa3
mov edi, eax
push esi
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
mov dword [esp + 0xe8], edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0x24]
call fcn.0044dc90
mov dword [esp + 0x120], eax
test eax, eax
je 0x45eaae
mov eax, dword [0x53c870]
xor edx, edx
div dword [ebx + 0x24]
inc eax
cmp eax, dword [esp + 0xec]
ja 0x45db2b
mov ecx, eax
and cl, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0xe8]
shr eax, 3
or byte [ecx + eax], dl
cmp byte [esp + 0x64], 0
mov edi, dword [esp + 0x24]
jne 0x45db72
mov dword [esp + 0xfc], str.Main_freelist:
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
bswap esi
bswap eax
lea ecx, [esp + 0xe0]
mov edx, 1
push eax
push esi
call fcn.00472190
add esp, 8
mov dword [esp + 0xfc], 0
cmp dword [esp + 0x34], 0
mov esi, dword [esp + 0x2c]
je 0x46195e
cmp byte [ebx + 0x11], 0
je 0x460c95
xor ecx, ecx
test esi, esi
jle 0x461938
mov eax, 0
cmp esi, 8
jb 0x46192a
mov eax, esi
and eax, 0xfffffff8
pxor xmm1, xmm1
xor ecx, ecx
pxor xmm2, xmm2
movdqu xmm4, xmmword [edi + ecx*4 + 4]
movdqu xmm3, xmmword [edi + ecx*4 + 0x14]
movdqa xmm0, xmmword [0x527290]
movdqa xmm5, xmm1
pxor xmm1, xmm0
movdqa xmm6, xmm4
pxor xmm6, xmm0
pcmpgtd xmm1, xmm6
pand xmm5, xmm1
pandn xmm1, xmm4
por xmm1, xmm5
movdqa xmm4, xmm2
pxor xmm2, xmm0
movdqa xmm5, xmm3
pxor xmm5, xmm0
pcmpgtd xmm2, xmm5
pand xmm4, xmm2
pandn xmm2, xmm3
por xmm2, xmm4
add ecx, 8
cmp eax, ecx
jne 0x45dbb2
movdqa xmm4, xmm2
pxor xmm4, xmm0
movdqa xmm3, xmm1
pxor xmm3, xmm0
pcmpgtd xmm3, xmm4
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
pshufd xmm2, xmm3, 0xee
movdqa xmm1, xmm3
pxor xmm1, xmm0
movdqa xmm4, xmm2
pxor xmm4, xmm0
pcmpgtd xmm1, xmm4
pand xmm3, xmm1
pandn xmm1, xmm2
por xmm1, xmm3
pshufd xmm2, xmm1, 0x55
movdqa xmm3, xmm1
pxor xmm3, xmm0
pxor xmm0, xmm2
pcmpgtd xmm3, xmm0
pand xmm1, xmm3
pandn xmm3, xmm2
por xmm3, xmm1
movd ecx, xmm3
jmp 0x461934
mov ebx, edi
mov word [esi + 0x10], 4
mov ax, 4
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xcc]
mov edx, dword [ecx + 8]
mov edi, dword [ecx + 0x30]
lea edi, [edi + edi*4]
mov edx, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x14]
add edx, dword [edi + 4]
mov ecx, dword [ecx + 0x10]
lea edi, [edx + edx*4]
lea edx, [ecx + edi*8]
test eax, 0x9000
je 0x45e029
mov ecx, esi
push 0x4000
call fcn.004686c0
add esp, 4
jmp 0x46009d
test dl, 8
jne 0x45f617
test dl, 0x12
je 0x4600a4
cmp dword [eax + ecx*8 + 8], 0
je 0x4600a4
mov ecx, esi
call fcn.00456d20
movzx edi, word [esi + 0x10]
jmp 0x4600a8
lea eax, [eax + edx*8]
add eax, 0x10
mov word [eax], 4
lea eax, [ebx + ebx*4]
mov esi, dword [esp + 0x28]
lea eax, [esi + eax*8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp ecx, 1
mov edx, eax
sbb edx, 0
jl 0x45e058
lea edx, [edi + edi*4]
mov edi, dword [esi + edx*8 + 4]
xor ebx, ebx
test edi, edi
cmovle edi, ebx
cmovns ebx, dword [esi + edx*8]
mov esi, 0x7fffffff
sub esi, eax
mov edx, ebx
add edx, ecx
not ecx
adc eax, edi
cmp ecx, ebx
sbb esi, edi
mov ecx, 0xffffffff
cmovb eax, ecx
cmovb edx, ecx
jmp 0x45e062
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x4578c0
movzx ecx, byte [ecx + 8]
inc cl
and cl, 3
movzx edx, byte [eax + 0x96]
and dl, 0xfc
or dl, cl
mov byte [eax + 0x96], dl
mov eax, dword [eax + 8]
test eax, eax
jne 0x45dd70
jmp 0x4578c0
mov eax, dword [edi + 0x24]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
pxor xmm0, xmm0
lea eax, [esp + 0x74]
movdqu xmmword [eax + 0xc], xmm0
movdqu xmmword [eax], xmm0
mov dword [esp + 0x70], ecx
movzx eax, byte [esp + 0x54]
mov byte [esp + 0x88], al
test byte [esi + 2], 1
lea esi, [edx + ebx*8 + 0x10]
movzx eax, word [edx + ebx*8 + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
jne 0x45f625
and eax, 0xfffff240
or eax, 1
mov word [esi], ax
mov edx, dword [esp + 0x24]
jmp 0x4609f4
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
shl ecx, 4
mov eax, dword [eax + ecx + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x4578c0
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov ebx, dword [edx + 0xc]
shl ecx, 4
mov edi, dword [eax + ecx + 4]
test ebx, ebx
je 0x45e078
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x30]
cmp eax, ebx
cmova ebx, eax
jmp 0x45e07a
xor ecx, ecx
xor esi, esi
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov edx, ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + eax*8 + 8]
mov eax, dword [ecx + eax*8 + 0xc]
mov ecx, eax
sar ecx, 0x1f
push ecx
push eax
push esi
push edx
call fcn.00513110
add esp, 0x10
shld edx, eax, 0x1d
mov ecx, eax
and cl, 7
mov al, 1
shl al, cl
or byte [edi + edx], al
jmp 0x4578bc
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
push dword [esi + 0x10]
call fcn.00462c40
add esp, 4
test eax, eax
js 0x45decf
movzx ecx, byte [esi]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x44]
je 0x45e280
mov dword [esp + 0x6c], eax
jmp 0x45df10
mov dword [esp + 0x6c], eax
movzx eax, byte [esi]
mov dword [esp + 0x20], eax
mov ecx, 0x52a91f
mov edx, dword [esp + 0x44]
jmp 0x45f64f
movq xmm0, qword [ecx]
call fcn.00456cb0
mov esi, eax
jmp 0x45ef0b
test al, 1
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
jne 0x45f642
mov dword [esp + 0x6c], 1
mov ecx, 0x52a92b
jmp 0x45f64f
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
mov dword [esi], edi
sar edi, 0x1f
mov dword [esi + 4], edi
jmp 0x4578bc
cmp esi, 5
jne 0x46019f
mov eax, dword [ebx + 0xb8]
test eax, eax
je 0x4601a3
mov dword [esp + 0x24], ecx
mov esi, edx
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, 0x3fffffff
je 0x45f7fc
cmp byte [ebx + 0xd], 0
mov eax, dword [esp + 0x1c]
mov edx, esi
je 0x46018c
mov esi, edx
jmp 0x460bec
mov eax, dword [esp + 0x30]
inc dword [eax + 0xc0]
mov edi, dword [esp + 0x10]
jmp 0x45f134
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.00431380
mov ecx, dword [esp + 0x20]
call fcn.00430490
test eax, eax
jne 0x462074
movzx eax, byte [esp + 0x54]
mov byte [edi + ebx*8 + 0x12], al
jmp 0x4578bc
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], eax
cmp byte [esp + 0x54], 1
je 0x45e8f2
sub esp, 0x10
movdqa xmm0, xmmword [0x5272a0]
movdqu xmmword [esp], xmm0
mov ecx, ebx
mov edx, edi
call fcn.00430c10
add esp, 0x10
test eax, eax
jne 0x461c4b
mov edi, ebx
movzx eax, word [ebx + 0x10]
mov ebx, dword [esp + 0x20]
lea ecx, [ebx + esi*8]
add ecx, 0x12
test al, 2
jne 0x45e88c
movzx edx, byte [esp + 0x54]
mov byte [ecx], dl
jmp 0x45e8ad
cmp byte [esi + 3], 0
mov ecx, dword [esp + 0xc]
je 0x45fe1f
add esi, 0x38
jmp 0x460ed5
mov eax, dword [edx + 0x10]
mov dword [esi + 0x10], eax
movdqu xmm0, xmmword [edx]
movdqu xmmword [esi], xmm0
test byte [ecx + edi*8 + 0x11], 0x20
jne 0x46009d
mov eax, 0xffff8fff
and eax, dword [esi + 0x10]
or eax, 0x4000
mov word [esi + 0x10], ax
jmp 0x46009d
mov edx, 0xffffffff
mov eax, 0xffffffff
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov dword [esi], edx
mov dword [esi + 4], eax
jmp case.0x4578ee.89
xor ebx, ebx
mov ecx, dword [esp + 0xc]
cmp byte [edi + 9], 0
je 0x45e098
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x45e098
mov ecx, edi
call fcn.0044f0a0
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov eax, dword [eax]
test ebx, ebx
je 0x45e0a9
mov dword [eax + 0xa0], ebx
jmp 0x45e0af
mov ebx, dword [eax + 0xa0]
cmp byte [edi + 9], 0
je 0x45e0c5
dec dword [edi + 0xc]
jne 0x45e0c5
mov ecx, edi
call fcn.0044f130
mov ecx, dword [esp + 0xc]
mov dword [esi], ebx
mov dword [esi + 4], 0
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
movq xmm0, qword [esp + 0x70]
movq qword [esi], xmm0
mov ecx, dword [esp + 0xc]
jmp 0x45f9fb
movzx edx, byte [ecx + 2]
test dl, dl
mov esi, dword [esp + 0x20]
js 0x45fe71
and eax, 0x7f
shl eax, 7
or eax, edx
cmp eax, 7
mov dword [esp + 0x10], edi
je 0x45e127
lea ecx, [eax - 1]
cmp ecx, 8
ja 0x45e127
and byte [esi + 0x3c], 1
jmp 0x45e7dd
cmp eax, 0xb
jl 0x45e7d9
and eax, 1
je 0x45e7d9
and byte [esi + 0x3c], 2
jmp 0x45e7dd
lea eax, [ecx + eax*8]
add eax, 0x10
mov dword [esi], edx
sar edx, 0x1f
mov dword [esi + 4], edx
mov word [eax], 4
lea edi, [esi + 0x28]
mov edx, dword [esp + 0x74]
test byte [esi + 0x39], 0x90
je 0x45e174
mov eax, edx
sar eax, 0x1f
mov ecx, edi
push eax
call fcn.00457030
add esp, 4
jmp 0x45e182
mov dword [edi], edx
sar edx, 0x1f
mov dword [edi + 4], edx
mov word [edi + 0x10], 4
lea ecx, [edi + 0x28]
mov edx, dword [esp + 0x78]
test byte [edi + 0x39], 0x90
je 0x45e1a2
mov eax, edx
sar eax, 0x1f
push eax
call fcn.00457030
add esp, 4
jmp 0x4578b4
mov dword [ecx], edx
sar edx, 0x1f
mov dword [ecx + 4], edx
mov word [ecx + 0x10], 4
jmp 0x4578b4
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
jmp 0x45e598
mov eax, ecx
mov ecx, esi
mov edx, edi
push eax
push ebx
push 4
call fcn.00469840
add esp, 0xc
mov dword [esp + 0x1c], eax
jmp 0x4578bc
mov ecx, esi
mov edx, 4
call fcn.00465580
mov ecx, dword [esp + 0xc]
test eax, eax
mov esi, dword [esp + 0x18]
jne 0x46230d
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [esp + 0x1c], 0
mov edi, ebx
jmp case.0x4578ee.89
mov eax, dword [esp + 0x58]
mov eax, dword [eax]
mov ecx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx*8]
test byte [eax + ecx*8 + 0x11], 0x90
je 0x45ff94
mov ecx, esi
call fcn.004686a0
jmp 0x45ff9f
mov word [edi + 0x10], 4
mov word [edi + 0x10], 1
mov ecx, edi
call fcn.00455c20
mov dword [edi], str.ValueList
mov eax, dword [esp + 0x20]
mov dword [eax + ebx*8 + 8], esi
mov word [edi + 0x10], 0x1a01
mov byte [eax + ebx*8 + 0x13], 0x70
mov dword [eax + ebx*8 + 0x24], fcn.00424f10
jmp 0x4578bc
mov edi, dword [esp + 0x10]
mov ecx, ebx
jmp case.0x4578ee.89
mov dword [esp + 0x6c], 0
mov ecx, 0x52a925
jmp 0x45f64f
xor esi, esi
lea ecx, [ebx + 0x40]
mov edx, esi
call fcn.0046f4e0
mov dword [ebx + 0x14], esi
test eax, eax
jne 0x461c2a
mov eax, dword [esp + 0x154]
mov byte [eax + 2], 0
jmp 0x45e774
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx + 0xc]
mov ecx, dword [esi + edi + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [ebx + 4], 1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jne 0x45e305
mov eax, dword [esi + 4]
test eax, eax
je 0x45e2fa
nop dword [eax]
movzx ecx, byte [eax + 0x96]
and cl, 0xfc
or cl, 1
mov byte [eax + 0x96], cl
mov eax, dword [eax + 8]
test eax, eax
jne 0x45e2e0
mov eax, dword [esp + 0x30]
and byte [eax + 0x96], 0xfc
test edx, edx
mov ecx, dword [esp + 0xc]
jne 0x46244a
mov dword [esp + 0x1c], 0
jmp case.0x4578ee.89
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x10]
test byte [ecx + esi], 2
jne 0x45f807
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jmp 0x45f827
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], 0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x30]
push 0
call fcn.004637c0
add esp, 4
test eax, eax
je 0x45f07f
jmp 0x46232b
lea ecx, [ebx + 1]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
lea edi, [eax - 2]
mov ecx, eax
mov eax, edi
xor edx, edx
div dword [esp + 0x20]
sub edi, edx
mov eax, dword [0x53c870]
xor edx, edx
div dword [esi + 0x24]
lea esi, [edi + 1]
xor edx, edx
mov dword [esp + 0x1c], eax
cmp esi, eax
sete dl
add edx, edi
add edx, 2
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
bswap esi
mov eax, ebx
sub eax, ecx
add eax, esi
add eax, edx
xor edx, edx
div ebx
mov dword [esp + 0x24], esi
add eax, esi
mov edx, ecx
sub edx, eax
mov eax, dword [esp + 0x1c]
lea esi, [eax + 1]
mov dword [esp + 0x34], ecx
cmp esi, ecx
setb al
cmp edx, esi
setb ah
and ah, al
movzx eax, ah
sub edx, eax
nop word cs:[eax + eax]
mov ebx, edx
mov eax, 0
cmp edx, 2
jb 0x45e41f
mov ecx, edi
lea edi, [ebx - 2]
mov eax, edi
xor edx, edx
div dword [esp + 0x20]
sub edi, edx
lea eax, [edi + 1]
xor edx, edx
cmp eax, dword [esp + 0x1c]
sete dl
lea eax, [edx + edi]
add eax, 2
mov edi, ecx
lea edx, [ebx - 1]
cmp ebx, eax
je 0x45e3f0
cmp ebx, esi
je 0x45e3f0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jae 0x45e4f0
cmp eax, ebx
jb 0x45e4f0
test ecx, ecx
mov esi, dword [esp + 0x18]
mov eax, 0x65
je 0x45e517
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45e48a
xor edx, edx
push 0
call fcn.00451280
add esp, 4
mov ecx, eax
test eax, eax
jne 0x45e517
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 8]
test eax, eax
je 0x45e48a
and byte [eax + 1], 0xfb
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x45e47f
mov ecx, dword [esp + 0x48]
mov edx, ebx
push 0
push dword [esp + 0x38]
call fcn.00450ed0
add esp, 8
test eax, eax
jne 0x45e517
mov ebx, dword [esp + 0x48]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x45e4c1
mov edx, dword [eax + 0x1c]
cmp edx, dword [ecx + 0x18]
jae 0x461574
mov edx, ebx
mov ebx, dword [eax + 0x2c]
mov dword [esp + 0x1c], ebx
test ebx, ebx
mov ebx, edx
jne 0x4617d5
mov edx, dword [eax + 0x9c]
cmp edx, dword [eax + 0xa8]
jbe 0x4617cc
call fcn.004501e0
jmp 0x4617d1
push 0x52b213
push 0x114ab
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov eax, 0xb
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 9], 0
je 0x45e52f
dec dword [ecx + 0xc]
jne 0x45e52f
mov ebx, eax
call fcn.0044f130
mov eax, ebx
cmp eax, 0x65
je 0x45f12c
mov dword [esp + 0x1c], eax
test eax, eax
mov ecx, dword [esp + 0xc]
je case.0x4578ee.89
jmp 0x46227c
xor esi, esi
xor edx, edx
mov eax, dword [esp + 0x24]
mov word [ecx + 0x10], ax
test bl, 0x24
je 0x45e60b
mov dword [esp + 0x1c], edx
mov ecx, dword [edi + 0x24]
lea eax, [esp + 0xe0]
mov ebx, esi
mov edx, esi
push eax
push 0
mov esi, dword [esp + 0x24]
push esi
call fcn.00463ea0
add esp, 0xc
mov dword [edi + 0x3c], esi
mov dword [edi + 0x38], ebx
xor esi, esi
test eax, eax
mov ecx, dword [esp + 0x20]
jne 0x461cae
mov eax, dword [esp + 0xe0]
cmp ecx, 0x16
jb 0x45e5c1
test eax, eax
js 0x45e5b7
jne 0x45e6bc
cmp ecx, 0x17
jne 0x45e6bc
mov ecx, dword [edi + 0x24]
call fcn.004647c0
jmp 0x45e5ef
test eax, eax
jg 0x45e5d4
jne 0x45e74f
cmp ecx, 0x14
jne 0x45e74f
mov ecx, dword [edi + 0x24]
and byte [ecx + 1], 0xf1
mov word [ecx + 0x32], 0
cmp byte [ecx], 0
je 0x45e69d
call fcn.0046aa30
test eax, eax
mov edi, dword [esp + 0x10]
je 0x45e766
mov edx, eax
cmp eax, 0x65
je 0x45f12c
jmp 0x46202f
test bl, 8
jne 0x45e64e
test bl, 1
jne 0x45e645
cmp byte [esp + 0x20], 0x16
jae 0x45e645
mov ecx, dword [edi + 0x24]
lea edx, [esp + 0xe0]
call fcn.00463e40
mov edx, eax
xor eax, eax
test edx, edx
jne 0x46202b
mov ecx, dword [esp + 0xe0]
mov esi, eax
jmp 0x45e75a
mov edi, dword [esp + 0x10]
jmp 0x45f134
movd xmm0, esi
mov dword [esp + 0x1c], edx
movd xmm1, edx
punpckldq xmm0, xmm1
movq qword [esp + 0x1c0], xmm0
fild qword [esp + 0x1c0]
fld qword [ecx]
fxch st(1)
fucomi st(1)
ja 0x45eb1e
fxch st(1)
fucompi st(1)
fstp st(0)
seta al
mov edx, dword [esp + 0x20]
test dl, 1
sete cl
and cl, al
movzx eax, cl
add edx, eax
mov dword [esp + 0x20], edx
jmp 0x45e566
movzx eax, word [ecx + 0x46]
test ax, ax
je 0x45e5ea
mov edx, dword [ecx + 0x74]
cmp byte [edx + 8], 0
je 0x45e5ea
dec eax
mov word [ecx + 0x46], ax
mov edi, dword [esp + 0x10]
jmp 0x45e766
lea eax, [esi + eax*8]
add eax, 0x10
mov word [eax], 1
jmp case.0x4578ee.89
lea eax, [edx + eax*8]
add eax, 0x10
mov dword [ecx + 4], 0
mov dword [ecx], 1
mov word [eax], 4
mov edx, ebx
mov byte [esi + 0x19], 0
mov ecx, dword [esi]
test byte [ecx + 0x11], 0x90
jne 0x45e701
cmp dword [ecx + 0x18], 0
je 0x45e70c
mov ebx, edx
call fcn.00455c20
mov edx, ebx
mov ecx, dword [esi]
mov word [ecx + 0x10], 1
mov dword [esi + 0x14], 0
jmp 0x45fd15
mov ecx, dword [esp + 0x30]
call fcn.00432f40
mov esi, eax
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + 0xd8]
call dword [eax + 0xd4]
add esp, 8
push esi
call fcn.00424f10
mov ecx, dword [esp + 0x10]
add esp, 4
jmp 0x45ff1a
mov eax, dword [edi + 0x24]
xor ecx, ecx
cmp byte [eax], 0
setne cl
test ecx, ecx
mov edi, dword [esp + 0x10]
jne 0x45f12c
lea eax, [esi + esi*4]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], 0
jmp 0x4578c0
mov ecx, ebx
push 0
call fcn.00468d10
add esp, 4
add ebx, eax
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
cmp dword [eax + 0x70], 0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], edi
jne 0x46032b
xor eax, eax
mov ecx, 0x7f
cmp ecx, edx
mov ecx, 0
sbb ecx, ebx
jb 0x45f66b
mov ecx, esi
mov esi, dword [esp + 0x20]
mov byte [esi], dl
mov eax, 1
jmp 0x460323
mov byte [esi + 0x3c], 0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + ecx*8 + 0xc]
mov edi, 1
mov dword [esp + 0x34], eax
cmp eax, 0x80
jb 0x45e833
mov edx, dword [esp + 0x34]
mov eax, edx
sar eax, 0x1f
mov edi, 1
mov ecx, eax
nop dword [eax]
mov esi, eax
shld esi, edx, 0x19
shr ecx, 7
inc edi
mov dword [esp + 0x1c], edi
xor ebx, ebx
mov edi, 0x3fff
cmp edi, edx
mov edi, dword [esp + 0x1c]
sbb ebx, eax
mov edx, esi
mov eax, ecx
jb 0x45e810
mov eax, dword [esp + 0x34]
lea esi, [eax + 8]
add edi, eax
mov dword [esp + 0x1c], edi
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx + 4]
xor eax, eax
test edx, edx
je 0x45e875
cmp dword [ebx + 0x28], 0
mov edi, dword [esp + 0x10]
je 0x45ed6c
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x45ed96
add ecx, esi
cmp ecx, edx
jg 0x45ed81
jmp 0x45ed96
mov edi, dword [esp + 0x10]
jmp 0x45ed96
movq xmm0, qword [esi]
call fcn.00456cb0
jmp 0x45fbff
movzx edx, byte [esp + 0x54]
cmp byte [ecx], dl
je 0x45e8ad
movzx edx, byte [esp + 0x54]
mov ecx, edi
call fcn.00457070
test eax, eax
jne 0x462074
movzx eax, word [edi + 0x10]
mov dword [ebx + esi*8 + 0x18], 0
or eax, 0x2000
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x14]
cmp byte [edi + 1], 0xfa
jne 0x45e8d8
mov edx, dword [edi + 0x10]
test edx, edx
je 0x45e8d8
mov ecx, dword [esp + 0x18]
call fcn.0043f4f0
mov byte [edi + 1], 0xfa
mov eax, dword [ebx + esi*8 + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + esi*8 + 0xc]
mov dword [edi + 4], eax
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 0x78]
jg 0x461c4b
mov eax, dword [esp + 0x14]
mov byte [eax], 0x49
mov edi, dword [esp + 0x10]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ebx, [eax + eax*4]
lea esi, [edi + ebx*8]
add esi, 0x10
test byte [edi + ebx*8 + 0x11], 0x90
je 0x45e935
lea ecx, [edi + ebx*8]
call fcn.004686a0
jmp 0x45e93a
mov word [esi], 4
mov word [esi], 0x2202
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [edi + ebx*8 + 8], eax
mov eax, dword [ecx + 4]
mov dword [edi + ebx*8 + 0xc], eax
movzx eax, byte [esp + 0x54]
mov byte [edi + ebx*8 + 0x12], al
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4578bc
lea eax, [eax + eax*4]
movzx ecx, word [ecx + 2]
mov edx, dword [esp + 0x28]
xor ecx, dword [edx + eax*8]
or ecx, dword [edx + eax*8 + 4]
mov edi, dword [esp + 0x10]
jne 0x4578c0
mov word [esi], 0x2210
jmp 0x4578c0
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x5c]
lea eax, [edx + eax*4]
add eax, 0xffffffec
mov dword [esp + 0x14], eax
mov dword [esp + 0x6c], 0
jmp case.0x4578ee.89
lea eax, [ecx + eax*8]
add eax, 0x10
mov word [eax], 1
mov ecx, dword [esp + 0xc]
jmp 0x460e07
dec dword [eax + 0x18]
jne 0x45e9db
jmp 0x45b1d3
add ecx, 8
mov edx, dword [eax + 0x14]
mov dword [ecx], edx
mov ecx, esi
mov edx, eax
call fcn.00472140
or byte [esi + 0x18], 1
jmp 0x4578c0
mov dword [esp + 0x10], edi
mov edi, dword [esi + 4]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x460913
mov dword [esp + 0x20], eax
movzx ebx, byte [edi]
test bl, bl
je 0x460cc2
lea edx, [edi + 1]
xor eax, eax
movzx ebx, bl
movzx ebx, byte [ebx + 0x52a853]
add ebx, eax
imul eax, ebx, 0x9e3779b1
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x45ea0a
jmp 0x460cc4
mov edx, 6
jmp 0x4614dc
test edi, edi
mov ecx, dword [esp + 0xc]
jns 0x45ea70
mov ecx, 0x7fffffff
sub ecx, edi
mov esi, ebx
not esi
add esi, 2
adc ecx, 0
mov dword [esp + 0x3c], ecx
mov ecx, edx
add ecx, 1
mov dword [esp + 0x44], ecx
mov ecx, eax
adc ecx, 0
cmp dword [esp + 0x44], esi
sbb ecx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xc]
jl 0x45c432
add ebx, edx
adc edi, eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x34]
movsd qword [eax], xmm0
mov eax, 0xfffff240
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
and eax, dword [edx + esi*8 + 0x10]
or eax, 4
jmp 0x45fbc2
mov dword [esp + 0xe8], 0
mov dword [esp + 0xf8], 1
mov ecx, dword [esp + 0x120]
call fcn.004443e0
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x45eb36
cmp dword [0x53c208], 0
je 0x45eb2c
mov eax, dword [0x53de88]
test eax, eax
je 0x45eaec
push eax
call dword [0x53c258]
add esp, 4
push esi
call dword [0x53c234]
add esp, 4
sub dword [0x53de30], eax
dec dword [0x53de54]
push esi
call dword [0x53c22c]
add esp, 4
mov eax, dword [0x53de88]
test eax, eax
je 0x45eb36
push eax
call dword [0x53c260]
jmp 0x45eb33
fstp st(0)
fstp st(0)
and dword [esp + 0x20], 0xfffffffe
jmp 0x45e566
push esi
call dword [0x53c22c]
add esp, 4
cmp dword [esp + 0xf8], 0
je 0x45ebaa
movzx eax, byte [esp + 0x11d]
test al, 4
mov esi, dword [esp + 0x38]
je 0x45eb78
mov edx, dword [esp + 0x10c]
test edx, edx
je 0x45eb6f
mov ecx, dword [esp + 0x108]
call fcn.0043f4f0
movzx eax, byte [esp + 0x11d]
and al, 0xfb
mov byte [esp + 0x11d], al
mov dword [esp + 0x110], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x10c], 0
mov ebx, dword [esp + 0xf4]
inc ebx
mov dword [esp + 0xf4], ebx
jmp 0x45ebb5
mov ebx, dword [esp + 0xf4]
mov esi, dword [esp + 0x38]
test ebx, ebx
jne 0x45ec0e
movzx eax, byte [esp + 0x11d]
test al, 4
je 0x45ebed
mov edx, dword [esp + 0x10c]
test edx, edx
je 0x45ebe4
mov ecx, dword [esp + 0x108]
call fcn.0043f4f0
movzx eax, byte [esp + 0x11d]
and al, 0xfb
mov byte [esp + 0x11d], al
mov dword [esp + 0x110], 0
mov dword [esp + 0x118], 0
mov dword [esp + 0x10c], 0
mov ecx, dword [esp + 0x48]
cmp byte [ecx + 9], 0
je 0x45ec22
dec dword [ecx + 0xc]
jne 0x45ec22
call fcn.0044f130
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x45ec5c
mov ecx, dword [esp + 0x118]
mov byte [eax + ecx], 0
cmp dword [esp + 0x114], 0
je 0x45ec5c
test byte [esp + 0x11d], 4
jne 0x45ec5c
lea ecx, [esp + 0x108]
call fcn.0043f820
mov edx, eax
jmp 0x45ec63
mov edx, dword [esp + 0x10c]
lea edi, [esi + esi*4]
mov eax, dword [esp + 0x28]
lea esi, [eax + edi*8]
test byte [eax + edi*8 + 0x11], 0x90
je 0x45ec85
mov ecx, esi
mov dword [esp + 0x20], edx
call fcn.00455c60
mov edx, dword [esp + 0x20]
jmp 0x45ec8b
mov word [esi + 0x10], 1
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
test ebx, ebx
je 0x45ecce
test edx, edx
je 0x461c1d
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
lea eax, [eax + ecx*8]
dec ebx
mov ecx, ebx
sar ecx, 0x1f
sub dword [eax], ebx
sbb dword [eax + 4], ecx
mov ecx, esi
push fcn.00424f10
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.00430c10
mov ecx, dword [esp + 0x1c]
add esp, 0x10
test byte [esi + 0x10], 2
mov eax, dword [esp + 0x28]
lea eax, [eax + edi*8 + 0x12]
jne 0x45ecec
movzx edx, byte [esp + 0x54]
mov byte [eax], dl
mov edi, dword [esp + 0x10]
jmp 0x45f9fb
movzx edx, byte [esp + 0x54]
cmp byte [eax], dl
mov edi, dword [esp + 0x10]
je 0x45f9fb
movzx edx, dl
mov ecx, esi
call fcn.00457070
mov ecx, dword [esp + 0xc]
jmp 0x45f9fb
mov eax, dword [eax + 0x14]
xor edx, edx
test eax, eax
jle 0x45f1cf
mov dword [esp + 0x34], edx
xor edi, edi
mov ebx, 4
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov ecx, dword [eax + ebx]
mov edx, dword [esp + 0x20]
push dword [esp + 0x24]
call fcn.00455a30
add esp, 4
test eax, eax
jne 0x46232b
inc edi
add ebx, 0x10
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 0x14]
jl 0x45ed28
xor ebx, ebx
mov edx, dword [esp + 0x34]
jmp 0x45f1d3
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
jmp 0x4578bc
mov ecx, dword [ebx + 0x2c]
cmp ecx, edx
jg 0x45ed81
cmp ecx, dword [ebx]
jle 0x45ed96
mov ecx, dword [0x53dea0]
test ecx, ecx
je 0x45ed96
mov ecx, ebx
call fcn.0046e930
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov ecx, dword [esp + 0x1c]
add dword [ebx + 0x2c], ecx
cmp ecx, dword [ebx + 8]
jle 0x45eda5
mov dword [ebx + 8], ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
mov dword [esp + 0x24], eax
je 0x45ee7d
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
add esi, ecx
cmp esi, edx
jle 0x45eea3
mov eax, edx
sar eax, 0x1f
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x38], ecx
nop word cs:[eax + eax]
mov ecx, esi
sar ecx, 0x1f
shld eax, edx, 1
add edx, edx
cmp edx, esi
mov edi, eax
sbb edi, ecx
jl 0x45ede0
xor edi, edi
cmp dword [esp + 0x38], 1
sbb edi, edi
mov dword [esp + 0x44], edi
mov edi, dword [ebx + 4]
mov ebx, edi
sar ebx, 0x1f
mov dword [esp + 0x3c], ebx
cmp edx, edi
mov dword [esp + 0x48], edi
mov ebx, dword [esp + 0x48]
cmovb ebx, edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x3c]
cmp eax, ebx
cmovl edi, edx
cmove edi, dword [esp + 0x48]
cmovl ebx, eax
cmp edi, esi
mov eax, esi
cmova eax, edi
cmp ebx, ecx
cmovle edi, esi
cmove edi, eax
cmovle ebx, ecx
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, edi
push ebx
call fcn.00424fb0
add esp, 4
test eax, eax
je 0x46211b
mov edx, dword [esp + 0x38]
sub edx, esi
mov ecx, dword [esp + 0x44]
or ecx, edx
mov ebx, dword [esp + 0x20]
js 0x45ee70
add ecx, eax
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x34], edi
mov ecx, dword [ebx + 0x30]
mov edx, eax
jmp 0x45eea7
mov edx, esi
sar edx, 0x1f
mov ecx, esi
call fcn.00424d20
test eax, eax
je 0x462303
mov esi, eax
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x24]
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x2c]
jmp 0x45eecd
mov edx, dword [esp + 0x1c]
lea esi, [edx + ecx]
mov eax, dword [esp + 0x34]
add eax, 0xf
and eax, 0xfffffff8
add eax, ecx
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45eec5
sub eax, edx
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
lea edi, [eax + ecx*8]
add edi, 8
lea eax, [esi + 8]
push dword [edi + 4]
push dword [edi]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 4]
mov dword [esi], eax
mov dword [ebx + 0x24], esi
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x24]
test edx, edx
mov esi, dword [esp + 0x18]
jmp 0x4614fa
xor esi, esi
xor edx, edx
mov eax, dword [esp + 0x28]
lea ecx, [eax + ebx*8]
movzx eax, word [esp + 0x2c]
test al, 0x24
mov dword [esp + 0x24], edx
je 0x45ef26
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x45ef4f
test al, 8
jne 0x45ef40
test al, 0x12
je 0x45ef4b
mov eax, dword [esp + 0x28]
cmp dword [eax + ebx*8 + 8], 0
je 0x45ef4b
call fcn.00456d20
jmp 0x45ef4f
movq xmm0, qword [ecx]
call fcn.00456cb0
jmp 0x45ef4f
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x14]
movzx ebx, byte [ecx]
cmp ebx, 0x67
mov ecx, dword [esp + 0xc]
je 0x45ef6e
cmp ebx, 0x66
jne 0x45ef9f
and esi, eax
mov eax, dword [esp + 0x24]
and eax, edx
jmp 0x45ef76
or esi, eax
mov eax, dword [esp + 0x24]
or eax, edx
mov edx, eax
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov dword [eax], esi
mov dword [eax + 4], edx
mov eax, 0xfffff240
mov edx, dword [esp + 0x28]
and eax, dword [edx + ebx*8 + 0x10]
or eax, 4
mov word [edx + ebx*8 + 0x10], ax
jmp case.0x4578ee.89
mov ecx, eax
or ecx, edx
je 0x45f020
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], edi
mov cl, 0xd1
sub cl, bl
mov byte [esp + 0x2c], cl
mov edi, eax
neg edi
mov esi, 0
sbb esi, edx
mov ecx, 0xffffffc0
cmp ecx, eax
mov ecx, 0xffffffff
sbb ecx, edx
mov ecx, 0
cmovge esi, ecx
mov ecx, 0x40
cmovl ecx, edi
test edx, edx
cmovns esi, edx
cmovns ecx, eax
movzx edx, byte [esp + 0x2c]
movzx eax, bl
cmovs eax, edx
cmp ecx, 0x40
sbb esi, 0
jl 0x45f141
cmp dword [esp + 0x24], 0
sets cl
cmp al, 0x68
setne al
and al, cl
movzx esi, al
neg esi
mov edx, esi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jmp 0x45ef78
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
jmp 0x45ef80
mov dword [esi + 0x30], 1
mov ecx, dword [esi + 8]
mov edx, 1
push dword [esi + 0x24]
push 0
push 4
call fcn.00463750
add esp, 0xc
mov edx, eax
mov al, 1
mov ebx, edi
mov byte [esi + 4], al
mov eax, dword [esp + 0x14]
cmp word [eax + 2], 8
setne al
movzx ecx, byte [esi + 5]
shl al, 2
and cl, 0xfb
or cl, al
mov byte [esi + 5], cl
test edx, edx
jne 0x461d6b
mov byte [esi + 2], 1
jmp 0x4578b4
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x5d], 0
setne al
je 0x45c503
cmp dword [esp + 0x20], 1
jne 0x45c503
mov ebx, dword [esp + 0x30]
mov ecx, ebx
mov edx, 1
call fcn.00454370
test eax, eax
jne 0x4623f6
mov eax, dword [esp + 0x18]
mov byte [eax + 0x55], 1
mov ecx, ebx
call fcn.00453980
cmp eax, 5
je 0x462403
mov edx, dword [ebx + 0x24]
test edx, edx
jne 0x462424
mov eax, dword [esp + 0x18]
mov byte [eax + 0x5d], 0
mov al, 1
mov dword [esp + 0x2c], eax
jmp 0x45f213
mov eax, dword [esp + 0x14]
cmp dword [eax + 4], 0
mov ecx, dword [esp + 0xc]
je 0x45f10f
movq xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x18]
movq qword [eax + 0x28], xmm0
mov eax, dword [esp + 0x30]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov dword [esp + 0x1c], 0
jmp case.0x4578ee.89
mov byte [ebx + 2], 1
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jmp 0x460e07
cmp al, 0x68
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
jne 0x460139
mov esi, dword [esp + 0x34]
shld edx, esi, cl
shl esi, cl
xor eax, eax
test cl, 0x20
cmovne edx, esi
cmovne esi, eax
jmp 0x460183
movzx eax, word [esi + 0x10]
mov word [edi + 6], ax
jmp 0x4578b4
movzx eax, word [ebx + 0x36]
mov edx, dword [esp + 0x3c]
movzx ecx, ax
cmp edx, ecx
jae 0x45ffae
mov dword [esp + 0x34], ebx
mov eax, dword [ebx + edx*4 + 0x50]
mov dword [esp + 0x38], eax
jmp 0x461215
cmp byte [ebx], 3
jne 0x45fd32
mov eax, dword [ebx + 0x1c]
test eax, eax
jle 0x45fd32
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + eax*8 + 0xc]
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x48], ecx
lea esi, [edx + eax*8]
add esi, 8
jmp 0x460f7b
mov ebx, dword [esp + 0x1c]
test edx, edx
je 0x45f20b
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x45f1fc
movzx ecx, byte [eax + 0x96]
and cl, 0xfc
or cl, 1
mov byte [eax + 0x96], cl
mov eax, dword [eax + 8]
test eax, eax
jne 0x45f1e2
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0042ee00
or byte [edi + 0x18], 1
test ebx, ebx
jne 0x462190
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x1e8]
cmp edx, esi
je 0x45f239
mov eax, dword [edx + 0x18]
mov dword [edi + 0x1e8], eax
mov ecx, edi
call fcn.0043f4f0
dec dword [edi + 0x1f4]
jmp 0x45f217
cmp dword [esp + 0x20], 1
jne 0x45f4a1
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x1e8], eax
mov edx, esi
call fcn.0043f4f0
mov eax, dword [esp + 0x2c]
test al, al
jne 0x45f4c3
mov eax, dword [esp + 0x18]
dec dword [eax + 0x1f4]
jmp 0x45f4d2
mov dword [esp + 0x10], edi
mov edi, eax
and edi, 0xfffffff8
mov edx, eax
and edx, 7
mov dword [esp + 0x38], ecx
movd xmm0, dword [ecx]
pshufd xmm0, xmm0, 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], eax
mov ebx, eax
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x28]
movd xmm1, ebx
pshufd xmm2, xmm1, 0
movdqa xmm1, xmmword [0x5271f0]
paddd xmm1, xmm2
paddd xmm2, xmm0
movdqa xmm3, xmm0
paddd xmm3, xmm1
movdqa xmm4, xmmword [0x527200]
pshufd xmm5, xmm2, 0xf5
pmuludq xmm2, xmm4
pshufd xmm2, xmm2, 0xe8
pmuludq xmm5, xmm4
pshufd xmm5, xmm5, 0xe8
punpckldq xmm2, xmm5
pshufd xmm5, xmm3, 0xf5
pmuludq xmm5, xmm4
pmuludq xmm3, xmm4
movd xmm4, eax
pshufd xmm4, xmm4, 0
movd esi, xmm1
pshufd xmm1, xmm3, 0xe2
pshufd xmm3, xmm5, 0xe2
punpckldq xmm3, xmm1
paddd xmm3, xmm4
pshufd xmm1, xmm2, 0x1b
paddd xmm1, xmm4
paddd xmm1, xmmword [0x527210]
mov ecx, dword [esp + 0x20]
movdqu xmmword [ecx + esi*4 + 0x10], xmm3
movdqu xmmword [ecx + esi*4], xmm1
add ebx, 0xfffffff8
add edi, 0xfffffff8
jne 0x45f2a0
mov esi, dword [esp + 0x48]
cmp esi, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
je 0x45f379
dec edx
nop word cs:[eax + eax]
mov esi, dword [ecx]
add esi, edx
lea esi, [esi + esi*4]
lea esi, [eax + esi*8]
mov dword [ebx + edx*4 + 0x1c], esi
lea esi, [edx - 1]
inc edx
cmp edx, 1
mov edx, esi
ja 0x45f360
mov ecx, 0xfffff240
mov edx, dword [esp + 0x2c]
and ecx, dword [eax + edx*8 + 0x10]
or ecx, 1
mov word [eax + edx*8 + 0x10], cx
mov eax, dword [ebx + 4]
movzx ecx, byte [ebx + 0x1a]
lea edx, [ebx + 0x1c]
push edx
push ecx
push ebx
call dword [eax + 0x10]
add esp, 0xc
cmp dword [ebx + 0x14], 0
je 0x4578c0
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x1c]
jle 0x45f3d6
push dword [esp + 0x24]
call fcn.004304e0
add esp, 4
push eax
push 0x52a965
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov edx, dword [ebx + 0x14]
mov eax, dword [esp + 0x150]
mov esi, dword [eax]
test esi, esi
mov ecx, dword [esp + 0xc]
je 0x45f47d
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x150]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
jmp 0x45f42b
mov edx, dword [esp + 0x2c]
bt edx, eax
mov edx, dword [esp + 0x24]
jae 0x45f450
nop dword [eax + eax]
add esi, 0x10
mov edi, esi
mov esi, dword [edi]
test esi, esi
je 0x45f47d
cmp dword [esp + 0x1c], 0
js 0x45f450
mov eax, dword [esp + 0x1c]
cmp dword [esi], eax
jne 0x45f420
mov eax, dword [esi + 4]
test eax, eax
js 0x45f420
cmp eax, 0x1f
jbe 0x45f40e
nop word cs:[eax + eax]
mov ebx, edx
mov eax, dword [esi + 0xc]
test eax, eax
je 0x45f461
push dword [esi + 8]
call eax
add esp, 4
mov eax, dword [esi + 0x10]
mov dword [edi], eax
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.0043f4f0
mov ecx, dword [esp + 0xc]
mov edx, ebx
mov ebx, dword [esp + 0x20]
jmp 0x45f425
mov dword [ebx + 0x14], 0
mov dword [esp + 0x1c], 0
test edx, edx
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
je case.0x4578ee.89
jmp 0x46244a
movsd xmm0, qword [esi + 8]
mov eax, dword [esp + 0x18]
movsd qword [eax + 0x200], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [eax + 0x208], xmm0
mov eax, dword [esp + 0x2c]
test al, al
je 0x45f4d2
cmp dword [esp + 0x20], 2
jne 0x46094d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
push dword [esp + 0x24]
call fcn.00455af0
add esp, 4
test eax, eax
je 0x46094d
jmp 0x46232b
lea ecx, [ebx + edi*8]
add ecx, 0x10
xor edx, edx
test eax, eax
sete dl
mov dword [esi], edx
mov dword [esi + 4], 0
mov word [ecx], 4
jmp 0x4578bc
movzx eax, word [edi]
mov ecx, dword [esp + 0xc]
test eax, 0x9000
je 0x45f53a
mov eax, dword [esp + 0x28]
lea ecx, [eax + esi*8]
call fcn.00455c60
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.8
mov word [edi], 1
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.8
movzx edx, byte [esp + 0x54]
mov edi, ecx
push 0
call fcn.00456350
add esp, 4
test eax, eax
jne 0x462074
movzx edx, word [edi + 0x10]
and edx, 0xfffffffd
mov eax, dword [esp + 0x44]
movzx esi, word [eax]
mov ecx, edi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], edx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x28]
lea ecx, [eax + edi*8]
movzx eax, si
test al, 0x12
je 0x45f699
test eax, 0x400
je 0x45f6ba
call fcn.00430490
jmp 0x45f6a8
sar ecx, 0x1f
mov edx, dword [esp + 0x30]
add dword [edx + 0x40], eax
adc dword [edx + 0x44], ecx
jmp 0x4578c0
movsd xmm0, qword [ecx]
jmp 0x460967
lea eax, [ebx + edi*8]
add eax, 0x10
mov word [eax], 1
jmp 0x4578bc
lea eax, [edi + esi*8]
add eax, 0x10
jmp 0x45fb98
mov eax, dword [esi + 0xc]
jmp 0x460dfb
cmp dword [esi + 0xc], 0
jmp 0x45f98f
mov word [ecx + 0x46], dx
call fcn.0046a640
mov edx, eax
mov edi, esi
jmp 0x4609d3
movq xmm0, qword [esi]
call fcn.00456cb0
jmp 0x460076
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
jmp 0x460e34
movq xmm0, qword [esi]
call fcn.00456cb0
jmp 0x4600a8
test eax, 0x9000
je 0x4609e0
mov esi, ecx
call fcn.00455c60
mov ecx, esi
mov esi, dword [esp + 0x1c]
jmp 0x4609e5
mov dword [esp + 0x6c], 0xffffffff
mov ecx, 0x52a91f
movzx eax, byte [esp + 0x20]
cmp byte [ecx + eax], 0
mov word [edx], bx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov word [ecx], ax
jmp 0x45f98f
mov ecx, 0x3fff
cmp ecx, edx
sbb eax, ebx
jb 0x460310
mov ecx, esi
mov eax, edx
shr eax, 7
or al, 0x80
mov esi, dword [esp + 0x20]
mov byte [esi], al
and dl, 0x7f
mov byte [esi + 1], dl
mov eax, 2
jmp 0x460323
movzx edx, byte [esp + 0x54]
push 0
call fcn.00456350
add esp, 4
test eax, eax
jne 0x462074
mov eax, dword [esp + 0x44]
movzx esi, word [eax]
and esi, 0xfffffffd
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + edi*8 + 0xc]
mov ecx, dword [esp + 0x24]
add ebx, dword [eax + ecx*8 + 0xc]
mov eax, dword [esp + 0x18]
cmp ebx, dword [eax + 0x78]
jg 0x461c4b
lea edx, [ebx + 2]
xor eax, eax
mov ecx, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x34]
sete al
mov ecx, dword [esp + 0x38]
push eax
call fcn.00455dd0
add esp, 4
test eax, eax
jne 0x462074
mov eax, 0xfffff240
mov ecx, edi
mov edi, dword [esp + 0x28]
and eax, dword [edi + esi*8 + 0x10]
or eax, 2
mov word [edi + esi*8 + 0x10], ax
lea eax, [edi + ecx*8]
add eax, 0xc
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x34]
je 0x45f750
mov eax, dword [esp + 0x48]
push dword [eax]
push dword [edi + ecx*8 + 8]
push dword [edi + esi*8 + 8]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov word [eax], cx
mov edx, dword [esp + 0x24]
lea eax, [edi + edx*8]
add eax, 0xc
mov dword [esp + 0x34], eax
lea ecx, [edi + esi*8 + 0x10]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + esi*8 + 8]
mov eax, dword [esp + 0x48]
add ecx, dword [eax]
mov eax, dword [esp + 0x34]
push dword [eax]
push dword [edi + edx*8 + 8]
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, ebx
and eax, 0xfffffffe
movzx edx, byte [esp + 0x54]
cmp dl, 2
cmovb eax, ebx
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x20]
mov word [ecx + 0x10], bx
mov ecx, dword [edi + esi*8 + 8]
mov byte [ecx + eax], 0
mov ecx, dword [edi + esi*8 + 8]
mov byte [eax + ecx + 1], 0
mov ecx, dword [esp + 0x2c]
or byte [ecx + 1], 2
mov dword [edi + esi*8 + 0xc], eax
mov byte [edi + esi*8 + 0x12], dl
jmp 0x4578bc
mov ebx, edi
mov edi, dword [esi + 0x24]
mov ecx, edi
call fcn.004514d0
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov edx, ecx
xor edx, 0x7fffffff
mov edi, eax
not edi
or edi, edx
jne 0x4607c3
or byte [esi + 5], 2
jmp 0x4607d1
mov edx, esi
mov eax, dword [esp + 0x1c]
jmp 0x460bec
mov ecx, dword [esp + 0x28]
test byte [ecx + edi*8 + 0x10], 1
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jne 0x45f825
mov edx, dword [esp + 0x28]
test byte [edx + ebx*8 + 0x10], 1
je 0x45f827
neg eax
mov edx, eax
neg edx
test byte [esp + 0x48], 1
cmove edx, eax
mov dword [esp + 0x6c], edx
jmp case.0x4578ee.89
mov edx, ecx
and edx, 0xfffffffe
movdqa xmm1, xmmword [0x527240]
xor ecx, ecx
pshufd xmm4, xmm0, 0
movdqa xmm3, xmmword [0x527200]
movdqa xmm2, xmm1
pmuludq xmm2, xmm3
pshufd xmm2, xmm2, 0xe8
pshufd xmm5, xmm1, 0xf5
pmuludq xmm5, xmm3
pshufd xmm5, xmm5, 0xe8
punpckldq xmm2, xmm5
paddd xmm2, xmm4
paddd xmm3, xmm2
movdqa xmm4, xmmword [0x527250]
paddd xmm4, xmm2
movdqu xmmword [eax + ecx*4], xmm3
movdqu xmmword [eax + ecx*4 + 0x10], xmm4
movdqa xmm3, xmmword [0x527260]
paddd xmm3, xmm2
paddd xmm2, xmmword [0x527270]
movdqu xmmword [eax + ecx*4 + 0x20], xmm3
movdqu xmmword [eax + ecx*4 + 0x30], xmm2
add ecx, 0x10
paddd xmm1, xmmword [0x527280]
add edx, 0xfffffffe
jne 0x45f84b
mov edx, esi
and edx, 0xfffffff8
test byte [esp + 0x34], 1
je 0x45f915
movdqa xmm2, xmmword [0x527200]
pshufd xmm3, xmm1, 0xf5
pmuludq xmm1, xmm2
pshufd xmm1, xmm1, 0xe8
pmuludq xmm3, xmm2
pshufd xmm3, xmm3, 0xe8
punpckldq xmm1, xmm3
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
paddd xmm2, xmm0
paddd xmm0, xmmword [0x527250]
movdqu xmmword [eax + ecx*4], xmm2
movdqu xmmword [eax + ecx*4 + 0x10], xmm0
cmp edx, esi
je 0x45f93b
lea ecx, [edx + edx*4]
shl ebx, 3
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0x28]
add ecx, ebx
add ecx, 0x50
nop dword [eax + eax]
mov dword [eax + edx*4], ecx
inc edx
add ecx, 0x28
cmp esi, edx
jne 0x45f930
push eax
push esi
mov esi, dword [esp + 0x1c]
push dword [esi + 0x10]
push dword [esp + 0x30]
push edi
mov ebx, edi
mov edi, dword [esp + 0x30]
call dword [edi + 0x20]
add esp, 0x14
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
call fcn.00455830
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x46232d
push ebx
call dword [edi + 0x28]
add esp, 4
mov ecx, dword [esp + 0x2c]
mov byte [ecx + 2], 0
mov dword [esp + 0x1c], 0
test eax, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jne 0x460e07
jmp case.0x4578ee.89
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [ebx + 0x18], 0
cmp edx, 0x65
je 0x45f9ef
test edx, edx
jne 0x46202f
mov byte [ebx + 2], 0
movzx eax, word [esi + 2]
mov edx, dword [esp + 0x30]
inc dword [edx + eax*4 + 0xa0]
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x5c]
lea eax, [edx + eax*4]
add eax, 0xffffffec
mov dword [esp + 0x14], eax
jmp 0x45f9fb
mov byte [ebx + 2], 1
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x128]
test eax, eax
jne 0x462445
nop dword [eax]
cmp dword [esp + 0xdc], edi
mov eax, dword [esp + 0x130]
sbb eax, ecx
jb case.0x4578ee.89
mov eax, ecx
mov ecx, dword [esi + 0x170]
test ecx, ecx
je 0x45fa53
add edi, dword [esi + 0x178]
mov ebx, eax
adc ebx, 0
push dword [esi + 0x174]
call ecx
mov ecx, ebx
add esp, 4
test eax, eax
je 0x45fa10
jmp 0x462438
mov ecx, eax
jmp case.0x4578ee.89
xorpd xmm2, xmm2
mov esi, dword [esp + 0x14]
movzx eax, word [edi]
test al, 8
jne 0x45fa89
test al, 0x24
je 0x45fbd0
mov eax, dword [esp + 0x24]
fild qword [eax]
fstp qword [esp + 0x180]
movsd xmm0, qword [esp + 0x180]
jmp 0x45fa91
mov eax, dword [esp + 0x24]
movsd xmm0, qword [eax]
movzx eax, byte [esi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x45fa9c
jmp dword [eax*4 + 0x5275ac]
addsd xmm2, xmm0
jmp 0x45fb4a
mov ecx, dword [esp + 0x20]
call fcn.00430630
mov ebx, eax
mov edi, edx
mov ecx, dword [esp + 0x24]
call fcn.00430630
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov ecx, ebx
or ecx, edi
mov ecx, dword [esp + 0xc]
je 0x45fb6d
mov ecx, ebx
and ecx, edi
xor esi, esi
cmp ecx, 0xffffffff
mov ecx, 1
cmovne ecx, ebx
cmovne esi, edi
push esi
push ecx
push edx
push eax
call fcn.0050f6d0
mov ecx, dword [esp + 0x1c]
add esp, 0x10
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esp + 0x178], xmm1
fild qword [esp + 0x178]
fstp qword [esp + 0x170]
movsd xmm2, qword [esp + 0x170]
jmp 0x45fb4a
subsd xmm0, xmm2
jmp 0x45fb46
mulsd xmm2, xmm0
jmp 0x45fb4a
xorpd xmm1, xmm1
ucomisd xmm2, xmm1
jne 0x45fb42
jnp 0x45fb6d
divsd xmm0, xmm2
movapd xmm2, xmm0
movsd qword [esp + 0x168], xmm2
fld qword [esp + 0x168]
fxam
wait
fnstsw ax
fstp st(0)
and eax, 0x4500
cmp eax, 0x100
jne 0x45fba6
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
test byte [eax + edx*8 + 0x11], 0x90
je 0x45fb92
mov ecx, dword [esp + 0x34]
call fcn.00455c60
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
lea eax, [eax + edx*8]
add eax, 0x10
mov word [eax], 1
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
mov eax, dword [esp + 0x34]
movsd qword [eax], xmm2
mov eax, 0xfffff240
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
and eax, dword [edx + esi*8 + 0x10]
or eax, 8
mov word [edx + esi*8 + 0x10], ax
mov edi, dword [esp + 0x10]
jmp case.0x4578ee.89
test al, 0x12
je 0x45fbf2
mov ecx, dword [esp + 0x24]
movsd qword [esp + 0x48], xmm2
call fcn.004565a0
movsd xmm2, qword [esp + 0x48]
mov ecx, dword [esp + 0xc]
jmp 0x45fa91
xorpd xmm0, xmm0
jmp 0x45fa91
xor eax, eax
xor edx, edx
mov dword [esi], eax
mov dword [esi + 4], edx
and edi, 0xfffff240
or edi, 4
mov word [esi + 0x10], di
mov edi, ebx
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
movzx ecx, byte [esi + 1]
xor edx, edx
cmp ecx, 0xfd
je 0x45fc43
mov eax, 0
cmp ecx, 0xf8
jne 0x45fc46
mov edx, dword [esi + 0x10]
movzx eax, word [edx + 8]
jmp 0x45fc46
mov eax, dword [esi + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x30]
push 0
push eax
call fcn.00463650
add esp, 8
test eax, eax
je 0x461c31
mov esi, eax
mov dword [esp + 0x10], edi
movzx ebx, bx
mov eax, dword [esp + 0x2c]
mov byte [esi + 1], al
mov byte [esi + 2], 1
or byte [esi + 5], 4
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x30], edx
mov edi, dword [esi + 0x24]
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 9], 0
je 0x45fcd8
inc dword [ecx + 0xc]
cmp byte [ecx + 0xa], 0
jne 0x45fca6
mov ecx, dword [esp + 0x20]
call fcn.0044f0a0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push edi
push dword [esp + 0x28]
push ebx
call fcn.00469840
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, eax
cmp byte [ecx + 9], 0
je 0x45fcf1
dec dword [ecx + 0xc]
mov edi, dword [esp + 0x10]
jne 0x45fcf5
mov ebx, edx
call fcn.0044f130
mov edx, ebx
jmp 0x45fcf5
push edi
mov eax, ebx
mov ebx, dword [esp + 0x28]
push ebx
push eax
call fcn.00469840
add esp, 0xc
mov edx, eax
mov edi, dword [esp + 0x10]
jmp 0x45fcf9
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov dword [esi + 0x28], ebx
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 1], 0xf8
setne byte [esi + 4]
mov eax, dword [esi + 0x24]
movzx ecx, byte [ecx + 2]
and cl, 3
mov byte [eax + 3], cl
mov dword [esp + 0x1c], 0
test edx, edx
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
je case.0x4578ee.89
jmp 0x46244a
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
test byte [edx + eax*8 + 0x11], 0x90
je 0x460d67
lea ecx, [edx + eax*8]
jmp 0x45c103
mov ecx, edx
xor edx, edx
call fcn.00424d20
mov esi, eax
test eax, eax
je 0x4622ee
lea eax, [esi + 0x20]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esi], eax
mov dword [ebx + 0x20], esi
mov word [esi + 0x14], di
cmp byte [ebx + 0x38], 0
je 0x45fd98
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
imul edx, dword [ecx + 4], 0x38
lea ecx, [eax + edx]
add ecx, 0x14
mov eax, dword [eax + edx + 0x20]
jmp 0x45fd9e
mov ecx, dword [ebx + 0x24]
lea eax, [ecx + 8]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
push esi
push eax
call fcn.00464810
add esp, 8
test edi, edi
mov ecx, dword [esp + 0xc]
jle 0x45fdcb
mov eax, dword [esi + 4]
add eax, 0x10
nop dword [eax]
test byte [eax], 1
jne 0x45fe0a
add eax, 0x28
dec edi
jne 0x45fdc0
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + eax*8 + 8]
mov ecx, dword [ecx + eax*8 + 0xc]
push 0
push esi
call fcn.00465d00
mov ecx, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x1c], 0
test eax, eax
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jne 0x460e07
jmp case.0x4578ee.89
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x460e07
mov dword [esp + 0x10], edi
cmp byte [esi], 2
mov edi, dword [esi + 0x24]
jne 0x460a9c
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
lea esi, [esp + 0x70]
push esi
push edi
call dword [eax + 0x30]
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
call fcn.00455830
mov edx, edi
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
test edi, edi
mov edi, dword [esp + 0x10]
je 0x460ed5
jmp 0x46232d
movzx ebx, byte [ecx + 3]
test bl, bl
js 0x460d77
shl eax, 0xe
or eax, ebx
and eax, 0x1fc07f
and edx, 0x7f
shl edx, 7
or eax, edx
jmp 0x45ae6c
xor esi, esi
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x1f4]
add eax, dword [ebx + 0x1f8]
mov ecx, ebx
xor edx, edx
push eax
call fcn.00455af0
add esp, 4
test eax, eax
jne 0x462316
lea edx, [esi + 0x21]
mov ecx, ebx
push 0
call fcn.0043f5f0
add esp, 4
test eax, eax
je 0x46094d
mov ebx, eax
add eax, 0x20
mov dword [ebx], eax
inc esi
push esi
push edi
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x55], 0
je 0x46091e
mov byte [ecx + 0x55], 0
mov byte [ecx + 0x5d], 1
jmp 0x460924
push edx
push dword [esp + 0x34]
push dword [esi + 0xd8]
push 1
call dword [esi + 0xd4]
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
cmp eax, dword [0x53c314]
jl 0x45ff81
cmp byte [esi], 0xb5
je case.0x4578ee.89
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x6c]
cmp eax, 2
jl 0x45ff70
mov ecx, 1
mov edx, 0x18
jmp 0x45ff52
inc ecx
add edx, 0x14
cmp ecx, eax
jge 0x45ff70
mov esi, dword [esp + 0x30]
mov esi, dword [esi + 0x68]
cmp byte [esi + edx - 4], 0xe
jne 0x45ff4a
mov dword [esi + edx], 0
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x6c]
jmp 0x45ff4a
mov esi, dword [esp + 0x14]
mov dword [esi + 4], 0
xor eax, eax
mov ecx, dword [esp + 0xc]
inc eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x30]
inc dword [eax + 0xb8]
jmp 0x460e07
lea eax, [eax + ecx*8]
add eax, 0x10
mov word [eax], 4
movq xmm0, qword [esp + 0x70]
movq qword [esi], xmm0
jmp 0x45e774
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x24], ecx
jae 0x460c7b
mov ecx, dword [ebx + 0x44]
mov dword [esp + 0x44], ecx
test ecx, ecx
mov ecx, dword [esp + 0x20]
jne 0x46100b
pxor xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov eax, ecx
mov ecx, dword [ebx + 0x24]
mov edx, dword [eax]
lea eax, [esp + 0x70]
push eax
call fcn.00462ee0
add esp, 4
test eax, eax
jne 0x461c16
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
movzx eax, word [ebx + 0x36]
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esi]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x3c]
mov ecx, esi
jmp 0x46100b
lea esi, [ebx + esi*8]
add esi, 0x10
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov word [esi], 4
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jmp 0x45f9fb
xor eax, eax
xor edx, edx
mov dword [esi], eax
mov dword [esi + 4], edx
and edi, 0xfffff240
or edi, 4
mov word [esi + 0x10], di
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
mov edi, ecx
sar edi, 0x1f
add eax, ecx
adc edi, edx
mov dword [esi], eax
mov dword [esi + 4], edi
mov edi, ebx
jmp 0x4578c0
xor eax, eax
xor edx, edx
mov dword [esi], eax
mov dword [esi + 4], edx
and edi, 0xfffff240
or edi, 4
mov word [esi + 0x10], di
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x28]
lea ebx, [ecx + eax*8]
movzx edi, word [ecx + eax*8 + 0x10]
movzx ecx, di
test cl, 0x24
je 0x4600df
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x460110
test cl, 8
jne 0x460101
test cl, 0x12
je 0x46010c
mov ecx, dword [esp + 0x28]
cmp dword [ecx + eax*8 + 8], 0
je 0x46010c
mov ecx, ebx
call fcn.00456d20
movzx edi, word [ebx + 0x10]
jmp 0x460110
movq xmm0, qword [ebx]
call fcn.00456cb0
jmp 0x460110
xor eax, eax
xor edx, edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
and edi, 0xfffff240
or edi, 4
mov word [ebx + 0x10], di
mov ecx, dword [esi + 4]
cmp dword [esi], eax
sbb ecx, edx
jge 0x4578bc
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4578bc
mov esi, dword [esp + 0x34]
shrd esi, edx, cl
shr edx, cl
test cl, 0x20
cmovne esi, edx
mov eax, 0
cmovne edx, eax
cmp dword [esp + 0x24], 0
jns 0x460183
mov al, 0x40
sub al, cl
mov ecx, eax
mov eax, 0xffffffff
shl eax, cl
test cl, 0x20
mov ecx, 0
cmove ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, 0xffffffff
cmove eax, ecx
or eax, edx
mov edx, eax
or esi, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
jmp 0x45ef7c
mov esi, 5
cmp byte [ebx + 4], 0
je 0x460da2
mov ecx, dword [esp + 0x24]
cmp esi, edx
jne 0x4601ae
mov esi, edx
mov eax, dword [esp + 0x1c]
jmp 0x460bec
cmp dl, 5
mov eax, dword [esp + 0x1c]
je 0x4601c0
cmp esi, 5
jne 0x460bec
mov dword [esp + 0x24], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x18]
cmp byte [ebx + 0x55], 0
je 0x46233a
cmp dword [ebx + 0xbc], 2
jge 0x46233a
cmp dl, 5
mov dword [esp + 0x34], edx
jne 0x460bb7
mov ebx, ecx
mov edx, dword [esp + 0x18]
call fcn.00467850
test eax, eax
jne 0x460be8
mov ecx, ebx
mov edx, esi
call fcn.00467a10
jmp 0x460bd6
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x46021e
mov ecx, dword [eax + 0x10]
inc dword [esi + 0x18]
push dword [ebx + 8]
call ecx
add esp, 4
test eax, eax
jne 0x460297
mov dword [ebx + 8], 0
mov dword [esi + 0x34], 0
mov ecx, dword [ebx]
dec dword [ebx + 0xc]
jne 0x460297
mov dword [esp + 0x1c], eax
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
dec dword [edi + 8]
jne 0x46027b
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov eax, dword [edi + 0x10]
test eax, eax
je 0x460268
push dword [edi + 0xc]
call eax
add esp, 4
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.0043f4f0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
test edx, edx
je 0x46028c
mov eax, dword [edx]
push edx
mov edi, ecx
call dword [eax + 0x10]
mov ecx, edi
add esp, 4
mov edx, ebx
call fcn.0043f4f0
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x210], 0
je 0x460dc3
mov ecx, edi
mov edx, esi
mov esi, eax
call fcn.004759d0
mov eax, esi
jmp 0x460dcc
mov esi, dword [esp + 0x18]
xor edx, edx
jmp 0x4614dc
lea eax, [esi + eax*8]
add eax, 0x10
mov dword [ecx + 4], 0
mov dword [ecx], 0
jmp 0x460e6d
movsd xmm0, qword [ecx]
jmp 0x460deb
movsd xmm0, qword [ecx]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
mov ecx, dword [esp + 0xc]
jne case.0x4578ee.89
jp case.0x4578ee.89
jmp 0x460e07
movsd xmm0, qword [ecx]
jmp 0x460e24
mov ecx, dword [esp + 0x20]
push ebx
mov esi, ecx
call fcn.00468d10
mov ecx, dword [esp + 0x38]
add esp, 4
add esi, eax
mov dword [esp + 0x20], esi
mov esi, ecx
movzx edi, word [esi + 0x30]
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x74]
lea ebx, [ecx + edi]
cmp ebx, dword [eax + 0x3c]
ja 0x461fe5
mov dword [esp + 0x2c], ecx
mov edx, esi
mov esi, dword [esi + 0x2c]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x74]
movzx ecx, word [eax + 0xe]
mov dword [esp + 0x38], esi
cmp esi, edi
jne 0x460385
cmp di, cx
jae 0x460385
push edi
push dword [esp + 0x30]
mov esi, dword [esp + 0x28]
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
add edi, esi
mov eax, dword [esp + 0x3c]
sub edi, dword [eax + 0x54]
mov dword [eax + 0x58], edi
jmp 0x4578b4
movzx esi, cx
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx]
mov dword [esp + 0x48], ecx
mov dword [esp + 0xe0], 0
mov edx, dword [esp + 0x38]
mov ecx, edx
mov dword [esp + 0x1c], esi
cmp edx, esi
mov esi, dword [esp + 0x2c]
jbe 0x4603e7
movzx ecx, word [eax + 0x10]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov edx, dword [esp + 0x38]
sub edx, dword [esp + 0x24]
sbb ecx, ecx
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x28]
add eax, 0xfffffffc
push 0
push eax
push ecx
push edx
call fcn.0050f6d0
add esp, 0x10
mov ecx, eax
mov eax, dword [esp + 0x24]
add ecx, eax
cmp ecx, dword [esp + 0x1c]
cmovg ecx, eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + 0x54]
add eax, ecx
mov dword [edx + 0x58], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x34]
cmp ecx, dword [edx + 0x2c]
jae 0x460430
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add ecx, edx
mov dword [esp + 0x68], ecx
add eax, 4
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x58], eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x38], edi
jbe 0x460455
add ebx, 4
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x74]
cmp ebx, dword [eax + 0x3c]
ja 0x462376
mov eax, dword [edx + 0x28]
mov eax, dword [eax + edi]
bswap eax
mov dword [esp + 0x24], eax
xor eax, eax
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x44], eax
sub dword [esp + 0x38], ecx
test edi, edi
je 0x4604aa
cmp ecx, edi
mov dword [esp + 0x24], ebx
mov ebx, edi
cmovb ebx, ecx
push ebx
push esi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x28]
push esi
mov dword [esp + 0x28], ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [esp + 0x28]
add esp, 0xc
sub ecx, ebx
sub edi, ebx
add esi, ebx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
add esi, ebx
mov ebx, dword [esp + 0x24]
test ecx, ecx
jne 0x4604b4
jmp 0x46056d
xor edi, edi
test ecx, ecx
je 0x46056d
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x46050e
test byte [ecx + 0x1c], 0x20
jne 0x4604d0
call fcn.00444500
jmp 0x46050e
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov edi, dword [edx + 0xac]
imul edi, eax
mul dword [edx + 0xa8]
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
mov dword [esp + 0xe0], 0
lea eax, [esp + 0xe0]
push 2
push eax
push ebx
mov eax, dword [esp + 0x54]
push eax
call dword [eax + 0xdc]
add esp, 0x10
mov dword [esp + 0x70], eax
test eax, eax
jne 0x4606dc
mov eax, dword [esp + 0xe0]
mov esi, dword [eax + 4]
mov ebx, dword [esi]
bswap ebx
add esi, 4
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x28]
add edi, 0xfffffffc
mov ecx, dword [esp + 0x1c]
test edi, edi
jne 0x460467
jmp 0x4604aa
mov edx, dword [esp + 0x70]
xor ecx, ecx
test edx, edx
jne 0x46061b
cmp dword [esp + 0x38], 0
je 0x46061b
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
je 0x460617
mov dword [esp + 0x138], 0xffffffff
mov dword [esp + 0x134], 0
lea eax, [esp + 0x138]
lea edx, [esp + 0x134]
mov ecx, dword [esp + 0x3c]
push 0
push 0
push eax
call fcn.00451d30
add esp, 0xc
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x138]
bswap eax
mov dword [ebx], eax
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x11], 0
mov eax, dword [esp + 0x44]
je 0x460624
test eax, eax
je 0x460624
mov edx, dword [esp + 0x138]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x48]
push dword [eax + 4]
push 4
call fcn.00453030
mov eax, dword [esp + 0x50]
add esp, 0xc
mov ebx, dword [esp + 0x24]
jmp 0x46062c
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
jmp 0x4606cb
test eax, eax
mov ebx, dword [esp + 0x24]
je 0x46068d
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x46063c
call fcn.00444500
jmp 0x46068d
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov eax, dword [edx + 0x40]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
mov dword [esp + 0x2c], eax
add edx, ebx
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax]
push dword [ecx + 4]
push edx
push dword [esp + 0x34]
push eax
call dword [ebx + 0x48]
mov ebx, dword [esp + 0x34]
add esp, 0x10
mov eax, dword [esp + 0x134]
test eax, eax
je 0x4606c5
mov ecx, dword [eax + 0x38]
mov edx, eax
lea eax, [ecx + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x68], ecx
mov dword [ecx], 0
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x28]
add ecx, 0xfffffffc
mov eax, dword [esp + 0x38]
cmp ecx, eax
cmovae ecx, eax
mov eax, edx
jmp 0x4606c7
xor ecx, ecx
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x38], 0
je 0x4606e2
test edx, edx
je 0x46045b
jmp 0x4606e2
mov edx, eax
mov eax, dword [esp + 0x44]
test eax, eax
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
je 0x460748
mov ebx, edx
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x460700
call fcn.00444500
jmp 0x460746
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov edi, dword [edx + 0xac]
imul edi, eax
mul dword [edx + 0xa8]
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
mov esi, dword [esp + 0x28]
call dword [edi + 0x48]
mov edi, dword [esp + 0x20]
add esp, 0x10
mov edx, ebx
mov ecx, dword [esp + 0xe0]
test ecx, ecx
je 0x4607aa
mov ebx, edx
test byte [ecx + 0x1c], 0x20
jne 0x460762
call fcn.00444500
jmp 0x4607a8
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov edi, dword [edx + 0xac]
imul edi, eax
mul dword [edx + 0xa8]
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
mov esi, dword [esp + 0x28]
call dword [edi + 0x48]
mov edi, dword [esp + 0x20]
add esp, 0x10
mov edx, ebx
mov dword [esp + 0x1c], 0
test edx, edx
mov ecx, dword [esp + 0xc]
je case.0x4578ee.89
jmp 0x46244a
add eax, 1
adc ecx, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0x1c], 0
mov edi, ebx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x460874
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xcc]
mov ebx, dword [esp + 0x28]
test ecx, ecx
je 0x46080c
nop dword [eax]
mov edx, ecx
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x460800
mov ebx, dword [edx + 0x10]
lea edi, [eax + eax*4]
lea ecx, [ebx + edi*8]
mov dword [esp + 0x24], ecx
call fcn.00462910
mov eax, dword [ebx + edi*8]
mov ecx, dword [ebx + edi*8 + 4]
mov edx, ecx
xor edx, 0x7fffffff
mov edi, eax
not edi
mov ebx, 0xd
or edi, edx
je 0x462293
test byte [esi + 5], 2
jne 0x462293
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
cmp eax, edx
mov edi, ecx
sbb edi, ebx
jl 0x460867
add eax, 1
adc ecx, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov edx, eax
mov ebx, ecx
mov eax, dword [esp + 0x24]
mov dword [eax], edx
mov dword [eax + 4], ebx
mov edi, dword [esp + 0x10]
test byte [esi + 5], 2
je 0x4608f5
xor edi, edi
nop dword [eax]
lea eax, [esp + 0x70]
push eax
push 8
call fcn.004288e0
add esp, 8
mov eax, 0x3fffffff
and eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
add edx, 1
adc eax, 0
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov ecx, dword [esi + 0x24]
lea ebx, [esp + 0xe0]
push ebx
push 0
push eax
call fcn.00463ea0
add esp, 0xc
mov ecx, dword [esp + 0xe0]
test eax, eax
jne 0x4608d9
test ecx, ecx
jne 0x4608d9
lea edx, [edi + 1]
cmp edi, 0x63
mov edi, edx
jb 0x460880
test eax, eax
mov edi, dword [esp + 0x10]
jne 0x462289
mov dword [esp + 0x1c], 0
test ecx, ecx
je 0x462289
mov byte [esi + 3], 0
mov dword [esi + 0x18], 0
movq xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0x20]
movq qword [eax], xmm0
jmp 0x4578c0
lea eax, [ecx + 0x10]
add ecx, 0xc
jmp 0x460cd6
inc dword [ecx + 0x1f4]
mov eax, dword [ecx + 0x1e8]
mov dword [ebx + 0x18], eax
mov dword [ecx + 0x1e8], ebx
movsd xmm0, qword [ecx + 0x200]
movsd qword [ebx + 8], xmm0
movq xmm0, qword [ecx + 0x208]
movq qword [ebx + 0x10], xmm0
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x95], 3
jne 0x4578b4
jmp 0x46214d
xorpd xmm0, xmm0
xorpd xmm1, xmm1
cmpneqsd xmm1, xmm0
movd ebx, xmm1
and ebx, 1
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea ecx, [edx + eax*8]
movzx edx, word [edx + eax*8 + 0x10]
test dl, 0x24
je 0x46099d
mov edx, dword [ecx]
xor eax, eax
or edx, dword [ecx + 4]
setne al
jmp 0x460aed
mov eax, 2
test dl, 1
jne 0x460aed
test dl, 8
jne 0x4609c3
test dl, 0x12
je 0x460ad9
call fcn.004565a0
jmp 0x460add
movsd xmm0, qword [ecx]
jmp 0x460add
call fcn.0046a970
mov edx, eax
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
jmp 0x45f9a6
mov word [esi], 1
mov edx, dword [esp + 0x24]
mov word [esi], 0x401
mov dword [ecx], 0
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x14]
push dword [ecx + 8]
push eax
push dword [edi + 0x24]
call dword [edx + 0x2c]
add esp, 0xc
mov edi, eax
mov esi, dword [esp + 0x30]
mov ecx, esi
mov edx, dword [esp + 0x20]
call fcn.00455830
cmp dword [esp + 0x84], 0
jle 0x460a48
push dword [esp + 0x2c]
call fcn.004304e0
add esp, 4
push eax
push 0x52a965
push esi
call fcn.00455690
add esp, 0xc
mov esi, dword [esp + 0x84]
jmp 0x460a4a
mov esi, edi
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
test byte [eax], 2
mov eax, dword [esp + 0x28]
lea eax, [eax + ebx*8 + 0x12]
jne 0x460a6c
movzx edx, byte [esp + 0x54]
mov byte [eax], dl
jmp 0x460a87
movzx edx, byte [esp + 0x54]
cmp byte [eax], dl
je 0x460a87
movzx edx, byte [esp + 0x54]
mov ecx, dword [esp + 0x2c]
call fcn.00457070
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], 0
test esi, esi
je case.0x4578ee.89
jmp 0x4622fc
cmp byte [edi], 0
je 0x460eb9
mov ecx, esi
call fcn.00462e30
test eax, eax
jne 0x46232b
cmp byte [esi + 2], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
je 0x460eb6
mov word [ebx + 0x10], 1
mov dword [esp + 0x1c], 0
jmp case.0x4578ee.89
xorpd xmm0, xmm0
xorpd xmm1, xmm1
cmpneqsd xmm1, xmm0
movd eax, xmm1
and eax, 1
lea ecx, [ebx + ebx*2]
add ecx, eax
cmp byte [esi], 0x2c
mov eax, 0x52c76a
mov edx, 0x52c773
cmove edx, eax
movzx eax, byte [edx + ecx]
mov ecx, dword [esi + 0xc]
cmp al, 2
jne 0x460b2a
lea eax, [ecx + ecx*4]
mov ecx, 0xfffff240
mov edx, dword [esp + 0x28]
and ecx, dword [edx + eax*8 + 0x10]
or ecx, 1
mov word [edx + eax*8 + 0x10], cx
jmp 0x4578c0
lea ecx, [ecx + ecx*4]
movzx eax, al
mov edx, dword [esp + 0x28]
mov dword [edx + ecx*8], eax
mov dword [edx + ecx*8 + 4], 0
mov eax, 0xfffff240
and eax, dword [edx + ecx*8 + 0x10]
or eax, 4
mov word [edx + ecx*8 + 0x10], ax
jmp 0x4578c0
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 8]
cmp dword [edx + 4], esi
je 0x460b80
mov ecx, dword [eax + 4]
mov dword [edx + 0x38], ecx
mov dword [edx + 0x48], eax
mov dword [edx + 0x34], edi
mov dword [edx + 4], esi
xor eax, eax
cmp esi, 1
mov ecx, 0x64
cmovne ecx, eax
mov byte [edx + 9], cl
cmp byte [edi + 0x11], 0
je 0x460e94
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + 4]
cmp byte [ecx + 9], 0
mov dword [esp + 0x48], edi
mov dword [esp + 0x38], edx
je 0x460ee2
inc dword [ecx + 0xc]
cmp byte [ecx + 0xa], 0
je 0x461588
xor eax, eax
jmp 0x46159a
cmp dl, 4
mov ebx, ecx
jne 0x460bd2
mov ecx, ebx
mov edx, 2
call fcn.00467a10
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x460bec
xor edx, edx
cmp esi, 5
sete dl
inc edx
mov ecx, dword [esp + 0x24]
call fcn.0042ef30
mov edx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
test eax, eax
cmove edx, esi
mov ecx, ebx
call fcn.00467a10
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x10], 0x2202
cmp eax, 6
jne 0x460c1b
mov edx, dword [esp + 0x2c]
mov dword [edx + edi*8 + 8], 0
xor eax, eax
jmp 0x460c42
mov eax, dword [eax*4 + 0x52cfbc]
mov ebx, edi
mov edi, dword [esp + 0x2c]
mov dword [edi + ebx*8 + 8], eax
push eax
mov esi, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov edx, edi
mov edi, ebx
mov ecx, esi
add esp, 4
and eax, 0x3fffffff
mov esi, dword [esp + 0x18]
mov dword [edx + edi*8 + 0xc], eax
mov byte [edx + edi*8 + 0x12], 1
cmp byte [esp + 0x54], 1
je 0x460c60
movzx edx, byte [esp + 0x54]
call fcn.00457070
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x24]
jmp 0x4614f8
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
jmp 0x460c86
xor ecx, ecx
jmp 0x461202
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov esi, eax
jmp 0x460e07
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x40]
bswap eax
test eax, eax
je 0x46195e
lea eax, [esp + 0xe0]
push str.incremental_vacuum_enabled_with_a_max_rootpage_of_zero
push eax
call fcn.00472620
add esp, 8
jmp 0x46195e
xor eax, eax
xor edx, edx
div dword [ecx + 8]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
lea eax, [eax + edx*8]
add eax, 4
mov edx, dword [ecx]
mov ecx, 0x53e0d4
test edx, edx
je 0x460d2c
mov eax, dword [eax]
dec edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
mov ebx, dword [eax + 0xc]
xor edx, edx
jmp 0x460d03
movzx eax, byte [eax + 0x52a853]
cmp al, byte [ecx + 0x52a853]
jne 0x460d15
inc edx
movzx eax, byte [ebx + edx]
movzx ecx, byte [edi + edx]
cmp al, cl
jne 0x460cf3
test eax, eax
jne 0x460d02
jmp 0x460d28
mov edx, dword [esp + 0x24]
test edx, edx
mov eax, dword [esp + 0x20]
jne 0x460ce1
mov ecx, 0x53e0d4
jmp 0x460d2c
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 8]
test eax, eax
mov edi, dword [esp + 0x10]
je 0x45b29c
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x45b29c
cmp ecx, esi
je 0x460e77
mov eax, ecx
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x45b29c
cmp ecx, esi
jne 0x460d4e
add eax, 0x20
jmp 0x460e7a
lea eax, [edx + eax*8]
add eax, 0x10
mov word [eax], 1
jmp case.0x4578ee.89
inc ecx
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x70], 0xffffffff
lea edx, [esp + 0x70]
call fcn.0044db50
xor eax, eax
cmp eax, dword [esp + 0x74]
sbb eax, eax
or eax, dword [esp + 0x70]
jmp 0x45ae6c
mov eax, dword [ebx + 0x40]
mov eax, dword [eax]
cmp dword [eax], 2
mov ecx, dword [esp + 0x24]
jl 0x4601a3
cmp dword [eax + 0x34], 0
jne 0x46019f
jmp 0x4601a3
dec dword [esi + 0x18]
je 0x4602a8
dec dword [edi + 0xc8]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x4578bc
jmp 0x46242e
xorpd xmm0, xmm0
xorpd xmm1, xmm1
cmpneqsd xmm1, xmm0
movd eax, xmm1
and eax, 1
mov ecx, dword [esp + 0xc]
test eax, eax
je case.0x4578ee.89
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x5c]
lea eax, [edx + eax*4]
add eax, 0xffffffec
mov dword [esp + 0x14], eax
jmp case.0x4578ee.89
xorpd xmm0, xmm0
xorpd xmm1, xmm1
cmpneqsd xmm1, xmm0
movd edx, xmm1
and edx, 1
lea eax, [esi + esi*4]
mov ebx, dword [esp + 0x28]
lea ecx, [ebx + eax*8]
mov esi, dword [esp + 0x14]
xor edx, dword [esi + 0x10]
test byte [ebx + eax*8 + 0x11], 0x90
je 0x460e5f
mov eax, edx
sar eax, 0x1f
push eax
call fcn.00457030
add esp, 4
jmp 0x4578c0
lea eax, [ebx + eax*8]
add eax, 0x10
mov dword [ecx], edx
sar edx, 0x1f
mov dword [ecx + 4], edx
mov word [eax], 4
jmp 0x4578c0
add eax, 0x38
mov ecx, dword [esi + 0x20]
mov dword [eax], ecx
jmp 0x45b29c
mov ecx, esi
push ebx
call fcn.0043f5f0
add esp, 4
jmp 0x4614a1
mov ecx, dword [edx + 0x34]
mov edi, edx
push esi
call fcn.00469e60
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x460ee9
call fcn.00444500
jmp 0x460f27
mov edi, dword [esi + 0x24]
mov ecx, edi
call fcn.004514d0
add edi, 0x20
mov esi, edi
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movq xmm0, qword [esi]
movq qword [ebx], xmm0
jmp case.0x4578ee.89
mov al, 1
jmp 0x46159a
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
add edx, ebx
mov ebx, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [ebx + 0x48]
add esp, 0x10
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x24]
jmp 0x45d899
mov ecx, ebx
call fcn.00462dc0
mov edx, eax
xor eax, eax
test edx, edx
jne 0x46202f
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.004514d0
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x48], eax
movzx eax, word [esi + 0x30]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x3c]
sub ecx, dword [esi + 0x28]
add esi, 0x28
xor edx, edx
test ecx, ecx
cmovg edx, ecx
cmp ecx, eax
cmovge edx, eax
mov dword [ebx + 0x4c], edx
mov eax, dword [esi]
mov dword [ebx + 0x44], eax
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0x1c]
mov dword [ebx + 0x18], ecx
movzx eax, byte [eax]
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
mov esi, 1
test al, al
mov edx, dword [esp + 0x3c]
jns 0x460fb7
mov ecx, dword [ebx + 0x44]
mov edx, dword [esp + 0x20]
call fcn.00462e70
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
movzx esi, al
mov dword [esp + 0x24], esi
mov dword [ebx + 0x2c], esi
mov word [ebx + 0x36], 0
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
cmp dword [ebx + 0x4c], eax
mov esi, dword [esp + 0x18]
jae 0x461002
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x4c], 0
mov eax, dword [ecx]
cmp eax, 0x18003
mov ecx, dword [esp + 0xc]
ja 0x46142a
cmp eax, dword [ebx + 0x48]
ja 0x46142a
xor eax, eax
jmp 0x45f183
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x10], edi
movzx ebx, ax
mov esi, dword [ecx + ebx*4]
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x44]
add edi, eax
add dword [esp + 0x48], eax
mov dword [esp + 0x3c], edx
movzx ecx, byte [edi]
mov eax, dword [esp + 0x34]
mov dword [eax + ebx*4 + 0x50], ecx
test cl, cl
js 0x46105d
inc edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], ecx
movzx eax, byte [ecx + 0x52c7a9]
xor ecx, ecx
mov edi, dword [esp + 0x2c]
jmp 0x461107
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
test al, al
mov dword [esp + 0x24], edi
js 0x461078
and ecx, 0x7f
shl ecx, 7
or ecx, eax
mov al, 2
jmp 0x4610d4
mov edx, ecx
movzx ecx, byte [edi + 2]
test cl, cl
js 0x46109b
shl edx, 0xe
or edx, ecx
mov ecx, edx
and ecx, 0x1fc07f
and eax, 0x7f
shl eax, 7
or ecx, eax
mov al, 3
jmp 0x4610d0
mov dword [esp + 0xe4], 0xffffffff
mov dword [esp + 0xe0], 0xffffffff
lea edx, [esp + 0xe0]
mov ecx, edi
call fcn.0044db50
cmp dword [esp + 0xe4], 0
jne 0x461134
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x3c]
movzx eax, al
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov dword [eax + ebx*4 + 0x50], ecx
cmp ecx, 0x80
mov edi, dword [esp + 0x2c]
jb 0x4610fa
mov dword [esp + 0x38], ecx
lea eax, [ecx - 0xc]
shr eax, 1
jmp 0x461105
mov dword [esp + 0x38], ecx
movzx eax, byte [ecx + 0x52c7a9]
xor ecx, ecx
add esi, eax
adc edi, ecx
mov dword [esp + 0x2c], edi
lea eax, [ebx + 1]
mov ecx, dword [esp + 0x20]
mov dword [ecx + ebx*4 + 4], esi
cmp ebx, edx
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
jae 0x461158
mov ebx, eax
cmp edi, dword [esp + 0x48]
jb 0x461033
jmp 0x461158
movzx eax, al
add edi, eax
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x34]
mov dword [eax + ebx*4 + 0x50], 0xffffffff
mov ecx, 0xffffffff
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
jmp 0x4610ef
cmp edi, dword [esp + 0x48]
jae 0x461177
xor ecx, ecx
mov ebx, dword [esp + 0x34]
cmp dword [ebx + 0x48], esi
sbb ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x44]
jb 0x46118a
jmp 0x4611b4
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
ja 0x46118a
xor esi, dword [ebx + 0x48]
or esi, dword [esp + 0x2c]
je 0x4611b4
mov eax, dword [esp + 0x20]
cmp dword [eax], 0
je 0x4611aa
cmp dword [ebx + 0x44], 0
je 0x461401
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x46142a
xor eax, eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x24], ecx
mov word [ebx + 0x36], ax
mov ecx, dword [esp + 0x24]
sub ecx, edi
mov dword [ebx + 0x2c], ecx
cmp dword [ebx + 0x44], 0
je 0x4611d1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x4611fe
test byte [esp + 0x81], 0x90
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jne 0x4611ed
cmp dword [esp + 0x88], 0
je 0x4611fe
lea ecx, [esp + 0x70]
call fcn.00455c20
mov edx, dword [esp + 0x3c]
movzx eax, word [ebx + 0x36]
mov ecx, dword [esp + 0x38]
movzx eax, ax
cmp edx, eax
jae 0x46133e
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
lea ebx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea ecx, [eax + ebx*8]
test byte [eax + ebx*8 + 0x11], 0x90
mov dword [esp + 0x24], ecx
je 0x46123a
mov ecx, dword [esp + 0x24]
call fcn.00455c60
mov eax, dword [esp + 0x28]
lea eax, [eax + ebx*8]
add eax, 0x10
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x34]
mov eax, dword [edx + 0x4c]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
cmp eax, dword [ebx + ecx*4 + 4]
jae 0x4612bd
movzx eax, byte [esp + 0x54]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
mov byte [edx + ebx*8 + 0x12], al
mov eax, dword [esp + 0x14]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x4612a4
mov edx, dword [esp + 0x38]
cmp edx, 0xc
setae cl
test dl, 1
sete dl
test cl, dl
jne 0x4613e3
and eax, 0x80
test ax, ax
jne 0x4613e3
mov eax, dword [esp + 0x38]
cmp eax, 0x80
jb 0x461381
add eax, 0xfffffff4
shr eax, 1
jmp 0x46138c
mov eax, dword [esp + 0x2c]
mov ecx, dword [edx + 0x44]
mov edx, dword [esp + 0x3c]
add ecx, dword [ebx + edx*4]
mov edx, dword [esp + 0x38]
cmp edx, 0xb
jbe 0x4613ec
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edi
lea edi, [edx - 0xc]
shr edi, 1
mov esi, dword [esp + 0x28]
mov ebx, eax
mov dword [esi + eax*8 + 0xc], edi
movzx eax, byte [esp + 0x54]
mov byte [esi + ebx*8 + 0x12], al
lea edx, [edi + 2]
cmp dword [esi + ebx*8 + 0x18], edx
jge 0x461441
mov eax, dword [esp + 0x18]
cmp edi, dword [eax + 0x78]
jg 0x461c4b
mov eax, dword [esp + 0x48]
mov word [eax], 1
mov ecx, dword [esp + 0x24]
push 0
call fcn.00455dd0
add esp, 4
test eax, eax
jne 0x462074
mov esi, dword [esp + 0x28]
mov eax, dword [esi + ebx*8 + 8]
jmp 0x461449
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [esp + 0x28]
lea ecx, [esi + eax*8]
cmp byte [edx + 1], 0xf6
jne 0x461367
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.004626e0
jmp 0x460e57
test byte [esi + eax*8 + 0x11], 0x90
jne 0x45c103
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*8]
add eax, 0x10
jmp 0x45c07a
movzx eax, byte [eax + 0x52c7a9]
test eax, eax
je 0x4613e3
mov dword [esp + 0x10], edi
cmp eax, dword [esi + 0x78]
jg 0x461c4b
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x24]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov edx, dword [esi + edx*4]
mov esi, dword [esp + 0x24]
push esi
push eax
call fcn.00463050
add esp, 8
test eax, eax
jne 0x46232b
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + ebx*8 + 8]
mov edx, dword [esp + 0x38]
push esi
call fcn.00462f30
add esp, 4
mov eax, dword [esp + 0x48]
and byte [eax + 1], 0xbf
jmp 0x4578b4
mov ecx, 0x52aaeb
mov edx, dword [esp + 0x38]
push dword [esp + 0x24]
call fcn.00462f30
mov ecx, dword [esp + 0x10]
add esp, 4
jmp case.0x4578ee.89
test byte [esp + 0x81], 0x90
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jne 0x46141d
cmp dword [esp + 0x88], 0
je 0x46142a
lea ecx, [esp + 0x70]
call fcn.00455c20
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x4623c4
lea eax, [eax + eax*4]
jmp 0x460e11
mov eax, dword [esi + ebx*8 + 0x20]
mov dword [esi + ebx*8 + 8], eax
push edi
push dword [esp + 0x24]
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esi + ebx*8 + 8]
mov byte [eax + edi], 0
mov eax, dword [esi + ebx*8 + 8]
mov byte [edi + eax + 1], 0
mov eax, dword [esp + 0x38]
and eax, 1
movzx eax, word [eax + eax + 0x52c77c]
mov ecx, dword [esp + 0x48]
mov word [ecx], ax
jmp 0x4578bc
cmp edx, 0x81
mov edx, ebx
sbb edx, 0
jb 0x4614af
mov ecx, esi
mov edx, eax
push ebx
push dword [esp + 0x24]
call fcn.0043f6a0
add esp, 8
test eax, eax
je 0x46155f
mov ecx, dword [esi + 0x17c]
pxor xmm0, xmm0
movdqu xmmword [eax + ecx*4], xmm0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x194], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x38]
mov eax, dword [edi + 8]
push eax
call edx
add esp, 4
mov edx, eax
test eax, eax
je 0x46150d
mov ebx, edx
test edi, edi
je 0x4614f0
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x30]
call fcn.00455830
mov edx, ebx
mov dword [esp + 0x1c], 0
test edx, edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
je case.0x4578ee.89
jmp 0x46244a
mov ecx, dword [esi + 0x1f4]
mov edx, dword [esi + 0x17c]
mov ebx, esi
mov esi, dword [esi + 0x194]
lea eax, [edx + 1]
mov dword [ebx + 0x17c], eax
mov eax, dword [ebx + 0x1f8]
mov dword [esi + edx*4], edi
inc dword [edi + 0xc]
add eax, ecx
je 0x461569
mov ecx, dword [esp + 0x1c]
cmp dword [ecx + 0x50], 0
mov esi, dword [esp + 0x18]
mov ebx, 0
je 0x4614e2
mov dword [edi + 0x14], eax
dec eax
push eax
push dword [edi + 8]
call dword [ecx + 0x50]
add esp, 8
mov ebx, eax
jmp 0x4614e2
mov edx, 7
jmp 0x4614dc
mov esi, dword [esp + 0x18]
xor ebx, ebx
jmp 0x4614e2
cmp dword [eax + 0x68], 0
je 0x4617ec
call fcn.00446440
jmp 0x4617d1
mov edi, ecx
call fcn.0044f0a0
cmp byte [edi + 9], 0
mov edi, dword [esp + 0x48]
sete al
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + 0x38]
mov edx, dword [ecx + 0x34]
test al, al
mov ecx, dword [esp + 0x1c]
jne 0x4615b9
dec dword [ecx + 0xc]
jne 0x4615b9
mov ebx, edx
call fcn.0044f130
mov edx, ebx
bswap edx
mov dword [esp + 0x3c], edx
cmp edx, esi
jne 0x4615e9
mov esi, dword [esp + 0x38]
mov ecx, dword [esi + 0x34]
mov edx, esi
push dword [esi + 4]
call fcn.00469e60
add esp, 4
mov ebx, eax
mov ecx, dword [esi + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x461604
call fcn.00444500
jmp 0x461646
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x4616d7
call fcn.00444500
jmp 0x461724
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov edi, dword [edx + 0xac]
imul edi, eax
mul dword [edx + 0xa8]
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
mov edi, dword [esp + 0x58]
add esp, 0x10
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x20], 0
mov edx, ebx
test ebx, ebx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
jne 0x45d89d
mov dword [esp + 0x24], eax
mov eax, dword [0x53c870]
xor edx, edx
div dword [edi + 0x24]
mov edx, dword [esp + 0x3c]
dec edx
mov ebx, 0xfffffffe
mov dword [esp + 0x20], eax
sub ebx, eax
jmp 0x46168f
cmp edx, eax
jne 0x4617a1
dec edx
lea eax, [ebx + edx]
cmp eax, 0xffffffff
je 0x46168e
xor eax, eax
cmp edx, 2
jb 0x461686
mov eax, 0xcccccccd
mov ecx, edx
mul dword [edi + 0x28]
mov edi, edx
shr edi, 2
inc edi
lea esi, [ecx - 2]
mov eax, esi
xor edx, edx
div edi
mov edi, dword [esp + 0x48]
sub esi, edx
lea eax, [esi + 1]
xor edx, edx
cmp eax, dword [esp + 0x20]
sete dl
lea eax, [edx + esi]
add eax, 2
mov edx, ecx
mov esi, dword [esp + 0x18]
jmp 0x461686
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov eax, dword [edx + 0x40]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
mov dword [esp + 0x38], eax
add edx, ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [eax]
push dword [ecx + 4]
push edx
push dword [esp + 0x40]
push eax
call dword [ebx + 0x48]
add esp, 0x10
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [edi]
push 0
push ecx
mov ebx, dword [esp + 0x44]
push ebx
push eax
call dword [eax + 0xdc]
add esp, 0x10
test eax, eax
jne 0x45d88f
mov eax, dword [esp + 0x70]
mov edx, dword [eax + 8]
cmp dword [edx + 4], ebx
je 0x461777
mov ecx, dword [eax + 4]
mov dword [edx + 0x38], ecx
mov dword [edx + 0x48], eax
mov dword [edx + 0x34], edi
mov dword [edx + 4], ebx
xor eax, eax
cmp ebx, 1
mov ecx, 0x64
cmovne ecx, eax
mov byte [edx + 9], cl
mov ecx, edi
mov ebx, edx
push 0
push esi
push 0
push 1
call fcn.00452840
add esp, 0x10
mov dword [esp + 0x24], eax
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x4617f6
call fcn.00444500
jmp 0x461834
mov edi, dword [esp + 0x1c]
mov ecx, edi
mov eax, edx
mov edx, 4
push eax
call fcn.0042ed50
add esp, 4
mov edx, eax
mov ecx, edi
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0xc]
jmp 0x45d89d
call fcn.004505c0
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x30]
mov eax, dword [eax + 0x38]
bswap ecx
mov dword [eax + 0x1c], ecx
mov eax, dword [esp + 0x1c]
jmp 0x45e517
mov dword [esp + 0x1c], 0
jmp 0x4617d5
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
add edx, ebx
mov ebx, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [ebx + 0x48]
add esp, 0x10
mov edx, dword [esp + 0x24]
test edx, edx
jne 0x45d891
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [edi]
push 0
lea ecx, [esp + 0x74]
push ecx
push dword [esp + 0x44]
push eax
call dword [eax + 0xdc]
add esp, 0x10
test eax, eax
jne 0x45d88f
mov eax, dword [esp + 0x70]
mov esi, dword [eax + 8]
mov ecx, dword [esp + 0x3c]
cmp dword [esi + 4], ecx
jne 0x46187c
mov ecx, dword [esi + 0x34]
jmp 0x4618a5
mov ecx, dword [eax + 4]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x48], eax
mov edx, dword [esp + 0x48]
mov dword [esi + 0x34], edx
mov ecx, dword [esp + 0x3c]
mov dword [esi + 4], ecx
xor eax, eax
cmp ecx, 1
mov ecx, 0x64
cmovne ecx, eax
mov byte [esi + 9], cl
mov ecx, edx
mov edx, esi
push dword [esp + 0x3c]
call fcn.00469e60
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x4618c7
call fcn.00444500
jmp 0x461905
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x80]
mov eax, dword [edx + 0x90]
mov dword [ecx + 0x10], eax
mov dword [edx + 0x90], ecx
mov esi, dword [edx + 0x40]
mov eax, dword [ecx + 0x18]
dec eax
mov ebx, dword [edx + 0xac]
imul ebx, eax
mul dword [edx + 0xa8]
add edx, ebx
mov ebx, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [ebx + 0x48]
add esp, 0x10
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
test edx, edx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
jne 0x45d89d
jmp 0x461666
mov edx, dword [edi + eax*4 + 4]
cmp ecx, edx
cmovbe ecx, edx
inc eax
cmp esi, eax
jne 0x46192a
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x34]
bswap eax
cmp ecx, eax
je 0x46195e
lea edx, [esp + 0xe0]
push eax
push ecx
push str.max_rootpage___d__disagrees_with_header___d_
push edx
call fcn.00472620
add esp, 0x10
mov eax, dword [ebx + 4]
and dword [eax + 0x20], 0xffdfffff
mov eax, dword [esp + 0xf0]
test esi, esi
jle 0x461a8c
test eax, eax
je 0x461a8c
mov edi, 1
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + edi*4]
test esi, esi
je 0x461a41
cmp byte [ebx + 0x11], 0
je 0x461a15
cmp esi, 1
je 0x461a15
cmp dword [esp + 0x34], 0
je 0x461a15
mov byte [esp + 0x134], 0xff
mov dword [esp + 0x138], 0xffffffff
mov ecx, dword [esp + 0xe0]
lea eax, [esp + 0x138]
lea ebx, [esp + 0x134]
mov edx, esi
push eax
push ebx
call fcn.00451b00
add esp, 8
test eax, eax
je 0x461a52
cmp eax, 0xc0a
je 0x4619e9
cmp eax, 7
jne 0x4619f4
mov dword [esp + 0xf8], 1
lea eax, [esp + 0xe0]
push esi
push str.Failed_to_read_ptrmap_key_d
push eax
call fcn.00472620
add esp, 0xc
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov esi, dword [eax + edi*4]
lea eax, [esp + 0x138]
lea ecx, [esp + 0xe0]
mov edx, esi
mov esi, 0x7fffffff
push esi
mov esi, 0xffffffff
push esi
push eax
call fcn.00472740
add esp, 0xc
mov eax, dword [esp + 0xf0]
cmp edi, dword [esp + 0x2c]
jge 0x461a8c
inc edi
test eax, eax
jne 0x461984
jmp 0x461a8c
movzx eax, byte [esp + 0x134]
mov ecx, dword [esp + 0x138]
cmp eax, 1
mov ebx, dword [esp + 0x20]
jne 0x461a6e
test ecx, ecx
je 0x461a0e
lea edx, [esp + 0xe0]
push ecx
push eax
push 0
push 1
push esi
push str.Bad_ptr_map_entry_key_d_expected__d__d__got__d__d_
push edx
call fcn.00472620
add esp, 0x1c
jmp 0x461a0e
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x68]
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x44]
mov dword [ecx + 0x20], edx
cmp dword [esp + 0x34], 0
je 0x45eab9
cmp dword [esp + 0xec], 0
je 0x45eab9
test eax, eax
je 0x45eab9
mov esi, 0xffffffff
lea ebx, [esi + 2]
mov eax, dword [esp + 0xe8]
mov edi, ebx
shr edi, 3
mov ecx, ebx
and cl, 7
mov edx, 1
shl edx, cl
movzx eax, byte [eax + edi]
mov ecx, ebx
and ecx, 7
bt eax, ecx
jb 0x461b83
xor eax, eax
cmp ebx, 2
mov dword [esp + 0x24], edx
jb 0x461b4a
mov eax, 0xcccccccd
mov ecx, dword [esp + 0x20]
mul dword [ecx + 0x28]
mov ecx, edx
shr ecx, 2
inc ecx
mov eax, esi
xor edx, edx
div ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], esi
mov eax, dword [0x53c870]
xor edx, edx
mov ecx, dword [esp + 0x20]
div dword [ecx + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
neg ecx
add ecx, esi
inc ecx
xor edx, edx
cmp ecx, dword [esp + 0x34]
sete dl
add eax, edx
add eax, 2
cmp ebx, eax
jne 0x461b5c
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x11], 0
jne 0x461bf2
lea eax, [esp + 0xe0]
push ebx
push str.Page__d_is_never_used
push eax
call fcn.00472620
add esp, 0xc
mov eax, dword [esp + 0xe8]
movzx eax, byte [eax + edi]
test dword [esp + 0x24], eax
je 0x461bf2
xor eax, eax
cmp ebx, 2
jb 0x461bce
mov eax, 0xcccccccd
mov ecx, dword [esp + 0x20]
mul dword [ecx + 0x28]
mov ecx, edx
shr ecx, 2
inc ecx
mov eax, esi
xor edx, edx
div ecx
mov ecx, edx
mov dword [esp + 0x24], esi
mov eax, dword [0x53c870]
xor edx, edx
mov edi, dword [esp + 0x20]
div dword [edi + 0x24]
mov edi, dword [esp + 0x24]
sub edi, ecx
neg ecx
add ecx, esi
inc ecx
xor edx, edx
cmp ecx, eax
sete dl
lea eax, [edx + edi]
add eax, 2
cmp ebx, eax
jne 0x461bf2
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x11], 0
je 0x461bf2
lea eax, [esp + 0xe0]
push ebx
push str.Pointer_map_page__d_is_referenced
push eax
call fcn.00472620
add esp, 0xc
lea eax, [esi + 3]
cmp eax, dword [esp + 0xec]
ja 0x45eab9
inc esi
cmp dword [esp + 0xf0], 0
jne 0x461ac3
jmp 0x45eab9
mov edx, eax
jmp 0x46244a
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x45774d
mov edx, eax
jmp 0x46202f
mov esi, dword [esp + 0x18]
jmp 0x46207c
mov esi, dword [esp + 0x18]
mov ebx, eax
mov ecx, dword [esp + 0x68]
call fcn.004550a0
jmp 0x461c9b
push str.string_or_blob_too_big
push dword [esp + 0x34]
call fcn.00455690
add esp, 8
mov edx, 0x12
jmp 0x46232d
push 0x52b213
push 0x1723a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov edx, 0xb
jmp 0x46232d
mov ebx, eax
mov ecx, esi
call fcn.004550a0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x15c]
call fcn.004550a0
mov edx, ebx
jmp 0x46244a
mov edx, eax
jmp 0x46202b
mov esi, dword [esp + 0x18]
mov dword [esi + 0xc8], edi
mov edx, 6
mov edi, dword [esp + 0x10]
jmp 0x46244a
and eax, 0x3f
movzx eax, byte [eax + 0x52a9ea]
push dword [ebx]
mov edx, dword [esp + 0x24]
push dword [edx]
push dword [ecx*4 + 0x53c9cc]
push dword [eax*4 + 0x52ca7c]
push str.cannot_store__s_value_in__s_column__s._s
push dword [esp + 0x44]
call fcn.00455690
add esp, 0x18
mov edx, 0xc13
jmp 0x46232d
mov edx, 0x204
jmp 0x46202f
push 0x52b213
push 0x14ec8
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov edx, 0xb
jmp 0x46202f
mov esi, edx
xor eax, eax
test ecx, ecx
je 0x462047
mov ebx, dword [ecx + 0x10]
mov edx, ebx
not edx
test edx, 0x202
jne 0x462038
cmp byte [ecx + 0x12], 1
jne 0x462038
mov eax, dword [ecx + 8]
jmp 0x462047
mov ecx, dword [ebx]
mov esi, edx
call fcn.00455340
mov edx, esi
jmp 0x46232d
mov ebx, dword [esp + 0x30]
mov dword [ebx + 0x24], eax
movzx ecx, byte [esi + 8]
mov byte [ebx + 0x92], cl
test eax, eax
mov ecx, esi
mov esi, dword [esp + 0x18]
jne 0x461db2
jmp 0x4620cb
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x24], eax
movzx eax, byte [esi + 8]
mov byte [ecx + 0x92], al
mov ecx, esi
mov esi, dword [esp + 0x18]
movzx eax, word [ecx + 2]
test eax, eax
je 0x462089
push dword [eax*4 + 0x52c700]
push str._s_constraint_failed
mov ebx, dword [esp + 0x38]
push ebx
call fcn.00455690
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x4620a2
push eax
mov eax, dword [esp + 0xdc]
push dword [eax]
push str._z:__s
push esi
call fcn.004346d0
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov edx, dword [esp + 0xd8]
mov dword [edx], eax
jmp 0x4620a2
push edi
push str.no_such_savepoint:__s
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov edx, 1
jmp 0x46232d
mov eax, dword [esp + 0xd8]
mov edx, dword [eax]
test edx, edx
mov esi, dword [esp + 0x18]
je 0x461e44
mov ecx, esi
call fcn.0043f4f0
mov ecx, esi
mov edx, str.database_schema_has_changed
call fcn.00431530
mov ecx, dword [esp + 0xd8]
mov dword [ecx], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 4]
mov ecx, edx
shl ecx, 4
mov eax, dword [eax + ecx + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x70]
mov esi, dword [esp + 0x30]
je 0x461e81
mov ecx, dword [esp + 0x18]
call fcn.004634f0
movzx eax, byte [esi + 0x96]
and al, 0xec
or al, 1
mov byte [esi + 0x96], al
mov eax, 0x11
jmp 0x46232b
push 0x52b213
push 0x16d48
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov edx, 0xb
jmp 0x46244a
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x18]
movzx ecx, byte [esi + 0x55]
cmp edx, ecx
jne 0x462229
mov ebx, esi
test eax, eax
mov eax, str.cannot_commit___no_transaction_is_active
mov ecx, str.cannot_rollback___no_transaction_is_active
cmove ecx, eax
test edx, edx
mov eax, str.cannot_start_a_transaction_within_a_transaction
cmovne eax, ecx
mov esi, 1
push eax
push dword [esp + 0x34]
call fcn.00455690
add esp, 8
mov edx, esi
mov esi, ebx
jmp 0x46244a
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x1c]
or eax, 1
add eax, 2
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x28]
lea eax, [edx + eax*8]
mov dword [esi + 0x78], eax
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x57], 0
jne 0x462080
test byte [esi + 0x5e], 4
je 0x461f67
push 0
push dword [esp + 0x34]
push dword [esi + 0xd8]
push 4
call dword [esi + 0xd4]
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
inc eax
mov edx, dword [esp + 0x30]
mov dword [edx + 0x20], eax
mov dword [esp + 0x28], 0x64
jmp 0x462670
mov esi, dword [esp + 0x30]
mov dword [esi + 0x24], 0x313
mov byte [esi + 0x92], 2
push str.FOREIGN_KEY_constraint_failed
push esi
call fcn.00455690
add esp, 8
cmp byte [esi + 0x94], 0
mov eax, 1
mov edx, 0x313
cmovns edx, eax
jmp 0x46202f
mov edx, eax
mov esi, dword [esp + 0x18]
mov edi, ebx
jmp 0x46244a
mov eax, dword [esp + 0x30]
mov byte [eax + 0x92], 2
mov edx, 6
jmp 0x46244a
push 0x52b213
push 0x12976
jmp 0x461c70
mov edx, ebx
jmp 0x46202f
mov ecx, esi
call fcn.0042ee00
cmp ebx, 7
je 0x46207c
mov edx, ebx
jmp 0x46244a
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x24], 0
mov edx, 7
jmp 0x46232d
mov edi, dword [esp + 0x10]
jmp 0x46244a
mov edx, ebx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x46244a
test bl, 1
jne 0x462047
mov edx, 1
call fcn.00456040
push eax
push 0x52a965
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov eax, dword [esp + 0x18]
mov edx, esi
mov esi, eax
jmp 0x46244a
push dword [esp + 0x70]
mov eax, dword [esp + 0x20]
call dword [eax + 0x1c]
add esp, 4
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x50]
jmp 0x45774d
push dword [ecx + 0x10]
push 0x52a965
mov ebx, dword [esp + 0x38]
push ebx
call fcn.00455690
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov eax, ecx
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
push dword [ebx + 0x7c]
push dword [ebx + 0xc4]
push eax
push str.abort_at__d_in___s_:__s
push dword [ecx + 4]
call fcn.004287c0
add esp, 0x14
mov ecx, ebx
call fcn.00453980
cmp eax, 5
jne 0x4623aa
mov dword [ebx + 0x24], 5
mov dword [esp + 0x28], 5
jmp 0x462666
mov edx, eax
cmp dl, 6
jne 0x46202f
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [esp + 0x38]
mov esi, edx
call fcn.00455690
mov edx, esi
add esp, 0xc
jmp 0x46202f
mov edx, 7
jmp 0x46232d
push str.too_many_levels_of_trigger_recursion
push edx
call fcn.00455690
add esp, 8
mov edx, 1
jmp 0x46244a
mov byte [ebx + 3], 0
mov dword [ebx + 0x18], 0
jmp 0x46244a
mov dword [esp + 0x28], 0x65
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x462666
and al, 0xf7
mov byte [esi + 1], al
mov esi, dword [esp + 0x18]
mov word [edi + 2], 0
mov dword [edi + 0x18], 0
mov edi, ebx
jmp 0x46244a
mov eax, dword [esp + 0x30]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x46202f
mov edx, ebx
jmp 0x46232d
cmp eax, 5
jne 0x46231a
mov al, 2
mov ecx, dword [esp + 0x30]
mov byte [ecx + 0x92], al
jmp 0x46244a
xor ecx, ecx
test eax, 0x100000
sete cl
lea eax, [ecx + ecx*2]
or eax, 8
jmp 0x46232b
mov ecx, ebx
call fcn.0042ee00
mov esi, ebx
jmp 0x46207c
cmp al, 5
mov esi, eax
mov ecx, dword [esp + 0xc]
jne 0x462329
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov edx, dword [esp + 0x30]
mov dword [edx + 0x20], eax
mov dword [esp + 0x28], esi
mov dword [edx + 0x24], esi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x462670
push str.cannot_release_savepoint___SQL_statements_in_progress
push dword [esp + 0x34]
call fcn.00455690
add esp, 8
mov edx, 5
jmp 0x46232d
test eax, eax
mov dword [esp + 0x54], edx
je 0x462385
mov ecx, esi
mov edx, 0x204
call fcn.004541f0
mov al, 1
mov byte [esi + 0x55], al
mov ebx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00453980
cmp eax, 5
jne 0x4623a3
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [ebx + 0x20], eax
mov al, 1
sub al, byte [esp + 0x54]
mov byte [esi + 0x55], al
jmp 0x4620db
mov edx, dword [esp + 0x1c]
jmp 0x46244a
mov ebx, eax
jmp 0x462293
test eax, eax
mov ebx, 0xd
cmovne ebx, eax
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov edx, ebx
jmp 0x46244a
push 0x52b213
push 0x1716d
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call fcn.004287c0
add esp, 0x14
mov edx, 0x30b
mov edi, ebx
jmp 0x46244a
push 0x52c829
push dword [esp + 0x34]
call fcn.00455690
add esp, 8
mov edx, 5
mov edi, dword [esp + 0x10]
jmp 0x46244a
mov dword [ebx + 0x20], 0
mov edx, 7
jmp 0x46232d
mov edx, esi
jmp 0x46202f
mov edx, 7
jmp 0x46202f
mov edx, eax
mov edi, ebx
jmp 0x46244a
mov edx, eax
jmp 0x462361
mov ecx, dword [esp + 0x30]
mov byte [ecx + 0x92], al
jmp 0x46244a
mov eax, esi
mov edx, eax
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x46244a
cmp esi, 5
mov eax, str.into
mov ecx, str.out_of
cmove ecx, eax
push ecx
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov edx, 1
mov esi, ebx
mov edi, dword [esp + 0x10]
jmp 0x46244a
mov edx, 0x14
jmp 0x46202f
push 0x52b213
push 0x1298d
jmp 0x461c70
test edx, edx
je 0x4623d3
cmp dword [esi + 0xc0], 0
jle 0x4623d3
mov ebx, esi
mov esi, 5
mov eax, str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x461efe
mov ecx, esi
call fcn.00454320
cmp dword [ebx + 0x24], 0
mov eax, 0x65
mov ecx, 1
cmove ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x462666
push 0x52b213
push 0x164b2
jmp 0x461ea6
mov ecx, dword [esp + 0x30]
mov edx, 1
call fcn.00454370
mov dword [esp + 0x28], eax
test eax, eax
jne 0x462666
mov eax, dword [esp + 0x54]
jmp 0x462243
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x18]
jmp 0x462666
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [ebx + 0x20], eax
mov esi, dword [esp + 0x18]
mov byte [esi + 0x55], 0
jmp 0x4620db
mov esi, dword [esp + 0x18]
mov byte [esi + 0x55], 0
jmp 0x46244a
mov esi, edi
mov edx, eax
mov edi, dword [esp + 0x10]
jmp 0x46244a
mov edi, 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov edx, 9
mov ebx, 7
cmp byte [esi + 0x57], 0
jne 0x462482
mov ebx, edx
cmp edx, 0x210a
jne 0x462482
push 0x52b213
push 0x17ace
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004287c0
add esp, 0x14
mov ebx, 0xb
mov eax, dword [esp + 0x30]
cmp dword [eax + 0x7c], 0
jne 0x4624e9
cmp ebx, 0xc0a
je 0x4624e9
mov eax, str.abort_due_to_ROLLBACK
cmp ebx, 0x204
je 0x4624d7
cmp ebx, 0x65
je 0x4624b2
cmp ebx, 0x64
jne 0x4624b9
mov eax, str.another_row_available
jmp 0x4624d7
mov eax, str.no_more_rows_available
jmp 0x4624d7
movzx ecx, bl
mov eax, str.unknown_error
cmp ecx, 0x1c
ja 0x4624d7
mov edx, 0x1410004
bt edx, ecx
jb 0x4624d7
mov eax, dword [ecx*4 + 0x5355ac]
push eax
push 0x52a965
push dword [esp + 0x38]
call fcn.00455690
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [eax + 0x24], ebx
cmp ebx, 0xc0a
je 0x46251c
mov eax, ebx
and eax, 0xfb
cmp eax, 0xa
jne 0x46251c
mov ecx, dword [esi]
mov edx, dword [ecx + 0x44]
xor eax, eax
test edx, edx
je 0x462519
push 0
push 0
push ecx
call edx
add esp, 0xc
mov dword [esi + 0x4c], eax
mov esi, edi
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x5c]
sar eax, 2
imul eax, eax, 0xcccccccd
mov edi, dword [esp + 0x30]
push dword [edi + 0x7c]
push dword [edi + 0xc4]
push eax
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.004287c0
add esp, 0x14
cmp byte [edi + 0x95], 2
jne 0x46255d
mov ecx, dword [esp + 0x30]
call fcn.00453980
cmp ebx, 0xb
mov edi, esi
je 0x4625c9
cmp ebx, 0xc0a
mov esi, dword [esp + 0x18]
jne 0x4625d7
cmp byte [esi + 0x57], 0
jne 0x4625d7
cmp byte [esi + 0x58], 0
jne 0x4625d7
mov byte [esi + 0x57], 1
cmp dword [esi + 0xc4], 0
jle 0x462593
mov dword [esi + 0x128], 1
inc dword [esi + 0x130]
mov word [esi + 0x134], 0
mov eax, dword [esi + 0x108]
test eax, eax
je 0x4625d7
push str.out_of_memory
push eax
call fcn.00434540
add esp, 8
mov eax, dword [esi + 0x108]
mov dword [eax + 0xc], 7
jmp 0x4625d7
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x55], 0
jne 0x4625d7
or byte [esi + 0x24], 2
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x50]
test al, al
je 0x46265e
movzx eax, al
shl eax, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [eax + ecx - 4]
or word [eax + 0x4e], 8
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0x1c]
or word [eax + 0x4e], 8
and byte [esi + 0x18], 0xef
cmp dword [esi + 0x38], 0
jne 0x462666
mov eax, dword [esi + 0x14]
test eax, eax
jle 0x462666
mov dword [esp + 0x10], edi
xor esi, esi
mov edi, 0xc
jmp 0x46263c
inc esi
add edi, 0x10
cmp esi, eax
jge 0x462155
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + edi]
test byte [ecx + 0x4e], 8
je 0x462630
push ecx
call fcn.00466590
add esp, 4
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
jmp 0x462630
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0xc]
nop word [eax + eax]
cmp dword [esp + 0xdc], edi
mov eax, dword [esp + 0x130]
sbb eax, ecx
jb 0x4626ad
mov eax, dword [esi + 0x170]
test eax, eax
je 0x4626ad
add edi, dword [esi + 0x178]
adc ecx, 0
push dword [esi + 0x174]
mov ebx, ecx
call eax
mov ecx, ebx
add esp, 4
test eax, eax
je 0x462670
jmp 0x462438
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x30]
add dword [ecx + 0xb0], eax
cmp dword [ecx + 0x9c], 0
je 0x4626cc
call fcn.004556d0
mov eax, dword [esp + 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret