Function at 0x497101
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa80
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, eax
xor edx, 7
or edx, ecx
je 0x499851
mov edx, eax
xor edx, 6
or edx, ecx
je 0x499851
mov edx, eax
xor edx, 5
or edx, ecx
je 0x499868
xor eax, 4
or eax, ecx
push 3
pop esi
jne 0x4986cd
lea eax, [ebx + 8]
mov dword [esp + 0x24], eax
mov ecx, 0x88
lea eax, [esp + 0xd0]
lea edi, [eax + ecx]
lea eax, [esp + 0x240]
lea eax, [eax + ecx]
mov dword [esp + 0x74], eax
lea eax, [ebx + 0x58]
mov dword [esp + 0x1c], eax
lea eax, [ebx + 0xc]
mov dword [esp + 0x44], eax
lea eax, [ebx + 0x6c]
mov dword [esp + 0x58], eax
lea eax, [ebx + 0x60]
mov dword [esp + 0x10], eax
mov ebx, dword [ebp + 0xc]
lea ecx, [esp + 0x3f0]
mov edx, dword [esp + 0x1c]
push dword [ebx]
call fcn.004a1fcf
pop eax
movzx ebx, byte [esp + 0x3f0]
cmp ebx, 5
jne 0x49932d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov dword [ecx], 2
cmp eax, 2
je 0x49720a
mov dword [esp + 0x900], eax
mov edx, dword [esp + 0x44]
movups xmm0, xmmword [edx + 0x2c]
lea eax, [esp + 0x904]
movups xmmword [eax + 0x2c], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [eax + 0x20], xmm0
movdqu xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
movups xmmword [eax + 0x10], xmm1
movdqu xmmword [eax], xmm0
lea edx, [esp + 0x900]
mov ebx, dword [ebp + 0xc]
push ebx
call fcn.0047a77a
pop eax
jmp 0x497190
lea ecx, [esp + 0x578]
mov edx, dword [esp + 0x58]
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.0047b460
pop eax
mov eax, dword [esp + 0x578]
mov ecx, eax
and cl, 7
cmp cl, 3
mov ebx, dword [ebp + 8]
je 0x499680
cmp eax, 4
je 0x499684
push 0x98
lea eax, [esp + 0x57c]
push eax
lea eax, [esp + 0x6b8]
push eax
call fcn.004f7e80
add esp, 0xc
lea eax, [esp + 0x610]
movq xmm0, qword [eax]
movq qword [esp + 0x60], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
cmp dword [esp + 0x60], 0
mov eax, dword [esp + 0x64]
je 0x4972ab
test eax, eax
je 0x49992c
mov esi, dword [esp + 0x68]
test esi, esi
lea eax, [esp + 0x68]
cmovne esi, eax
mov ecx, esi
mov edx, 0x53ec50
call fcn.00442a76
mov eax, dword [esi]
mov ecx, 0x88
jmp 0x4972d3
test eax, eax
je 0x49992c
mov esi, dword [esp + 0x68]
test esi, esi
lea eax, [esp + 0x68]
cmovne esi, eax
mov ecx, esi
mov edx, 0x53ec50
call fcn.00442a76
mov eax, dword [esi]
mov ecx, 0xb8
add eax, ecx
mov eax, dword [eax]
test al, 4
jne 0x4986b0
push 0x98
lea esi, [esp + 0x6b4]
push esi
lea eax, [esp + 0xd8]
push eax
call fcn.004f7e80
add esp, 0xc
mov eax, 0x88
push eax
push esi
lea esi, [esp + 0x248]
push esi
call fcn.004f7e80
add esp, 0xc
mov dword [esp + 4], edi
movups xmm0, xmmword [edi]
mov edi, dword [esp + 0x74]
movups xmmword [edi], xmm0
mov eax, 0x88
push eax
lea eax, [esp + 0x6b4]
push eax
lea eax, [esp + 0x628]
push eax
call fcn.004f7e80
add esp, 0xc
movups xmm0, xmmword [edi]
movaps xmmword [esp + 0x210], xmm0
mov ecx, esi
mov edx, str.keep_aliveHTTP_1.1_100_Continue_r_n_r_ninternal_error:_entered_unreachable_code:_poll_read_body_invalid_state:
push 0xa
call fcn.0043e186
pop eax
lea ecx, [esp + 0x3f0]
mov edx, esi
push 0x528f7c
call fcn.0043f863
pop eax
mov ecx, esi
mov edx, str.proxy_connection
push 0x10
call fcn.0043e186
pop eax
lea ecx, [esp + 0xe0]
mov edx, esi
push 0x528f9c
call fcn.0043f863
pop eax
movups xmm0, xmmword [esp + 0x3f0]
movaps xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [0x528fac]
lea eax, [esp + 0xd0]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x528ed8]
movups xmmword [eax + 0x30], xmm0
movdqu xmm0, xmmword [0x528fbc]
movdqu xmmword [eax + 0x40], xmm0
xor esi, esi
cmp esi, 0x50
je 0x4973fc
lea eax, [esp + esi]
add eax, 0xd0
lea edi, [esp + 0x240]
mov ecx, edi
lea edx, [esp + 0x620]
push eax
call fcn.00442fe5
pop eax
mov ecx, edi
call fcn.0043f891
add esi, 0x10
jmp 0x4973cc
movups xmm0, xmmword [0x528fcc]
movaps xmmword [esp + 0x240], xmm0
lea edi, [esp + 0x620]
mov ecx, edi
lea esi, [esp + 0x240]
mov edx, esi
call fcn.00431c37
test eax, eax
je 0x497466
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push 8
push str.trailers
call fcn.00417eaa
pop ecx
pop edx
test al, al
jne 0x497466
movups xmm0, xmmword [0x528fcc]
movaps xmmword [esp + 0x3f0], xmm0
mov ecx, esi
mov edx, edi
lea eax, [esp + 0x3f0]
push eax
call fcn.00443326
pop eax
mov ecx, esi
call fcn.0043f891
movdqu xmm0, xmmword [0x540b90]
movdqa xmmword [esp + 0x240], xmm0
lea ecx, [esp + 0x350]
mov edx, edi
push esi
call fcn.00443326
pop eax
cmp byte [esp + 0x360], 2
je 0x497530
movdqu xmm0, xmmword [esp + 0x350]
movdqa xmmword [esp + 0x4a0], xmm0
mov eax, dword [esp + 0x360]
mov dword [esp + 0x4b0], eax
mov ecx, dword [esp + 0x4a4]
mov edx, dword [esp + 0x4a8]
call fcn.0043e27c
test eax, eax
je 0x499955
mov esi, edx
lea ecx, [esp + 0x240]
mov edx, eax
push esi
call fcn.0043f46a
pop eax
lea ecx, [esp + 0x240]
call fcn.0043f4b6
test eax, eax
je 0x49751d
mov ecx, eax
call fcn.00441f42
mov esi, edx
lea edi, [esp + 0x3f0]
mov ecx, edi
lea edx, [esp + 0x620]
push esi
push eax
call fcn.004433b8
pop eax
pop ecx
mov ecx, edi
call fcn.0043f891
jmp 0x4974e2
lea ecx, [esp + 0x4a0]
call fcn.0043e6cb
lea edi, [esp + 0x620]
xor esi, esi
cmp esi, 0x50
je 0x49754a
lea ecx, [esp + esi]
add ecx, 0xd0
call fcn.0043f89c
add esi, 0x10
jmp 0x497532
lea ecx, [esp + 0xd0]
lea edx, [esp + 0x210]
call fcn.0047d4e2
mov eax, dword [esp + 0xd0]
or eax, dword [esp + 0xd4]
je 0x4975c4
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xdc]
xor ecx, eax
mov esi, dword [esp + 0xd8]
xor esi, edx
or esi, ecx
jne 0x4975c4
mov ecx, edx
or ecx, eax
je 0x4975a2
mov ecx, edi
push eax
call fcn.0043f80c
pop eax
jmp 0x4975c4
movzx eax, byte [esp + 0x68c]
xor edx, edx
cmp eax, 7
ja 0x497f8e
mov ecx, 0xb2
bt ecx, eax
mov eax, 0
jae 0x497597
lea ecx, [esp + 0x68c]
mov edx, 0x53ed98
call fcn.004356b6
cmp dword [esp + 0x210], 0
mov byte [esp + 0x38], al
je 0x4975f2
cmp dword [esp + 0x218], 0
sete byte [esp + 0x1b]
jmp 0x49760e
mov eax, dword [esp + 0x218]
push dword [esp + 0x214]
call dword [eax + 0x14]
add esp, 4
mov byte [esp + 0x1b], al
mov al, byte [esp + 0x38]
push 3
pop esi
test al, al
je 0x4976bd
lea ecx, [esp + 0x530]
mov edx, edi
call fcn.0043f65f
cmp dword [esp + 0x530], 0
je 0x4976bd
mov eax, dword [esp + 0x53c]
or eax, dword [esp + 0x538]
je 0x4976bd
mov eax, dword [esp + 0x68]
mov dword [esp + 0x248], eax
movq xmm0, qword [esp + 0x60]
movq qword [esp + 0x240], xmm0
mov byte [esp + 0xd0], 2
mov dword [esp + 0xd4], 2
mov ebx, edi
lea edi, [esp + 0xd0]
mov ecx, edi
call fcn.00440e94
mov dword [esp + 0xd0], eax
and dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 3
lea ecx, [esp + 0x240]
mov edx, edi
call fcn.004717d6
mov ecx, ebx
call fcn.0047171e
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 4]
jmp 0x497cdb
mov ecx, dword [esp + 0x6a0]
test ecx, ecx
je 0x497793
movdqa xmm0, xmmword [0x50cc10]
movdqu xmmword [esp + 0xd0], xmm0
lea edx, [esp + 0xd0]
call fcn.00479fe5
test eax, eax
je 0x497793
mov esi, eax
mov edi, edx
push eax
lea eax, [esp + 0x774]
push eax
call dword [edx + 0xc]
add esp, 8
movdqu xmm0, xmmword [esp + 0x770]
pxor xmm0, xmmword [0x50cc10]
ptest xmm0, xmm0
jne 0x49778a
mov edi, dword [esi]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x3f8], eax
movq xmm0, qword [esi + 4]
movq qword [esp + 0x3f0], xmm0
mov ecx, esi
push 4
pop edx
call fcn.004155d0
test edi, edi
je 0x497793
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0x3f8]
lea edi, [esp + 0xd0]
mov dword [edi + 0xc], eax
movq xmm0, qword [esp + 0x3f0]
movq qword [edi + 4], xmm0
lea esi, [esp + 0x240]
mov ecx, esi
lea edx, [esp + 0x6a0]
push edi
call fcn.0043151e
pop eax
mov ecx, esi
call fcn.0043f89c
jmp 0x497793
mov ecx, esi
mov edx, edi
call fcn.004033b3
push 0x88
lea eax, [esp + 0x624]
push eax
lea eax, [esp + 0x4a8]
push eax
call fcn.004f7e80
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x14], ecx
cmove eax, ecx
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 0x520]
test ecx, ecx
je 0x49783c
movdqa xmm0, xmmword [0x50c7d0]
movdqu xmmword [esp + 0xd0], xmm0
lea edx, [esp + 0xd0]
call fcn.00479fe5
test eax, eax
je 0x49783c
mov esi, eax
mov edi, edx
push eax
lea eax, [esp + 0x764]
push eax
call dword [edx + 0xc]
add esp, 8
movdqu xmm0, xmmword [esp + 0x760]
pxor xmm0, xmmword [0x50c7d0]
ptest xmm0, xmm0
jne 0x497833
movdqu xmm0, xmmword [esi]
movdqa xmmword [esp + 0x3e0], xmm0
mov ecx, esi
push 4
pop edx
call fcn.004155d0
jmp 0x497844
mov ecx, esi
mov edx, edi
call fcn.004033b3
and dword [esp + 0x3e0], 0
mov esi, dword [esp + 0x520]
test esi, esi
je 0x497863
cmp dword [esi + 0xc], 0
je 0x497863
mov ecx, esi
call fcn.0043961d
mov ecx, esi
call fcn.00479fae
mov edx, dword [ebx + 0x58]
add edx, 8
lea esi, [esp + 0xd0]
mov ecx, esi
call fcn.0042d2f6
mov ecx, esi
mov edx, 0x53e784
call fcn.0047990b
mov edi, eax
mov byte [esp + 0x20], dl
add eax, 8
mov dword [esp + 0xc], eax
mov edx, dword [ebx + 0x5c]
add edx, 8
mov ecx, esi
call fcn.0046a36a
mov ecx, esi
mov edx, 0x53e794
call fcn.00479858
mov dword [esp + 0x30], eax
mov byte [esp + 0x34], dl
mov ecx, esi
mov edx, dword [esp + 0xc]
call fcn.00433b34
mov cl, byte [esp + 0xd0]
movzx edx, byte [esp + 0x34]
movzx eax, byte [esp + 0x20]
mov dword [esp + 0x34], eax
cmp cl, 3
mov dword [esp + 0x20], edi
jne 0x4978fd
cmp dword [edi + 0xb8], 0
push 3
pop esi
mov ebx, dword [ebp + 0xc]
je 0x497cec
mov byte [esp + 0xc], 3
mov edi, dword [esp + 4]
mov byte [esp + 0x14], 5
jmp 0x49796a
mov byte [esp + 0xc], cl
mov al, byte [esp + 0xd1]
mov byte [esp + 0x14], al
movzx eax, word [esp + 0xd2]
mov word [esp + 0x3e], ax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x4c], eax
movzx eax, word [esi + 0x15]
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x48], eax
mov al, byte [esi + 0x17]
mov byte [esp + 0x2e], al
mov al, byte [esp + 0xe4]
mov byte [esp + 0xb], al
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x50], eax
push 3
pop esi
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x30]
call fcn.0046a4ef
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
call fcn.0046a4ef
lea ecx, [esp + 0x3e0]
call fcn.0043f89c
lea ecx, [esp + 0x4a0]
call fcn.0047171e
mov cl, byte [esp + 0x14]
mov ch, byte [esp + 0xc]
mov byte [esp + 0xd0], ch
mov byte [esp + 0xd1], cl
movzx eax, word [esp + 0x3e]
mov word [esp + 0xd2], ax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xe0], eax
mov al, byte [esp + 0xb]
mov byte [esp + 0xe4], al
movzx eax, word [esp + 0x2c]
lea edx, [esp + 0xd0]
mov word [edx + 0x15], ax
mov al, byte [esp + 0x2e]
mov byte [edx + 0x17], al
cmp ch, 3
mov byte [esp + 0x2b], cl
jne 0x497a26
mov byte [esp + 0xa8], 3
mov byte [esp + 0xa9], cl
jmp 0x497c66
lea ecx, [esp + 0xa8]
call fcn.0043307d
cmp byte [esp + 0xa8], 5
jne 0x497c66
mov bl, byte [esp + 0xbc]
lea eax, [esp + 0xac]
movups xmm0, xmmword [eax]
movaps xmmword [esp + 0x240], xmm0
mov edx, dword [esp + 0x240]
add edx, 8
lea edi, [esp + 0x3f0]
mov ecx, edi
call fcn.0042d2f6
mov ecx, edi
mov edx, 0x53e684
call fcn.0047990b
mov esi, eax
mov byte [esp + 0x20], dl
add eax, 0x128
mov ecx, dword [esp + 0x244]
mov edx, dword [esp + 0x248]
mov dword [esp + 0x3f4], ecx
mov dword [esp + 0x3f8], edx
mov dword [esp + 0x3f0], eax
mov ecx, edi
call fcn.00436868
mov bh, byte [eax + 0xe4]
movzx edx, byte [esp + 0x20]
mov ecx, esi
call fcn.0046a4ef
test bl, bl
lea esi, [esp + 0x240]
je 0x497b03
test bh, bh
je 0x497b03
lea ecx, [esp + 0x3f0]
mov edx, esi
call fcn.00433841
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.0049b044
mov eax, dword [esp + 0x3f8]
mov dword [edi + 8], eax
movsd xmm0, qword [esp + 0x3f0]
movsd qword [edi], xmm0
lea edi, [esp + 0xd0]
mov ecx, edi
mov edx, esi
call fcn.00433841
movaps xmm0, xmmword [esp + 0x240]
lea eax, [esp + 0xe0]
movups xmmword [eax], xmm0
mov byte [esp + 0xdc], 0
movups xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0x540], xmm0
movups xmm1, xmmword [esp + 0xe0]
movaps xmmword [esp + 0x550], xmm1
lea eax, [esp + 0x24c]
movups xmmword [eax], xmm0
lea eax, [esp + 0x550]
movups xmm0, xmmword [eax]
lea eax, [esp + 0x25c]
movups xmmword [eax], xmm0
movaps xmm0, xmmword [esp + 0x210]
lea eax, [esp + 0x26c]
movups xmmword [eax], xmm0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x248], eax
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x240], xmm0
mov al, byte [esp + 0x38]
mov byte [esp + 0x27c], al
mov al, byte [esp + 0x1b]
mov byte [esp + 0x27d], al
lea ecx, [esp + 0x3f0]
mov edx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0xc]
push dword [ebx]
call fcn.004a1fcf
pop eax
movzx eax, byte [esp + 0x3f0]
cmp eax, 5
push 3
pop esi
je 0x497d5d
cmp eax, 6
je 0x4997cf
mov eax, dword [esp + 0x248]
mov dword [esp + 0x4a8], eax
movq xmm0, qword [esp + 0x240]
movq qword [esp + 0x4a0], xmm0
lea ecx, [esp + 0x3f0]
call fcn.00440e94
mov dword [esp + 0xd0], eax
and dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 3
lea ecx, [esp + 0x4a0]
lea edx, [esp + 0xd0]
call fcn.004717d6
lea ecx, [esp + 0x24c]
call fcn.004716aa
lea ecx, [esp + 0x25c]
call fcn.0047a653
lea ecx, [esp + 0x26c]
call fcn.00471744
mov edi, dword [esp + 4]
jmp 0x497190
movsd xmm0, qword [esp + 0xb8]
movsd qword [esp + 0x550], xmm0
movups xmm0, xmmword [esp + 0xa8]
movaps xmmword [esp + 0x540], xmm0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x248], eax
movq xmm0, qword [esp + 0x60]
movq qword [esp + 0x240], xmm0
lea ecx, [esp + 0x540]
call fcn.00440e94
mov dword [esp + 0xd0], eax
and dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 3
lea ecx, [esp + 0x240]
lea edx, [esp + 0xd0]
call fcn.004717d6
lea ecx, [esp + 0x210]
call fcn.00471744
jmp 0x497190
mov eax, edi
cmp dword [esp + 0x14], 0
mov edi, dword [esp + 4]
je 0x497db5
mov eax, dword [esp + 0x20]
add eax, 0x128
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 4]
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 8]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0xd0]
call fcn.00436868
mov edx, dword [esp + 0x6c]
cmp byte [eax + 0xe4], 0
mov eax, dword [esp + 0x20]
je 0x497db5
mov byte [esp + 0xc], 3
mov byte [esp + 0x14], 3
jmp 0x49796a
movups xmm0, xmmword [esp + 0x270]
movaps xmmword [esp + 0x100], xmm0
movups xmm0, xmmword [esp + 0x260]
movaps xmmword [esp + 0xf0], xmm0
movdqu xmm0, xmmword [esp + 0x240]
movups xmm1, xmmword [esp + 0x250]
movaps xmmword [esp + 0xe0], xmm1
movdqa xmmword [esp + 0xd0], xmm0
mov ecx, dword [esp + 0x24]
mov edx, edi
push ebx
call fcn.0047a77a
pop eax
mov edi, dword [esp + 4]
jmp 0x497190
cmp byte [eax + 0x190], 0
je 0x497dcd
mov byte [esp + 0xc], 3
mov byte [esp + 0x14], 1
jmp 0x49796a
lea ecx, [eax + 0xb8]
cmp dword [ecx], 0
je 0x497de2
mov byte [esp + 0xc], 3
jmp 0x4978f6
mov dword [esp + 0x23c], ecx
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0xbc]
mov esi, eax
lea eax, [edx + 2]
mov ecx, eax
shr ecx, 0x1f
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], eax
lea ecx, [esp + 0x240]
mov dword [esp + 0x238], edx
push dword [esi + 0x80]
push dword [esi + 0x11c]
call fcn.00431065
pop eax
pop ecx
lea ecx, [esp + 0x50c]
mov edx, 0x53e7a4
call fcn.004356b6
test al, al
je 0x497e52
and dword [esp + 0x244], 0
mov dword [esp + 0x240], 1
push 0x88
lea eax, [esp + 0x4a4]
push eax
lea esi, [esp + 0xd8]
push esi
call fcn.004f7e80
add esp, 0xc
movaps xmm0, xmmword [esp + 0x3e0]
movaps xmmword [esp + 0x750], xmm0
mov al, byte [esp + 0x13c]
mov byte [esp + 0xc], al
movups xmm0, xmmword [esi + 0x40]
movups xmm1, xmmword [esi + 0x50]
movaps xmmword [esp + 0x800], xmm0
movaps xmmword [esp + 0x810], xmm1
movups xmm0, xmmword [esi + 0x5c]
movups xmmword [esp + 0x81c], xmm0
mov al, byte [esp + 0x154]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x150]
call fcn.0043eb7f
lea ecx, [esp + 0x780]
lea edx, [esp + 0x800]
call fcn.0043ad93
mov eax, dword [esp + 0x798]
test eax, eax
lea edi, [esp + 0x94]
lea ebx, [esp + 0x350]
je 0x497f95
mov dword [esp + 0x350], eax
lea eax, [esp + 0x79c]
movups xmm0, xmmword [eax]
lea eax, [esp + 0x354]
movups xmmword [eax], xmm0
mov ecx, dword [esp + 0x358]
cmp ecx, 1
mov eax, ecx
adc eax, 0
mov edx, 0x57051c
test ecx, ecx
je 0x497f2f
mov edx, dword [esp + 0x354]
lea ecx, [esp + 0xc0]
push eax
call fcn.00417b21
pop eax
push ebx
call fcn.00440425
pop eax
and dword [esp + 0x358], 0
and dword [esp + 0x35c], 0
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x350], 0x51cf14
mov dword [esp + 0x354], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
test eax, eax
je 0x497fbb
movups xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x90], xmm0
push ebx
call fcn.00440425
pop eax
jmp 0x497fcb
xor eax, eax
jmp 0x497597
mov dword [esp + 0x350], 0x51cf14
mov dword [esp + 0x354], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
and dword [esp + 0x358], 0
and dword [esp + 0x35c], 0
movups xmm0, xmmword [esp + 0x350]
movaps xmmword [esp + 0x90], xmm0
mov bl, byte [esp + 0xc]
movzx eax, bl
test eax, eax
je 0x497fe9
cmp eax, 7
je 0x497fe9
cmp dword [esp + 0x98], 0
je 0x49866f
mov eax, dword [esp + 0x90]
test eax, eax
je 0x498041
mov dword [esp + 0xc0], eax
mov ecx, dword [edi + 8]
lea edx, [esp + 0xc4]
mov dword [edx + 8], ecx
movsd xmm0, qword [edi]
movsd qword [edx], xmm0
cmp dword [esp + 0xc8], 0
je 0x498033
mov ecx, dword [edi + 8]
mov dword [esp + 0x228], ecx
movsd xmm0, qword [edi]
movsd qword [esp + 0x220], xmm0
jmp 0x498043
lea eax, [esp + 0xc0]
push eax
call fcn.00440425
pop eax
xor eax, eax
mov byte [esp + 0x350], bl
mov ecx, dword [esi + 0x7c]
lea edx, [esp + 0x354]
mov dword [edx + 0xc], ecx
movups xmm0, xmmword [esi + 0x6d]
movups xmmword [edx - 3], xmm0
and dword [esp + 0x364], 0
and dword [esp + 0x374], 0
mov dword [esp + 0x384], eax
mov eax, dword [esp + 0x228]
mov dword [edx + 0x3c], eax
movsd xmm0, qword [esp + 0x220]
movsd qword [edx + 0x34], xmm0
movdqa xmm0, xmmword [esp + 0x750]
movdqu xmmword [edx + 0x40], xmm0
and word [esp + 0x3a4], 0
mov bl, byte [esp + 0x780]
mov al, 3
cmp bl, 3
je 0x4980e4
mov esi, dword [esp + 0x780]
mov eax, dword [esp + 0x784]
mov dword [esp + 0x34c], eax
mov dword [esp + 0x348], esi
lea ecx, [esp + 0x350]
lea edx, [esp + 0x348]
call fcn.00435707
mov eax, esi
cmp dword [esp + 0x788], 0
je 0x49814b
mov edi, eax
lea eax, [esp + 0x79c]
movups xmm0, xmmword [eax - 0x14]
movaps xmmword [esp + 0x220], xmm0
mov edx, dword [esp + 0x224]
lea ecx, [esp + 0xc0]
push dword [esp + 0x228]
call fcn.00417b21
pop eax
lea esi, [esp + 0x374]
mov ecx, esi
call fcn.00433016
movdqu xmm0, xmmword [esp + 0xc0]
movdqu xmmword [esi], xmm0
lea eax, [esp + 0x220]
push eax
call fcn.00440425
mov eax, edi
add esp, 4
push 0x16
pop ecx
lea edi, [esp + 0x830]
lea esi, [esp + 0x350]
rep movsd dword es:[edi], dword [esi]
cmp bl, 3
jne 0x498176
cmp al, 3
je 0x498176
mov edx, dword [esp + 0x784]
movzx ecx, al
call fcn.004357f3
mov eax, dword [esp + 0x844]
or eax, dword [esp + 0x854]
mov ebx, dword [ebp + 0xc]
jne 0x4981e4
cmp byte [esp + 0x14], 3
push 3
pop esi
mov edi, dword [esp + 4]
jne 0x4981be
lea ecx, [esp + 0x830]
call fcn.00436968
lea ecx, [esp + 0xd0]
call fcn.00440252
mov byte [esp + 0x14], 7
mov byte [esp + 0xc], 3
jmp 0x4982e9
and dword [esp + 0x354], 0
mov dword [esp + 0x350], 1
lea ecx, [esp + 0x830]
lea edx, [esp + 0x350]
call fcn.00435707
push 0x16
pop ecx
lea edi, [esp + 0x370]
lea esi, [esp + 0x830]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x88], eax
mov al, byte [esp + 0xd8]
mov byte [esp + 0xc], al
mov al, byte [esp + 0xd9]
mov byte [esp + 0x14], al
movzx eax, word [esp + 0xda]
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x84], eax
lea ecx, [esp + 0xd0]
movdqu xmm0, xmmword [ecx + 0x20]
movups xmm1, xmmword [ecx + 0x30]
movdqa xmmword [esp + 0x350], xmm0
movaps xmmword [esp + 0x360], xmm1
mov al, byte [esp + 0xec]
mov byte [esp + 0x1a], al
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x80], eax
push 0x1e
pop edx
mov ecx, edx
lea esi, [esp + 0x350]
lea eax, [esp + 0x780]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0xd0]
movzx ecx, word [esi + 0x1d]
mov word [esp + 0x40], cx
mov ecx, dword [esp + 0x70]
xor ecx, 3
or ecx, dword [esp + 0x88]
mov cl, byte [esi + 0x1f]
mov byte [esp + 0x42], cl
mov ecx, edx
mov esi, eax
lea eax, [esp + 0x888]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
jne 0x49838f
push 3
pop esi
mov edi, dword [esp + 4]
mov al, byte [esp + 0x42]
movzx ecx, word [esp + 0x40]
mov word [esp + 0x2c], cx
mov byte [esp + 0x2e], al
mov al, byte [esp + 0x260]
mov ecx, eax
add cl, 0xfa
cmp cl, 6
jb 0x498322
add al, 0xfd
cmp al, 2
ja 0x498316
cmp al, 1
jne 0x498322
lea ecx, [esp + 0x260]
call fcn.004798e9
mov eax, dword [esp + 0x280]
test eax, eax
je 0x49833a
push dword [esp + 0x284]
call dword [eax + 0xc]
add esp, 4
mov eax, dword [esp + 0x290]
test eax, eax
je 0x498352
push dword [esp + 0x294]
call dword [eax + 0xc]
add esp, 4
mov eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
mov al, byte [esp + 0x1a]
mov byte [esp + 0xb], al
movzx eax, word [esp + 0x3c]
mov word [esp + 0x3e], ax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x48], eax
jmp 0x4985ed
mov cl, byte [esp + 0x42]
mov byte [esp + 0x5e], cl
movzx ecx, word [esp + 0x40]
mov word [esp + 0x5c], cx
mov ecx, edx
mov esi, eax
lea edi, [esp + 0x410]
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x488], 0
mov ecx, dword [esp + 0x574]
lea esi, [esp + 0x3f1]
mov dword [esi + 0xa0], ecx
movq xmm0, qword [esp + 0x56c]
movq qword [esi + 0x98], xmm0
mov byte [esp + 0x495], 2
mov eax, dword [esp + 0x238]
mov dword [esp + 0x498], eax
mov cl, byte [esp + 0x38]
xor cl, 1
and cl, byte [esp + 0x1b]
or cl, 4
mov byte [esp + 0x49c], cl
movzx ecx, word [esp + 0x8d]
mov word [esi + 0xac], cx
mov cl, byte [esp + 0x8f]
mov byte [esi + 0xae], cl
mov eax, dword [esp + 0x88]
mov dword [esp + 0x3f4], eax
mov edi, dword [esp + 0x30]
add edi, 8
mov eax, dword [esp + 0x70]
mov dword [esp + 0x3f0], eax
mov al, byte [esp + 0xc]
mov byte [esp + 0x3f8], al
mov al, byte [esp + 0x14]
mov byte [esp + 0x3f9], al
movzx eax, word [esp + 0x3c]
mov word [esp + 0x3fa], ax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x3fc], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x400], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x404], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x408], eax
mov al, byte [esp + 0x1a]
mov byte [esp + 0x40c], al
mov al, byte [esp + 0x5e]
mov byte [esi + 0x1e], al
movzx eax, word [esp + 0x5c]
mov word [esi + 0x1c], ax
mov ebx, dword [esp + 0x20]
lea esi, [ebx + 0x128]
mov eax, dword [esp + 0x30c]
mov dword [esp + 0xc], eax
push 0xf0
lea eax, [esp + 0x244]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.004f7e80
add esp, 0xc
lea ecx, [esp + 0x350]
mov edx, esi
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x10]
call fcn.00437a5d
pop eax
pop ecx
mov eax, ebx
add eax, 0xb0
mov ecx, dword [esp + 0x23c]
lea edx, [esp + 0x3f0]
push eax
push dword [ebx + 0x190]
lea eax, [esp + 0x358]
push eax
push edi
call fcn.004a1c88
add esp, 0x10
cmp al, 0xc
lea esi, [esp + 0x350]
jne 0x4985c0
mov ecx, esi
inc dword [ebx + 0x194]
mov esi, dword [ebx + 0x170]
mov edi, dword [ebx + 0x174]
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
lock inc dword [eax]
jle 0x499979
call fcn.00436850
mov ecx, eax
call fcn.0043112c
mov eax, dword [esp + 0x354]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x358]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x50], eax
lock inc dword [eax]
jle 0x499979
inc edi
cmp esi, edi
setbe byte [esp + 0xb]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x6c]
call fcn.0046a4ef
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
call fcn.0046a4ef
mov cl, byte [esp + 0x2b]
jmp 0x498618
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x350]
mov edx, dword [esp + 0x358]
call fcn.0043808c
mov ecx, esi
call fcn.00437f6a
mov byte [esp + 0xc], 3
push 3
pop esi
mov ebx, dword [ebp + 0xc]
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x6c]
call fcn.0046a4ef
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
call fcn.0046a4ef
mov cl, byte [esp + 0x14]
mov ch, byte [esp + 0xc]
cmp ch, 4
jne 0x4979a0
mov byte [esp + 0x2b], cl
mov eax, dword [esp + 0x54]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb8], eax
mov bl, byte [esp + 0xb]
mov byte [esp + 0xbc], bl
movzx eax, word [esp + 0x2c]
lea ecx, [esp + 0xac]
mov word [ecx + 0x11], ax
mov al, byte [esp + 0x2e]
mov byte [ecx + 0x13], al
jmp 0x497a47
lea eax, [esp + 0x90]
push eax
call fcn.00440425
pop eax
mov dword [esp + 0x90], 0x51cf14
mov eax, 0x51cf14
mov dword [esp + 0x94], 0x57051c
mov dword [esp + 0x98], 1
and dword [esp + 0x9c], 0
jmp 0x497ff4
lea ecx, [esp + 0x60]
call fcn.0047134a
lea ecx, [esp + 0x6b0]
call fcn.00471334
push 3
pop esi
jmp 0x49718d
lea eax, [ebx + 0x100]
mov dword [esp + 0x58], eax
lea eax, [ebx + 0x60]
mov dword [esp + 0x1c], eax
lea eax, [ebx + 0xd0]
mov dword [esp + 0x44], eax
lea eax, [ebx + 0xc0]
mov dword [esp + 0x24], eax
lea eax, [ebx + 0xa8]
mov dword [esp + 0x20], eax
lea eax, [ebx + 0x10c]
mov dword [esp + 0xc], eax
lea eax, [ebx + 0x71]
mov dword [esp + 0x34], eax
mov dword [esp + 0x74], 0
cmp dword [esp + 0x74], 0x10
je 0x49938d
mov ecx, ebx
mov edx, dword [ebp + 0xc]
call fcn.0048e220
test eax, eax
jne 0x498738
mov edi, edx
test edx, edx
jne 0x4996da
inc dword [esp + 0x74]
cmp byte [ebx + 0x130], 0
jne 0x49927b
mov eax, dword [ebx + 0x12c]
cmp dword [eax], 0
jne 0x498797
mov eax, dword [ebx + 0x40]
xor eax, 4
or eax, dword [ebx + 0x44]
je 0x498797
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
add eax, 0xfffffffe
adc ecx, 0xffffffff
cmp esi, eax
mov edx, 0
sbb edx, ecx
jb 0x498797
test eax, eax
jne 0x498797
mov ecx, dword [esp + 0x44]
call fcn.0048d47f
test eax, eax
jne 0x498797
mov eax, dword [esp + 0x58]
cmp dword [eax], 2
je 0x498afe
cmp byte [ebx + 0xf8], 0
jne 0x4987cb
cmp byte [ebx + 0xe4], 0
je 0x4987b6
cmp dword [ebx + 0xdc], 0xf
ja 0x4988f5
mov ecx, dword [esp + 0x24]
call fcn.0048d46c
cmp eax, dword [ebx + 0xe0]
jae 0x4988f5
mov eax, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x64]
add eax, 0xfffffffe
adc ecx, 0xffffffff
cmp esi, eax
mov edx, 0
sbb edx, ecx
setb dl
cmp eax, 1
sete cl
or cl, dl
mov esi, dword [ebx + 0x12c]
cmp dword [esi], 0
je 0x4988d6
mov al, 1
test cl, cl
je 0x4988c4
lea edi, [esi + 4]
lea ecx, [esp + 0xd0]
mov edx, edi
push dword [ebp + 0xc]
call fcn.0047e226
pop eax
cmp dword [esp + 0xd0], 2
je 0x499245
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x6c0], eax
movdqu xmm0, xmmword [esp + 0xd0]
movdqa xmmword [esp + 0x6b0], xmm0
cmp dword [esp + 0x6b0], 0
je 0x498916
mov eax, dword [esp + 0x6b4]
mov ecx, dword [esp + 0x6b8]
test eax, eax
je 0x49924c
mov edx, dword [esp + 0x6c0]
mov ebx, dword [esp + 0x6bc]
mov dword [esp + 0x4a0], eax
mov dword [esp + 0x4a4], ecx
mov dword [esp + 0x4a8], ebx
mov dword [esp + 0x4ac], edx
mov ecx, edi
call fcn.0047d511
mov edi, dword [esp + 0x4a8]
test al, al
jne 0x498949
test edi, edi
mov ebx, dword [ebp + 8]
jne 0x498a69
lea ecx, [esp + 0x4a0]
call fcn.0043e6cb
xor eax, eax
movzx edx, al
mov ecx, esi
call fcn.00491318
push 3
pop esi
jmp 0x49873c
xor ebx, ebx
test cl, cl
je 0x4992ac
mov ecx, dword [ebp + 8]
call fcn.004a76d6
test eax, eax
je 0x499230
jmp 0x4992b5
mov ecx, ebx
mov edx, dword [ebp + 0xc]
call fcn.00490d90
test eax, eax
jne 0x49927b
mov edi, edx
test edx, edx
je 0x49873c
jmp 0x4992c1
mov ecx, ebx
call fcn.004a76d6
mov edi, eax
mov eax, dword [esp + 0x6b0]
test edi, edi
jne 0x4992c5
mov bl, 1
test eax, eax
je 0x499230
lea ecx, [esp + 0x6b4]
call fcn.00491329
jmp 0x499230
test edi, edi
je 0x498e49
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov edx, eax
add edx, 0xfffffffe
mov dword [esp + 0x10], ebx
adc ebx, 0xffffffff
push 3
pop ecx
cmp ecx, edx
mov ecx, 0
sbb ecx, ebx
movq xmm0, qword [esp + 0x4a0]
movq qword [esp + 0x620], xmm0
mov ecx, dword [esp + 0x4ac]
jb 0x498996
cmp edx, 1
jne 0x4998c7
mov dword [esp + 4], ecx
or eax, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
je 0x498f83
mov eax, ebx
mov ebx, dword [ebx + 0x68]
mov ecx, dword [eax + 0x6c]
mov edx, ebx
xor edx, edi
xor eax, eax
or edx, ecx
setne al
cmp edi, ebx
mov edx, 0
sbb edx, ecx
mov ecx, 0xff
cmovb eax, ecx
test al, al
je 0x4990ce
movzx eax, al
cmp eax, 1
jne 0x499111
mov eax, dword [esp + 0x4a4]
mov dword [esp + 0x57c], eax
mov eax, dword [esp + 0x4a0]
mov dword [esp + 0x578], eax
mov dword [esp + 0x580], edi
mov eax, dword [esp + 4]
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], ebx
mov eax, dword [ebp + 8]
cmp byte [eax + 0xe4], 0
je 0x4991ce
mov eax, dword [esp + 0x588]
lea ecx, [esp + 0x168]
mov dword [ecx - 0x84], eax
movdqu xmm0, xmmword [esp + 0x578]
movdqu xmmword [ecx - 0x94], xmm0
mov dword [esp + 0xd0], 1
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0xd0]
call fcn.0048dc91
jmp 0x499211
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov edx, eax
add edx, 0xfffffffe
mov dword [esp + 0x10], ebx
adc ebx, 0xffffffff
push 3
pop ecx
cmp ecx, edx
mov ecx, 0
sbb ecx, ebx
movq xmm0, qword [esp + 0x4a0]
movq qword [esp + 0x578], xmm0
mov ecx, dword [esp + 0x4ac]
jb 0x498aae
cmp edx, 1
jne 0x49987a
mov dword [esp + 4], ecx
or eax, dword [esp + 0x10]
mov ebx, dword [ebp + 8]
je 0x498e6e
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x6c]
cmp eax, edi
mov edx, ecx
sbb edx, 0
jae 0x498eba
and dword [ebx + 0x6c], 0
and dword [ebx + 0x68], 0
mov ecx, dword [esp + 0x4a0]
mov edx, dword [esp + 0x4a4]
mov dword [esp + 0x244], edx
mov dword [esp + 0x240], ecx
xor edx, edx
inc edx
jmp 0x498ee3
lea ecx, [esp + 0xd0]
mov edx, dword [esp + 0xc]
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.0047b460
pop eax
mov eax, dword [esp + 0xd0]
mov ecx, eax
and cl, 7
cmp cl, 3
je 0x4992e0
cmp eax, 4
lea ebx, [esp + 0x578]
je 0x499325
mov edi, esi
push 0x98
lea eax, [esp + 0xd4]
push eax
lea esi, [esp + 0x248]
push esi
call fcn.004f7e80
add esp, 0xc
lea ecx, [esp + 0x168]
mov eax, dword [ecx + 8]
mov dword [esp + 0x890], eax
movq xmm0, qword [ecx]
movq qword [esp + 0x888], xmm0
lea ecx, [esp + 0x888]
mov edx, dword [ebp + 0xc]
call fcn.0047b232
test al, al
je 0x4992e9
push 0x20
pop ecx
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0x10], eax
mov al, byte [esp + 0x2c4]
mov byte [esp + 4], al
lea ecx, [esp + 0x5e4]
mov eax, dword [ecx + 0x10]
lea edx, [esp + 0x64c]
mov dword [edx + 0x10], eax
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx - 0x10]
movups xmmword [esp + 0x63c], xmm0
movups xmm0, xmmword [ecx - 0x2c]
movups xmm1, xmmword [ecx - 0x1c]
movaps xmmword [esp + 0x630], xmm1
movaps xmmword [esp + 0x620], xmm0
mov ebx, dword [esp + 0x240]
mov edx, dword [esp + 0x244]
lea ecx, [esp + 0x2c8]
mov eax, dword [ecx - 0x4c]
mov dword [esp + 0x6e0], eax
mov eax, dword [esp + 0x890]
mov dword [esp + 0x580], eax
mov eax, dword [esp + 0x248]
mov dword [esp + 0x38], eax
movups xmm0, xmmword [ecx - 0x5c]
movaps xmmword [esp + 0x6d0], xmm0
movups xmm0, xmmword [ecx - 0x7c]
movups xmm1, xmmword [ecx - 0x6c]
movaps xmmword [esp + 0x6c0], xmm1
movaps xmmword [esp + 0x6b0], xmm0
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x780], xmm0
movaps xmm0, xmmword [esp + 0x650]
lea eax, [esp + 0x6b4]
movups xmmword [eax + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x640]
movups xmmword [eax + 0x50], xmm0
movaps xmm0, xmmword [esp + 0x620]
movaps xmm1, xmmword [esp + 0x630]
movups xmmword [eax + 0x40], xmm1
movups xmmword [eax + 0x30], xmm0
movsd xmm0, qword [esp + 0x888]
movsd qword [esp + 0x578], xmm0
mov esi, dword [esp + 0x58]
cmp dword [esi], 2
je 0x498cac
mov ecx, esi
mov edi, edx
call fcn.0047ff50
mov edx, edi
mov eax, dword [esp + 0x580]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x578]
movsd qword [esi], xmm0
mov eax, ebx
xor eax, 4
or eax, edx
push 0x1d
pop ecx
lea edi, [esp + 0x4a0]
lea esi, [esp + 0x6b0]
rep movsd dword es:[edi], dword [esi]
movdqa xmm0, xmmword [esp + 0x780]
lea eax, [esp + 0x353]
movdqu xmmword [eax], xmm0
push 3
pop esi
je 0x499325
mov eax, ebx
xor eax, 3
or eax, edx
je 0x4992fe
mov eax, dword [esp + 0x35f]
mov dword [esp + 0xdf], eax
mov dword [esp + 0x3f0], ebx
movups xmm0, xmmword [esp + 0x350]
movaps xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x3f4], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3f8], eax
push 0x1d
pop ecx
lea edi, [esp + 0x3fc]
lea esi, [esp + 0x4a0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x470], eax
mov al, byte [esp + 4]
mov byte [esp + 0x474], al
lea eax, [esp + 0x168]
movdqu xmm0, xmmword [eax - 0x95]
movdqa xmmword [esp + 0x240], xmm0
and dword [esp + 0xd0], 0
lea esi, [esp + 0xd0]
mov ecx, esi
call fcn.0043f89c
cmp dword [esp + 0x240], 0
je 0x49900c
cmp dword [esp + 0x248], 0
mov ebx, dword [ebp + 8]
je 0x49902b
mov ecx, esi
lea edx, [esp + 0x240]
call fcn.0047d4e2
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x30], esi
or eax, dword [esp + 0xd4]
sete al
mov edi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
xor ecx, edi
mov edx, dword [esp + 0xe0]
xor edx, esi
or edx, ecx
setne cl
or cl, al
movzx eax, cl
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
movaps xmm0, xmmword [esp + 0x240]
movaps xmmword [esp + 0xd0], xmm0
mov esi, dword [ebx + 0x12c]
mov ecx, esi
call fcn.0048e1c7
mov dword [esi], 1
movdqa xmm0, xmmword [esp + 0xd0]
movdqu xmmword [esi + 4], xmm0
mov esi, dword [esp + 0x30]
xor eax, eax
jmp 0x499052
mov ecx, dword [ebp + 8]
call fcn.004a76d6
mov edi, eax
lea ecx, [esp + 0x4a0]
call fcn.0043e6cb
mov bl, 1
test edi, edi
je 0x499230
jmp 0x499253
lea ecx, [esp + 0xd0]
mov edx, edi
call fcn.0043fa96
mov eax, dword [esp + 0x578]
mov ecx, dword [esp + 0x57c]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x38], ecx
push 2
pop edx
jmp 0x498ee3
sub eax, edi
sbb ecx, 0
mov dword [ebx + 0x68], eax
mov dword [ebx + 0x6c], ecx
mov eax, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x4a4]
mov dword [esp + 0x244], ecx
mov dword [esp + 0x240], eax
xor edx, edx
mov ecx, dword [esp + 0x244]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x240]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xdc], edi
mov ecx, dword [esp + 4]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], 0x5420e1
mov dword [esp + 0xf4], 2
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0xd0]
call fcn.0048e0e8
mov eax, dword [ebx + 0x60]
or eax, dword [ebx + 0x64]
je 0x498f7c
mov eax, dword [ebx + 0x6c]
or eax, dword [ebx + 0x68]
jne 0x498f7c
cmp byte [ebx + 0x70], 1
push 5
pop eax
sbb eax, 0
mov dword [ebx + 0x60], eax
and dword [ebx + 0x64], 0
xor ebx, ebx
jmp 0x499230
lea ecx, [esp + 0xe0]
mov edx, edi
call fcn.0043fa96
mov eax, dword [esp + 0x620]
mov ecx, dword [esp + 0x624]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], edi
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
movups xmm0, xmmword [esp + 0xdc]
movups xmmword [esp + 0x24c], xmm0
movdqu xmm0, xmmword [esp + 0xd0]
movdqa xmmword [esp + 0x240], xmm0
mov dword [esp + 0x25c], 0x53f70b
mov dword [esp + 0x260], 7
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x240]
call fcn.0048defb
jmp 0x499214
mov eax, dword [esp + 0x248]
push dword [esp + 0x244]
call dword [eax + 0x14]
add esp, 4
test al, al
mov ebx, dword [ebp + 8]
je 0x498db4
mov esi, dword [ebx + 0x12c]
mov ecx, esi
call fcn.0048e1c7
and dword [esi], 0
xor eax, eax
mov cl, 1
mov dword [esp + 0x10], ecx
push 2
pop edi
mov dword [esp + 4], edi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0xd0]
mov edx, ebx
mov dword [esp + 0x14], edi
push edi
mov dword [esp + 0x34], esi
push esi
push eax
push dword [esp + 0x10]
lea eax, [esp + 0x400]
push eax
call fcn.004a599c
add esp, 0x14
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov edx, eax
xor edx, 2
or edx, ecx
je 0x4991af
mov edx, dword [esp + 0xd8]
mov esi, eax
or esi, ecx
mov esi, dword [esp + 0xdc]
mov bl, byte [esp + 0xe0]
je 0x499154
mov edi, edx
or edi, esi
jne 0x499154
cmp bl, 1
push 5
pop eax
sbb eax, 0
xor ecx, ecx
jmp 0x499184
mov eax, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x4a4]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], edi
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xd0]
call fcn.0048dce5
jmp 0x499211
mov eax, dword [esp + 0x4a0]
mov ecx, dword [esp + 0x4a4]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], edi
mov eax, dword [esp + 4]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xd0]
call fcn.0048dce5
jmp 0x49921a
lea edi, [esp + 0x168]
mov edi, dword [edi - 0x87]
mov dword [esp + 4], edi
lea edi, [esp + 0x168]
mov edi, dword [edi - 0x84]
mov dword [esp + 0x57b], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x578], edi
mov edi, dword [ebp + 8]
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], ecx
mov dword [edi + 0x68], edx
mov dword [edi + 0x6c], esi
mov byte [edi + 0x70], bl
mov ebx, edi
mov eax, dword [esp + 0x57b]
mov ecx, dword [esp + 0x34]
mov dword [ecx + 3], eax
mov eax, dword [esp + 0x578]
mov dword [ecx], eax
cmp byte [esp + 0x10], 0
push 3
pop esi
je 0x49873c
lea ecx, [esp + 0x240]
call fcn.0047ffb5
jmp 0x49873c
cmp edi, ebx
cmovb ebx, edi
mov ecx, dword [esp + 0x24]
mov edx, ebx
call fcn.0043fb5d
lea ebx, [esp + 0x578]
mov ecx, ebx
call fcn.004a579d
test edx, edx
je 0x49920a
mov edi, edx
mov ecx, dword [esp + 0x24]
mov edx, eax
push edi
call fcn.004ebac3
pop eax
mov ecx, ebx
mov edx, edi
call fcn.004add29
jmp 0x4991e5
mov ecx, ebx
call fcn.0043e6cb
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x70], 0
je 0x499220
xor eax, eax
push 5
jmp 0x499224
xor eax, eax
push 4
pop ecx
mov edx, dword [esp + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov bl, 1
movzx edx, bl
mov ecx, esi
call fcn.00491318
mov ebx, dword [ebp + 8]
push 3
pop esi
jmp 0x49873c
xor ebx, ebx
xor ecx, ecx
inc ecx
jmp 0x499257
call fcn.0047a730
mov edi, eax
xor ecx, ecx
mov bl, 1
mov dword [esp + 0x10], ecx
movzx edx, bl
mov ecx, esi
call fcn.00491318
mov ebx, dword [ebp + 8]
push 3
pop esi
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x49927b
test edi, edi
jne 0x4996da
mov ecx, ebx
mov edx, dword [ebp + 0xc]
call fcn.00490d90
test eax, eax
jne 0x499293
mov edi, edx
test edx, edx
jne 0x4996da
cmp byte [ebx + 0xa1], 0
mov byte [ebx + 0xa1], 0
jne 0x498715
jmp 0x4993a2
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
jmp 0x49925b
mov edi, eax
mov dword [esp + 0x10], 0
jmp 0x49925b
xor eax, eax
jmp 0x49926f
xor ecx, ecx
mov bl, 1
test eax, eax
je 0x499257
lea ecx, [esp + 0x6b4]
call fcn.00491329
xor ecx, ecx
jmp 0x499257
mov byte [ebx + 0x114], 1
jmp 0x4992fe
lea ecx, [esp + 0x888]
call fcn.0047ff50
mov ecx, esi
call fcn.0047ff9f
mov esi, edi
mov eax, dword [ebp + 8]
mov byte [eax + 0x130], 1
and dword [eax + 0x44], 0
mov dword [eax + 0x40], 4
and dword [eax + 0x64], 0
mov dword [eax + 0x60], 5
mov byte [eax + 0xa2], 2
mov ebx, dword [ebp + 8]
jmp 0x49927b
cmp ebx, 6
jne 0x49933a
mov ebx, dword [ebp + 8]
jmp 0x499450
mov byte [esp + 0x240], bl
lea eax, [esp + 0x3f1]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x241], xmm0
movsd xmm0, qword [eax + 0xf]
movsd qword [esp + 0x250], xmm0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x74]
call fcn.0044444f
test eax, eax
je 0x4993f9
mov edi, eax
push 2
pop esi
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x240]
call fcn.00444413
jmp 0x499450
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx + 8]
add esp, 4
jmp 0x499455
cmp byte [ebx + 0x130], 0
jne 0x4993ba
mov eax, dword [ebx + 0x40]
xor eax, 4
or eax, dword [ebx + 0x44]
jne 0x499455
mov eax, dword [ebx + 0x78]
and dword [ebx + 0x78], 0
test eax, eax
je 0x499630
mov eax, dword [ebx + 0x7c]
mov dword [esp + 0xd0], eax
mov edi, dword [ebx + 0x94]
and dword [ebx + 0x94], 0
test edi, edi
je 0x499679
lea ecx, [esp + 0xd0]
call fcn.0047bec9
jmp 0x4996da
cmp ebx, 2
je 0x499413
cmp ebx, 1
je 0x499413
test ebx, ebx
mov ebx, dword [ebp + 8]
jne 0x499426
lea eax, [esp + 0x248]
jmp 0x49941d
lea eax, [esp + 0x244]
mov ebx, dword [ebp + 8]
cmp dword [eax], 0
je 0x499629
movsd xmm0, qword [esp + 0x250]
lea ecx, [esp + 0xd0]
movsd qword [ecx + 0x10], xmm0
movups xmm0, xmmword [esp + 0x240]
movaps xmmword [ecx], xmm0
call fcn.00440e94
mov edi, eax
push 2
pop esi
cmp esi, 3
jne 0x49945c
mov al, 1
jmp 0x4997c7
test esi, esi
je 0x49977a
cmp esi, 2
je 0x49977c
mov dword [esp + 0x1c], edi
lea esi, [esp + 0xd0]
push 0x138
push ebx
push esi
call fcn.004f7e80
add esp, 0xc
and dword [ebx + 4], 0
mov dword [ebx], 5
mov eax, dword [esi]
mov dword [esp + 0x24], eax
and eax, 6
cmp eax, 4
je 0x49993b
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x940]
push 0x138
push esi
push eax
call fcn.004f7e80
add esp, 0xc
lea eax, [esp + 0x240]
push 0x100
push esi
push eax
call fcn.004f7e80
add esp, 0xc
lea esi, [esp + 0x2e8]
push 0x15
pop ecx
lea eax, [esp + 0x3f0]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x14]
lea edi, [esp + 0x584]
mov dword [edi - 4], ecx
movsd xmm0, qword [eax + 0xc]
movsd qword [edi - 0xc], xmm0
lea esi, [esp + 0x430]
mov ecx, edi
mov edx, esi
call fcn.0048df79
mov ecx, dword [esi - 0x28]
mov edx, dword [esi - 0x24]
call fcn.0043e571
lea ebx, [esp + 0x418]
mov ecx, ebx
call fcn.0049afa5
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
call fcn.0048dfdb
lea esi, [esp + 0x240]
mov ecx, esi
call fcn.0049aff3
movsd xmm0, qword [edi - 0xc]
movsd qword [esi], xmm0
mov eax, dword [edi - 4]
mov dword [esi + 8], eax
movups xmm0, xmmword [edi]
movups xmmword [esi + 0xc], xmm0
lea edi, [esp + 0x25c]
lea eax, [esp + 0x940]
movups xmm0, xmmword [eax + 0x100]
movups xmmword [edi], xmm0
movsd xmm0, qword [eax + 0x110]
movsd qword [edi + 0x10], xmm0
lea esi, [esp + 0xa58]
mov ecx, esi
call fcn.0048e1bc
mov esi, dword [esi + 0x14]
mov ecx, esi
call fcn.0048e1c7
push 4
pop edx
mov ecx, esi
mov esi, edx
call fcn.004155d0
mov eax, dword [edi - 0x14]
mov dword [esp + 0x3d8], eax
movsd xmm0, qword [edi - 0x1c]
movsd qword [esp + 0x3d0], xmm0
movups xmm0, xmmword [edi - 0x10]
movups xmmword [ebx - 0x20], xmm0
mov ecx, edi
call fcn.0047bedb
push 0xc
pop ecx
mov edx, esi
call fcn.0049a4ee
movq xmm0, qword [esp + 0x3d0]
movq qword [eax], xmm0
mov ecx, dword [esp + 0x3d8]
mov dword [eax + 8], ecx
mov dword [ebx - 0x28], eax
mov dword [ebx - 0x24], 0x541104
lea edx, [esp + 0x3f0]
mov ecx, dword [esp + 0x1c]
call fcn.0043f310
mov eax, dword [esp + 0x24]
xor eax, 4
or eax, dword [esp + 0x44]
jne 0x499621
lea ecx, [esp + 0xd0]
call fcn.0047bdaa
mov ebx, dword [ebp + 8]
jmp 0x49977a
xor esi, esi
jmp 0x49937c
mov eax, dword [ebx + 0xb8]
push dword [ebp + 0xc]
push dword [ebx + 0xb4]
lea ecx, [esp + 0xd8]
push ecx
call dword [eax + 0x18]
add esp, 0xc
movzx eax, byte [esp + 0xd0]
cmp eax, 5
je 0x499455
cmp eax, 4
jne 0x49969a
mov edi, dword [ebx + 0x94]
and dword [ebx + 0x94], 0
test edi, edi
jne 0x4996da
jmp 0x49977a
mov edi, eax
jmp 0x49946d
xor esi, esi
jmp 0x499695
lea ecx, [ebx + 0x54]
mov edx, dword [ebp + 0xc]
call fcn.004440bf
movzx eax, al
lea esi, [eax + eax*2]
jmp 0x499450
movzx ecx, byte [esp + 0xd7]
shl ecx, 0x10
movzx ebx, word [esp + 0xd5]
or ebx, ecx
mov esi, dword [esp + 0xd1]
movzx eax, al
shld ebx, esi, 8
shl esi, 8
or esi, eax
push 0xa
pop ecx
call fcn.0044056c
mov edi, eax
mov ecx, eax
mov edx, esi
push ebx
mov ebx, dword [ebp + 8]
call fcn.00440e11
pop ecx
mov eax, ebx
mov bl, byte [ebx + 0x128]
mov byte [eax + 0x128], 3
cmp bl, 3
je 0x499754
mov ecx, dword [ebp + 8]
movdqu xmm0, xmmword [ecx + 0x118]
lea edx, [esp + 0xd0]
movdqa xmmword [edx], xmm0
mov byte [edx + 0x10], bl
movzx eax, word [ecx + 0x129]
mov word [edx + 0x11], ax
mov al, byte [ecx + 0x12b]
mov byte [edx + 0x13], al
push 8
pop ecx
call fcn.0044056c
mov esi, eax
mov ecx, eax
mov edx, 0x53f712
push 0x10
call fcn.0044046a
pop ecx
lea eax, [esp + 0xd0]
mov ecx, dword [eax + 8]
movzx edx, bl
push esi
call fcn.0043f230
pop eax
lea ecx, [esp + 0xd0]
call fcn.0048e1d5
lea edx, [esp + 0xd0]
mov dword [edx + 8], edi
and dword [edx + 4], 0
mov dword [edx], 3
mov ecx, dword [esp + 0x58]
call fcn.004801d5
mov edi, eax
test eax, eax
mov ebx, dword [ebp + 8]
jne 0x49977c
xor edi, edi
mov eax, dword [ebx]
xor eax, 6
or eax, dword [ebx + 4]
je 0x4998bb
mov ecx, ebx
call fcn.0049ae30
and dword [ebx + 4], 0
mov dword [ebx], 6
test edi, edi
je 0x4997b4
mov ecx, edi
call fcn.004800df
mov eax, dword [ebx]
xor eax, 7
or eax, dword [ebx + 4]
je 0x49990d
mov ecx, ebx
call fcn.0049ae21
and dword [ebx + 4], 0
mov dword [ebx], 7
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movups xmm0, xmmword [esp + 0x270]
movaps xmmword [esp + 0x100], xmm0
movups xmm0, xmmword [esp + 0x260]
movaps xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [esp + 0x240]
movups xmm1, xmmword [esp + 0x250]
movaps xmmword [esp + 0xe0], xmm1
movaps xmmword [esp + 0xd0], xmm0
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.0047bf4d
movaps xmm0, xmmword [esp + 0x100]
movups xmmword [esi + 0x30], xmm0
movaps xmm0, xmmword [esp + 0xf0]
movups xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xe0]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
push 3
pop esi
jmp 0x499332
push 0x36
pop edx
mov ecx, 0x53f108
push 0x53f140
call fcn.005072d8
jmp 0x499929
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueNoneSome
push 0x53ed5c
jmp 0x499924
lea ecx, [esp + 0xd0]
mov dword [ecx], 0x540b68
xor eax, eax
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x240], edx
mov dword [esp + 0x244], 0x43f938
lea edx, [esp + 0x240]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov edx, 0x540b70
jmp 0x499906
and dword [ebx + 4], 0
mov dword [ebx], 6
jmp 0x499917
lea ecx, [esp + 0xd0]
mov dword [ecx], 0x540b68
xor eax, eax
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x240], edx
mov dword [esp + 0x244], 0x43f938
lea edx, [esp + 0x240]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov edx, 0x540c24
call fcn.00506b50
ud2
and dword [ebx + 4], 0
mov dword [ebx], 7
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codeP
push 0x53f0f8
call fcn.00506cd0
pop eax
ud2
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codeP
push 0x53eb50
jmp 0x499924
mov ecx, dword [esp + 0x1c]
call fcn.0047d4d4
mov ecx, 0x53ed80
mov edx, 0x53ed88
call fcn.00470c79
ud2
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x528fdc
push 0x528914
lea eax, [esp + 0x248]
push eax
call fcn.00506fb0
add esp, 0xc
ud2
ud2