Function at 0x50e570
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x310
mov edi, dword [ebp + 8]
call 0x50e587
pop eax
mov esi, edx
mov ebx, ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x50e5e4
mov edx, dword [esi]
lea edi, [esp + 0x198]
mov ecx, edi
push eax
push dword [esi + 4]
call dbg.abbreviations<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 8
lea ecx, [esp + 0xe0]
mov edx, edi
call sym.core::result::Result_LT_T_C_E_GT_::map::h6ffe032abecf45ca
movzx eax, byte [esp + 0xe0]
cmp al, 0x4b
jne 0x50e8c0
mov ecx, dword [esp + 0xe4]
mov esi, dword [esp + 0x28]
mov edi, dword [ebp + 8]
mov dword [esp + 0x7c], ebx
jmp 0x50e600
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x50e90c
mov dword [esp + 0x7c], ebx
lock inc dword [ecx - 8]
jle 0x50f9d4
add ecx, 0xfffffff8
mov edx, dword [edi + 0x20]
cmp byte [esi + 0x70], 0
movq xmm0, qword [edi + 0x10]
movq xmm1, qword [edi + 0x28]
movsd xmm2, qword [edi + 0x20]
movsd xmm3, qword [edi + 0x18]
movsd xmm4, qword [edi]
movsd xmm5, qword [edi + 8]
mov eax, edx
setne bl
movq qword [esp + 0x268], xmm1
movsd qword [esp + 0x260], xmm2
movsd qword [esp + 0x258], xmm3
movq qword [esp + 0x250], xmm0
movsd qword [esp + 0x248], xmm5
movsd qword [esp + 0x240], xmm4
mov dword [esp + 0x288], ecx
mov dword [esp + 0x270], 0
mov dword [esp + 0x278], 0
mov dword [esp + 0x280], 0
mov dword [esp + 0x284], 0
shr eax, 0x10
cmp ax, 5
setae bh
and edx, 0xff00
xor eax, eax
cmp edx, 0x800
sete al
xor esi, esi
test bl, bh
lea edx, [eax*8 + 8]
lea eax, [eax*8 + 0xc]
cmove edx, esi
cmove eax, esi
mov esi, dword [edi + 8]
xor ebx, ebx
mov dword [esp + 0x28c], edx
mov dword [esp + 0x290], 0
mov dword [esp + 0x294], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x1a8], 0x2f
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x19c], 0
add esi, 0xfffffffd
cmp esi, 2
lea esi, [esp + 0x240]
setb bl
add ecx, 8
mov dword [esp + 0x198], ebx
movq qword [esp + 0x1a0], xmm0
mov eax, dword [esp + 0x258]
mov edi, dword [esp + 0x25c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xcc], 0
lea ecx, [esp + 0xe0]
lea edx, [esp + 0xa0]
call dbg.next_entry<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
movzx eax, byte [esp + 0xe0]
mov ebx, dword [esp + 0x7c]
cmp al, 0x4b
jne 0x50e7d2
lea esi, [esp + 0xe0]
lea edi, [esp + 0xa0]
nop
cmp byte [esp + 0xe1], 0
mov eax, dword [esp + 0xb0]
je 0x50e96e
test eax, eax
jne 0x50e976
mov ecx, esi
mov edx, edi
call dbg.next_entry<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
movzx eax, byte [esp + 0xe0]
cmp al, 0x4b
je 0x50e7a0
movzx ecx, byte [esp + 0xe1]
mov byte [ebx + 8], al
movzx esi, word [esp + 0xe2]
mov edx, dword [esp + 0xe8]
mov byte [ebx + 9], cl
mov ecx, dword [esp + 0xe4]
mov word [ebx + 0xa], si
mov dword [ebx + 0xc], ecx
mov ecx, dword [esp + 0xec]
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 4], 0
mov dword [ebx], 2
mov eax, dword [esp + 0x288]
lock dec dword [eax]
jne 0x50e82f
mov ecx, dword [esp + 0x288]
call dbg.drop_slow<gimli::read::abbrev::Abbreviations, alloc::alloc::Global>
mov eax, dword [esp + 0x1a8]
xor eax, 0x2f
or eax, dword [esp + 0x1ac]
je 0x50e904
cmp dword [esp + 0x200], 0
je 0x50e864
push dword [esp + 0x1fc]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x20c], 0
je 0x50e882
push dword [esp + 0x208]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x218], 0
je 0x50e8a0
push dword [esp + 0x214]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x224], 0
je 0x50e904
push dword [esp + 0x220]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
jmp 0x50e904
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
movzx edi, word [esp + 0xe1]
mov ah, byte [esp + 0xe3]
mov word [ebx + 9], di
mov byte [ebx + 0xb], ah
mov byte [ebx + 8], al
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x14], esi
mov dword [ebx + 0x10], edx
mov dword [ebx + 4], 0
mov dword [ebx], 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi]
lea ecx, [esp + 0x198]
push 0
push dword [esi + 4]
call dbg.abbreviations<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 8
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x198]
call sym.core::result::Result_LT_T_C_E_GT_::map::h6ffe032abecf45ca
movzx eax, byte [esp + 0xa0]
cmp al, 0x4b
jne 0x50e991
mov ecx, dword [esp + 0xa4]
xor eax, eax
lea edx, [ecx + 8]
lock cmpxchg dword [esi + 0x6c], edx
mov dword [esp + 0x7c], ebx
jne 0x50ef54
lock inc dword [ecx]
mov esi, dword [esp + 0x28]
jg 0x50e600
jmp 0x50f9d4
test eax, eax
je 0x50ef44
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb4]
cmp dword [edi], 0
je 0x50e9ca
mov ebx, dword [edi + 0xc]
mov edi, dword [edi + 4]
jmp 0x50e9d9
movzx ecx, byte [esp + 0xa3]
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0xa8]
mov byte [esp + 0xe3], cl
movzx ecx, word [esp + 0xa1]
mov word [esp + 0xe1], cx
mov ecx, dword [esp + 0xa4]
jmp 0x50e8d5
mov ebx, dword [edi + 4]
cmp ebx, 6
jae 0x50fb37
add edi, 8
mov dword [esp + 0x160], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], ebx
movaps xmm0, xmmword [0x54bc30]
add edi, 0x10
dec ebx
mov dword [esp + 0x84], 0
mov dword [esp + 0x15c], 0x2e
mov dword [esp + 0x158], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x198]
movaps xmmword [esp + 0x2b0], xmm0
movaps xmmword [esp + 0x130], xmm0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x19c]
mov dword [esp + 0x78], eax
jmp 0x50ea84
add edi, 0x10
dec ebx
cmp ebx, 0xffffffff
je 0x50ed89
lea eax, [edi - 0x10]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x170]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x40], xmm0
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0xe0]
lea esi, [esp + 0x40]
lea edx, [esp + 0x160]
push esi
push dword [eax + 0x20]
call dbg.parse_attribute<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 8
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x50edd1
lea edx, [esp + 0xe8]
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], ebx
movsd xmm0, qword [edx]
movq xmm1, qword [edx + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe0], eax
movq qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd qword [esp + 0x180], xmm0
movq qword [esp + 0x188], xmm1
movzx eax, word [esp + 0xf0]
cmp eax, 0x71
jle 0x50eba0
cmp eax, 0x2130
jg 0x50ec00
add eax, 0xffffff8e
cmp eax, 0x1a
ja 0x50ea80
mov eax, dword [eax*4 + 0x5108ec]
add eax, dword [esp + 0x3c]
jmp eax
add eax, 0xfffffffd
cmp eax, 0x18
ja 0x50ea80
mov eax, dword [eax*4 + 0x510888]
add eax, dword [esp + 0x3c]
jmp eax
cmp eax, 0x2131
je 0x50ed10
cmp eax, 0x2132
je 0x50ec4e
cmp eax, 0x2133
jne 0x50ea80
lea ecx, [esp + 0x40]
lea edx, [esp + 0xe0]
call dbg.value<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
mov eax, dword [esp + 0x40]
xor eax, 0xb
or eax, dword [esp + 0x44]
jne 0x50ea80
mov eax, dword [esp + 0x48]
mov dword [esp + 0x290], eax
jmp 0x50ea80
lea ecx, [esp + 0x40]
lea edx, [esp + 0xe0]
call dbg.value<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
mov eax, dword [esp + 0x40]
xor eax, 0x17
or eax, dword [esp + 0x44]
jne 0x50ea80
mov eax, dword [esp + 0x48]
mov dword [esp + 0x298], eax
jmp 0x50ea80
mov eax, dword [esp + 0x10]
or eax, dword [esp + 0x78]
jne 0x50ea80
lea ecx, [esp + 0x40]
lea edx, [esp + 0xe0]
call dbg.value<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], 0
xor eax, 0x2d
or eax, dword [esp + 0x44]
jne 0x50ed7c
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a0], eax
jmp 0x50ea80
mov dword [esp + 0x10], 0
jmp 0x50ea80
mov eax, dword [esp + 0x170]
cmp dword [eax + 0x14], 0
jne 0x50eda9
mov ecx, dword [esp + 0x160]
sub ecx, dword [eax]
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], ecx
movdqa xmm1, xmmword [esp + 0x130]
mov ebx, dword [esp + 0x7c]
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
jne 0x50ee13
xor esi, esi
jmp 0x50ee61
lea eax, [esp + 0xe8]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [esp + 0x7c]
movq qword [esp + 0x180], xmm0
movq qword [esp + 0x188], xmm1
movq qword [eax + 0x10], xmm1
movq qword [eax + 8], xmm0
mov dword [eax + 4], 0
mov dword [eax], 2
jmp 0x50e817
movzx eax, byte [esp + 0x261]
movdqu xmmword [esp + 0x2e8], xmm1
mov edx, dword [esp + 0x28]
lea esi, [esp + 0x2e8]
lea ecx, [esp + 0xa0]
push esi
push dword [esp + 0x290]
push eax
call dbg.attr_string<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 0xc
xor esi, esi
cmp byte [esp + 0xa0], 0x4b
jne 0x50ee5a
mov esi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
movdqa xmm1, xmmword [esp + 0x2b0]
mov dword [esp + 0x270], esi
mov dword [esp + 0x130], eax
mov dword [esp + 0x274], eax
movd ecx, xmm1
pshufd xmm0, xmm1, 0x55
movd eax, xmm0
xor ecx, 0x2e
or ecx, eax
jne 0x50eead
xor ecx, ecx
cmp dword [esp + 0x24], 0
mov dword [esp + 0x278], 0
je 0x50ef91
jmp 0x50ef20
movzx eax, byte [esp + 0x261]
movdqu xmmword [esp + 0x2f8], xmm1
mov edx, dword [esp + 0x28]
lea edi, [esp + 0x2f8]
lea ecx, [esp + 0xa0]
push edi
push dword [esp + 0x290]
push eax
call dbg.attr_string<gimli::read::endian_slice::EndianSlice<gimli::endianity::LittleEndian>>
add esp, 0xc
xor edi, edi
cmp byte [esp + 0xa0], 0x4b
mov eax, dword [esp + 0xa8]
mov ecx, 0
jne 0x50ef00
mov ecx, dword [esp + 0xa4]
cmp dword [esp + 0x24], 0
mov dword [esp + 0x278], ecx
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x27c], eax
je 0x50efa9
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x24]
mov ecx, dword [esp + 0x98]
sub edx, ecx
jae 0x50ef78
xor edx, edx
mov cl, 0x13
mov ebx, eax
jmp 0x50f2f7
mov byte [ebx + 8], 0x42
mov dword [ebx + 0xc], 0
jmp 0x50e80a
lock dec dword [ecx]
mov esi, eax
jne 0x50ef60
call dbg.drop_slow<gimli::read::abbrev::Abbreviations, alloc::alloc::Global>
lock inc dword [esi - 8]
jle 0x50f9d4
add esi, 0xfffffff8
mov ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x50e600
add eax, ecx
cmp edx, 4
jae 0x50f2be
mov ebx, eax
xor edx, edx
mov cl, 0x13
shr ebx, 8
jmp 0x50f2eb
xor edi, edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 0x2f
jmp 0x50efb5
mov dword [esp + 0x78], eax
mov dword [esp + 0x10], 0x2f
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x98]
xor eax, 0x2f
or eax, dword [esp + 0x1ac]
je 0x50f067
cmp dword [esp + 0x200], 0
je 0x50eff8
push dword [esp + 0x1fc]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x98]
cmp dword [esp + 0x20c], 0
je 0x50f01d
push dword [esp + 0x208]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x98]
cmp dword [esp + 0x218], 0
je 0x50f042
push dword [esp + 0x214]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x98]
cmp dword [esp + 0x224], 0
je 0x50f067
push dword [esp + 0x220]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x10]
movsd xmm0, qword [esp + 0x160]
mov dword [esp + 0x1ac], edi
movq xmm1, qword [esp + 0x168]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x1b0], esi
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1b8], 0
movsd qword [esp + 0x1c0], xmm0
movsd xmm0, qword [esp + 0x170]
mov eax, dword [esp + 0x12c]
movq qword [esp + 0x1c8], xmm1
movsd qword [esp + 0x1d0], xmm0
movsd xmm0, qword [esp + 0x178]
movsd qword [esp + 0x1d8], xmm0
mov dword [esp + 0x1e0], eax
mov eax, dword [esp + 0x154]
movsd xmm0, qword [esp + 0x180]
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1e8], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x1f4], eax
movzx eax, byte [esp + 0x22]
mov byte [esp + 0x1f8], al
movzx eax, byte [esp + 0x23]
mov byte [esp + 0x1f9], al
mov eax, dword [esp + 0x78]
mov word [esp + 0x1fa], ax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1fc], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x188]
movsd qword [esp + 0x208], xmm0
movsd xmm0, qword [esp + 0x2a0]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x21c], eax
mov eax, dword [esp + 0x2a8]
movsd qword [esp + 0x220], xmm0
mov dword [esp + 0x228], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x22c], ecx
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x10c]
mov edx, ecx
xor edx, 0x2e
or edx, dword [esp + 0x158]
mov dword [esp + 0x234], eax
movzx eax, byte [esp + 0x9c]
mov byte [esp + 0x238], al
movzx eax, byte [esp + 0x9f]
mov byte [esp + 0x239], al
movzx eax, byte [esp + 0x5f]
mov byte [esp + 0x23a], al
movzx eax, byte [esp + 0x9e]
mov byte [esp + 0x23b], al
movzx eax, byte [esp + 0x9d]
mov byte [esp + 0x23c], al
movzx eax, byte [esp + 0x5e]
mov byte [esp + 0x23d], al
jne 0x50f28d
lea eax, [esp + 0x198]
push 0x108
push eax
push ebx
call sym._memcpy
add esp, 0xc
jmp 0x50e904
mov eax, ecx
and al, 0x3f
cmp al, 0xc
je 0x50f333
and ecx, 0x3f
jne 0x50f35e
mov edi, dword [esp + 0x74]
shr edi, 8
xor esi, esi
mov cl, 1
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x3c], 0
jmp 0x50f3cf
movzx ecx, byte [esp + 0x260]
lea edi, [edx - 4]
lea ebx, [eax + 4]
mov byte [esp + 0x23], 4
mov byte [esp + 0x22], cl
mov ecx, dword [eax]
cmp ecx, 0xffffffef
jbe 0x50f321
cmp ecx, 0xffffffff
je 0x50f43f
xor ebx, ebx
mov cl, 0x10
xor edx, edx
shld edx, ebx, 8
movzx eax, al
shl ebx, 8
or ebx, eax
shl esi, 8
movzx eax, cl
or eax, esi
mov esi, dword [esp + 0x7c]
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], edx
mov dword [esi + 4], 0
mov dword [esi], 2
jmp 0x50e817
mov eax, ecx
cmp edi, eax
jae 0x50f51f
xor edx, edx
mov cl, 0x13
mov edi, ebx
jmp 0x50f2f7
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x290]
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
sub esi, ebx
jae 0x50f374
mov al, 0x13
mov dword [esp + 0xa7], ecx
mov dword [esp + 0xab], 0
jmp 0x50f391
mov dword [esp + 0x74], eax
xor esi, esi
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x3c], 0
xor edx, edx
jmp 0x50f3cf
movzx eax, byte [esp + 0x260]
mov byte [esp + 0x28], al
movzx edi, al
mov eax, dword [esp + 0x74]
mul edi
jno 0x50f4a4
mov al, 0x35
mov dword [esp + 0x28], eax
movzx ecx, byte [esp + 0xaa]
movzx edi, word [esp + 0xa8]
movzx eax, byte [esp + 0xa7]
xor ebx, ebx
mov esi, 1
shl ecx, 0x10
mov dword [esp + 0x74], eax
or edi, ecx
mov ecx, dword [esp + 0xab]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x28]
mov eax, edx
movzx ecx, cl
shl edi, 8
shl eax, 8
or ecx, eax
movzx eax, byte [esp + 0x74]
or eax, edi
or esi, ebx
je 0x50f418
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x3c]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x84]
shld edi, edx, 8
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov dword [esi + 4], 0
mov dword [esi], 2
jmp 0x50e817
mov ebx, dword [esp + 0x7c]
cmp ecx, 1
jne 0x50f272
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x280], eax
mov dword [esp + 0x284], ecx
jmp 0x50f272
cmp edi, 8
jae 0x50f4fa
mov dword [esp + 0x47], ebx
xor edx, edx
mov cl, 0x13
movzx eax, byte [esp + 0x4a]
movq xmm0, qword [esp + 0x40]
mov byte [esp + 0xaa], al
movzx eax, word [esp + 0x48]
movd esi, xmm0
mov word [esp + 0xa8], ax
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0xab], 0
shufps xmm0, xmm0, 0x55
mov eax, dword [esp + 0xa7]
movd edi, xmm0
shld edi, esi, 8
mov ebx, eax
shr ebx, 8
jmp 0x50f2eb
mov edx, esi
add ecx, ebx
sub edx, eax
jb 0x50f348
dec edi
cmp edi, 7
ja 0x50f6d0
mov ebx, dword [esp + 0x3c]
add ecx, eax
add ebx, dword [edi*4 + 0x5109b4]
jmp ebx
cmp dword [ebx + 4], 0
jne 0x50f58d
mov edi, dword [ebx]
add eax, 0xc
add edx, 0xfffffff4
mov byte [esp + 0x23], 8
mov ebx, eax
mov eax, edi
mov edi, edx
cmp edi, eax
jb 0x50f32b
cmp eax, 2
mov edi, ebx
jae 0x50f531
xor edx, edx
mov cl, 0x13
mov ebx, edi
jmp 0x50f2f7
movzx edx, word [edi]
mov dword [esp + 0x114], eax
mov eax, edx
add eax, 0xfffffffa
cmp ax, 0xfffc
jae 0x50f552
movzx ebx, dx
xor edx, edx
mov cl, 0x11
jmp 0x50ef3f
mov eax, dword [esp + 0x114]
add edi, 2
cmp dx, 4
mov dword [esp + 0xc], edi
mov edi, edx
lea eax, [eax - 2]
mov dword [esp + 0x110], eax
jbe 0x50f598
cmp dword [esp + 0x110], 0
je 0x50f5f8
cmp dword [esp + 0x114], 3
jne 0x50f605
mov edi, ebx
add edi, 3
jmp 0x50f526
xor ebx, ebx
mov cl, 0x35
xor edx, edx
jmp 0x50f2eb
mov eax, dword [esp + 0x110]
mov ebx, dword [esp + 0xc]
cmp ecx, 0xfffffff0
jb 0x50f751
cmp eax, 8
jae 0x50f707
mov dword [esp + 0xa7], ebx
shr ebx, 8
movq xmm0, qword [esp + 0xa0]
movdqa xmmword [esp + 0x2d0], xmm0
movdqa xmm1, xmm0
movd eax, xmm0
movzx ecx, byte [esp + 0x2d7]
shufps xmm1, xmm0, 0x55
movd edi, xmm1
shld edi, eax, 8
mov eax, ebx
mov ebx, ecx
mov cl, 0x13
jmp 0x50f75d
mov ebx, dword [esp + 0xc]
xor edx, edx
mov cl, 0x13
jmp 0x50f2f7
lea edx, [ebx + 4]
movzx eax, byte [ebx + 2]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xc], edx
cmp byte [ebx + 3], 0
mov byte [esp + 0x22], al
je 0x50f73a
mov cl, 0x41
jmp 0x50f81f
movzx eax, byte [esp + 0x28]
movzx ecx, word [esp + 0xa4]
mov byte [esp + 0xa0], al
movzx eax, byte [esp + 0xa6]
mov edx, dword [esp + 0xa0]
shl eax, 0x10
or ecx, eax
mov al, 0x17
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], eax
jmp 0x50f395
cmp dword [ebx + 4], 0
jne 0x50f736
mov ecx, dword [ebx]
add ebx, 8
add eax, 0xfffffff8
mov dword [esp + 0x6c], ebx
jmp 0x50f782
mov cl, 0x35
jmp 0x50f75d
mov eax, dword [esp + 0x114]
add eax, 0xfffffffc
mov ebx, dword [esp + 0xc]
cmp ecx, 0xfffffff0
jae 0x50f5ac
cmp eax, 4
jae 0x50f76e
mov eax, ebx
mov cl, 0x13
shr eax, 8
shl eax, 8
movzx ebx, bl
movd esi, xmm0
xor edx, edx
jmp 0x50f2f5
lea ecx, [ebx + 4]
add eax, 0xfffffffc
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [ebx]
sub eax, ecx
jb 0x50f810
test ecx, ecx
mov dword [esp + 0x110], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x10c], ecx
je 0x50f810
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax]
test al, al
mov byte [esp + 0x9f], al
je 0x50f81d
mov eax, dword [esp + 0x10c]
cmp word [esp + 0x78], 4
mov byte [esp + 0x5f], 1
lea ecx, [eax - 1]
mov eax, dword [esp + 0x6c]
lea eax, [eax + 1]
jb 0x50f7f5
test ecx, ecx
je 0x50f82c
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax + 1]
test al, al
mov byte [esp + 0x5f], al
je 0x50f837
mov eax, dword [esp + 0x10c]
lea ecx, [eax - 2]
mov eax, dword [esp + 0x6c]
add eax, 2
test ecx, ecx
je 0x50f82c
lea edx, [eax + 1]
cmp ecx, 1
mov dword [esp + 0x2c], edx
jne 0x50f824
mov ebx, edx
xor edx, edx
mov cl, 0x13
jmp 0x50ef3f
mov ebx, dword [esp + 0x6c]
xor edx, edx
mov cl, 0x13
jmp 0x50ef3f
mov cl, 0x1a
jmp 0x50f2f7
cmp ecx, 2
jne 0x50f83b
add eax, 2
xor edx, edx
mov cl, 0x13
mov ebx, eax
jmp 0x50f2f7
mov cl, 0x1b
jmp 0x50f81f
mov dh, byte [eax + 1]
lea edi, [eax + 3]
mov dl, byte [eax]
mov dword [esp + 0x2c], edi
mov byte [esp + 0x9e], dh
mov dh, byte [eax + 2]
test dh, dh
mov byte [esp + 0x9d], dh
je 0x50f86f
test dl, dl
setne byte [esp + 0x9c]
cmp ecx, 3
jne 0x50f873
mov ebx, edi
jmp 0x50f807
mov cl, 0x1c
jmp 0x50f81f
movzx edx, byte [eax + 3]
test dl, dl
mov byte [esp + 0x5e], dl
je 0x50f8af
movzx ebx, byte [esp + 0x5e]
lea edx, [ecx - 4]
lea edi, [eax + 4]
mov dword [esp + 0x12c], edi
dec bl
movzx ebx, bl
sub edx, ebx
mov edi, ebx
mov dword [esp + 0x154], ebx
jae 0x50f8b6
mov ebx, dword [esp + 0x12c]
jmp 0x50f32b
mov cl, 0x1d
jmp 0x50f81f
mov edi, dword [esp + 0x12c]
mov ebx, dword [esp + 0x154]
cmp word [esp + 0x78], 4
mov dword [esp + 0x118], 8
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
lea edi, [edi + ebx]
mov dword [esp + 0x2c], edi
mov dword [esp + 0xc], edi
mov dword [esp + 0x30], edx
ja 0x50f9d8
test edx, edx
je 0x50fb12
add eax, ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x58], 8
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0xc]
xor ebx, ebx
cmp byte [edi + ebx], 0
je 0x50f938
lea ecx, [edi + ebx + 1]
inc ebx
cmp ecx, eax
jne 0x50f924
jmp 0x50fad2
mov eax, ebx
lea ecx, [edi + ebx + 1]
not eax
mov dword [esp + 0x2c], ecx
add edx, eax
test ebx, ebx
mov dword [esp + 0x30], edx
je 0x50fdf8
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x11c]
jne 0x50f985
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x118]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h3fa0857fd6475545
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x58], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], edi
mov eax, ecx
inc ecx
shl eax, 4
mov dword [esp + 0x10], ecx
mov dword [edx + eax + 4], 0
mov dword [edx + eax], 0x1f
mov dword [edx + eax + 8], edi
mov dword [edx + eax + 0xc], ebx
mov dword [esp + 0x120], ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0xc], eax
add eax, edx
test edx, edx
jne 0x50f91a
jmp 0x50fb12
ud2
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x2c]
call sym.gimli::read::line::FileEntryFormat::parse::h9d6bd6ad569a9a68
movzx eax, byte [esp + 0xa0]
cmp al, 0x4b
mov dword [esp + 0x18], eax
jne 0x50fad8
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov dword [esp + 0xdc], edx
test ecx, ecx
je 0x50fb50
mov eax, ecx
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x54], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x108], ecx
lea ecx, [edx + eax]
dec eax
inc edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
xor ecx, ecx
mov eax, dword [esp + 0xc]
cmp ecx, 0x3f
movzx eax, byte [eax - 1]
mov byte [esp + 0x24], al
jne 0x50fa7c
cmp byte [esp + 0x24], 2
jae 0x50fb60
movzx ebx, byte [esp + 0x24]
mov eax, 0
mov dh, bl
and dh, 0x7f
movzx edi, dh
xor edx, edx
shld edx, edi, cl
shl edi, cl
test cl, 0x20
cmovne edx, edi
cmovne edi, eax
or dword [esp + 0x70], edx
or dword [esp + 0x54], edi
test bl, bl
jns 0x50fbd0
add ecx, 7
inc dword [esp + 0xc]
add dword [esp + 0x10], 0xffffffff
jb 0x50fa60
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
jmp 0x50fb50
mov dword [esp + 0xc], edi
jmp 0x50fb12
movzx eax, byte [esp + 0xa3]
movzx esi, word [esp + 0xa1]
mov bl, 1
shl eax, 0x10
or esi, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
jmp 0x50fb7d
mov al, 0x13
mov dword [esp + 0x14], 0
mov dword [esp + 0x58], 2
mov dword [esp + 0xdc], 0
mov dword [esp + 0x18], eax
xor ebx, ebx
jmp 0x50fb7d
mov edx, 5
mov ecx, ebx
push 0x554324
call dbg.slice_end_index_len_fail
add esp, 4
jmp 0x510758
mov al, 0x13
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
jmp 0x50fb76
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], eax
mov al, 6
mov dword [esp + 0x18], eax
movzx esi, byte [esp + 0x24]
xor ebx, ebx
cmp dword [esp + 0x11c], 0
je 0x50fb9b
push dword [esp + 0x118]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xdc], 0
sete al
or bl, al
jne 0x50fbbb
push dword [esp + 0x58]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0xc]
jmp 0x50f2f7
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
or ecx, dword [esp + 0x70]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
je 0x50fdd3
cmp dword [esp + 0x108], 0
je 0x510728
movzx eax, byte [esp + 0x23]
movzx ecx, byte [esp + 0x22]
mov dword [esp + 0x80], 0
mov dword [esp + 0x60], 8
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
shl eax, 8
lea eax, [eax + ecx + 0x50000]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x108]
lea eax, [eax*4]
mov dword [esp + 0x104], eax
add dword [esp + 0x68], 1
mov dword [esp + 0x24], 0x2e
mov dword [esp + 0x10], 0
adc dword [esp + 0x64], 0
xor edi, edi
mov eax, dword [esp + 0x58]
movzx eax, word [eax + edi + 2]
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x2c]
push eax
push dword [esp + 0x98]
call sym.gimli::read::line::parse_attribute::h63379f3de3653f0e
add esp, 8
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xb4]
or eax, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0xc], ecx
jne 0x50fdc7
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
cmp word [eax + edi], 1
cmove edx, dword [esp + 0x14]
cmove ecx, dword [esp + 0xc]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
cmove edx, dword [esp + 0x34]
cmove ecx, dword [esp + 0x18]
add edi, 4
cmp dword [esp + 0x104], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], ecx
jne 0x50fc6b
mov eax, dword [esp + 0x24]
xor eax, 0x2e
or eax, dword [esp + 0x10]
je 0x510728
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x11c]
jne 0x50fd69
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x118]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h3fa0857fd6475545
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x120]
mov dword [esp + 0x60], eax
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x24]
mov eax, ecx
inc ecx
shl eax, 4
mov dword [esp + 0x80], ecx
mov dword [edx + eax], edi
mov edi, dword [esp + 0x10]
mov dword [edx + eax + 4], edi
mov edi, dword [esp + 0x38]
mov dword [edx + eax + 0xc], edi
mov edi, dword [esp + 0x1c]
mov dword [edx + eax + 8], edi
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x120], ecx
cmp edi, dword [esp + 0x54]
sbb edx, dword [esp + 0x70]
jb 0x50fc4f
mov dword [esp + 0x24], 0
jmp 0x50fe16
mov esi, dword [esp + 0x18]
shr esi, 8
jmp 0x50fb33
mov dword [esp + 0x40], 8
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x24], 0
jmp 0x510037
mov dword [esp + 0x58], 2
mov dword [esp + 0x108], 0
mov dword [esp + 0xdc], 0
cmp word [esp + 0x78], 5
mov dword [esp + 0x40], 8
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
jae 0x510037
test esi, esi
mov eax, 0x2e
mov ecx, 0x1f
cmove ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x51068e
mov ecx, dword [esp + 0xc]
xor edi, edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], 8
add ecx, eax
mov edx, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
cmp byte [edx + ebx], 0
je 0x50fea7
mov edx, dword [esp + 0x1c]
lea edx, [edx + ebx + 1]
inc ebx
cmp edx, ecx
jne 0x50fe8b
jmp 0x510178
mov ecx, ebx
not ecx
add eax, ecx
mov ecx, dword [esp + 0x1c]
test ebx, ebx
lea ecx, [ecx + ebx + 1]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
je 0x5106f5
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x2c]
push ebx
push dword [esp + 0x20]
call sym.gimli::read::line::FileEntry_LT_R_C_Offset_GT_::parse::hf6a08d52185fc011
add esp, 8
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x94], eax
xor eax, 0x2e
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], edx
or eax, ecx
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
je 0x510712
lea eax, [esp + 0xb8]
mov ecx, dword [esp + 0x38]
movsd xmm1, qword [eax + 0x10]
movq xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
cmp ecx, dword [esp + 0x44]
movsd qword [esp + 0xf0], xmm1
movq xmm1, qword [eax + 8]
movq qword [esp + 0xf8], xmm0
movsd qword [esp + 0xe0], xmm2
movq qword [esp + 0xe8], xmm1
jne 0x50ff92
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x40]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h57dc3b7dd7269fe6
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], ecx
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x70]
imul edx, ebx, 0x38
inc ebx
mov dword [eax + edx + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x38], ebx
mov dword [eax + edx], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + edx + 8], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + edx + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + edx + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov dword [eax + edx + 0x10], ecx
movsd xmm0, qword [esp + 0xe0]
movq xmm1, qword [esp + 0xe8]
movsd qword [eax + edx + 0x18], xmm0
movq qword [eax + edx + 0x20], xmm1
movsd xmm0, qword [esp + 0xf0]
movsd qword [eax + edx + 0x28], xmm0
movq xmm0, qword [esp + 0xf8]
movq qword [eax + edx + 0x30], xmm0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x34], edx
mov dword [esp + 0xc], ecx
add ecx, eax
test eax, eax
jne 0x50fe79
jmp 0x51068e
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x2c]
call sym.gimli::read::line::FileEntryFormat::parse::h9d6bd6ad569a9a68
movzx eax, byte [esp + 0xa0]
cmp al, 0x4b
mov dword [esp + 0x18], eax
jne 0x51012b
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], edx
test ecx, ecx
je 0x510168
mov eax, ecx
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x54], ecx
lea ecx, [ebx + eax]
dec eax
inc ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
xor ecx, ecx
movzx eax, byte [ebx - 1]
cmp ecx, 0x3f
mov edx, ebx
mov byte [esp + 0x130], al
jne 0x5100d5
cmp byte [esp + 0x130], 2
jae 0x510185
movzx eax, byte [esp + 0x130]
xor edi, edi
mov dh, al
and dh, 0x7f
movzx esi, dh
mov edx, 0
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
cmovne esi, edx
or dword [esp + 0x70], edi
or dword [esp + 0x10], esi
test al, al
jns 0x5101a6
add ecx, 7
inc ebx
add dword [esp + 0x18], 0xffffffff
jb 0x5100b5
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0xc], eax
jmp 0x510168
movzx eax, byte [esp + 0xa3]
movzx esi, word [esp + 0xa1]
mov bl, 1
shl eax, 0x10
or esi, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
jmp 0x5106b7
mov al, 0x13
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
jmp 0x510197
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
jmp 0x51068e
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
mov al, 6
mov dword [esp + 0x18], eax
movzx esi, byte [esp + 0x130]
xor ebx, ebx
jmp 0x5106b7
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
or ecx, dword [esp + 0x70]
mov dword [esp + 0x30], eax
je 0x510611
cmp dword [esp + 0x54], 0
je 0x510741
movzx eax, byte [esp + 0x23]
movzx ecx, byte [esp + 0x22]
mov dword [esp + 0x100], 0
mov dword [esp + 0x148], 8
mov dword [esp + 0x150], 0
mov dword [esp + 0x14c], 0
shl eax, 8
lea edi, [eax + ecx + 0x50000]
mov eax, dword [esp + 0x54]
lea eax, [eax*4]
mov dword [esp + 0x130], eax
add dword [esp + 0x150], 1
pxor xmm0, xmm0
mov dword [esp + 0x94], 0x2e
mov dword [esp + 0x104], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
movdqa xmmword [esp + 0x2c0], xmm0
adc dword [esp + 0x14c], 0
xor esi, esi
jmp 0x5102d4
add esi, 4
cmp dword [esp + 0x130], esi
je 0x51051b
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + esi + 2]
lea ecx, [esp + 0xa0]
lea edx, [esp + 0x2c]
push eax
push edi
call sym.gimli::read::line::parse_attribute::h63379f3de3653f0e
add esp, 8
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xb0]
or eax, dword [esp + 0xa4]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], ecx
jne 0x5106ae
mov eax, dword [esp + 0x1c]
movzx ecx, word [eax + esi]
dec ecx
cmp ecx, 4
ja 0x5102c4
mov ecx, dword [ecx*4 + 0x510958]
mov eax, dword [esp + 0xc]
add ecx, dword [esp + 0x3c]
shr eax, 8
jmp ecx
mov eax, dword [esp + 0x94]
xor eax, 0x2e
or eax, dword [esp + 0x104]
je 0x510741
mov eax, dword [esp + 0x100]
cmp eax, dword [esp + 0x44]
jne 0x510565
mov edx, dword [esp + 0x100]
lea ecx, [esp + 0x40]
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h57dc3b7dd7269fe6
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x148], eax
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x148]
mov esi, dword [esp + 0x104]
movdqa xmm0, xmmword [esp + 0x2c0]
imul eax, ecx, 0x38
inc ecx
mov dword [edx + eax + 4], esi
mov esi, dword [esp + 0x94]
mov dword [esp + 0x100], ecx
mov dword [edx + eax], esi
mov esi, dword [esp + 0x194]
mov dword [edx + eax + 8], esi
mov esi, dword [esp + 0x80]
mov dword [edx + eax + 0xc], esi
mov esi, dword [esp + 0x88]
mov dword [edx + eax + 0x14], esi
mov esi, dword [esp + 0x8c]
mov dword [edx + eax + 0x10], esi
mov esi, dword [esp + 0x90]
mov dword [edx + eax + 0x1c], esi
mov esi, dword [esp + 0x60]
mov dword [edx + eax + 0x18], esi
mov esi, dword [esp + 0x64]
mov dword [edx + eax + 0x24], esi
mov esi, dword [esp + 0x68]
mov dword [edx + eax + 0x20], esi
mov esi, dword [esp + 0x150]
movdqu xmmword [edx + eax + 0x28], xmm0
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x48], ecx
cmp esi, dword [esp + 0x10]
sbb edx, dword [esp + 0x70]
jb 0x51021d
xor edi, edi
mov dword [esp + 0x10], 0x2e
mov dword [esp + 0x130], 0
movsd xmm0, qword [esp + 0x118]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x7c]
movsd qword [esp + 0x180], xmm0
movq xmm0, qword [esp + 0x40]
add eax, dword [esp + 0x10c]
mov dword [esp + 0x188], edx
mov dword [esp + 0x2a8], ecx
movq qword [esp + 0x2a0], xmm0
pxor xmm0, xmm0
mov dword [esp + 0x6c], eax
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x170], xmm0
jmp 0x50efb5
mov al, 0x13
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], eax
jmp 0x5106b5
mov esi, dword [esp + 0x18]
shr esi, 8
xor ebx, ebx
cmp dword [esp + 0x44], 0
je 0x5106cf
push dword [esp + 0x40]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x38], 0
sete al
or bl, al
jne 0x50fb33
push dword [esp + 0x1c]
push 0
push dword [0x5c6108]
call sub.KERNEL32.dll_HeapFree
jmp 0x50fb33
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x54], 0
jmp 0x510626
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 2
jmp 0x5106b2
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
push 0x59ffa4
call dbg.panic
add esp, 4
jmp 0x510758
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_threadmod.rs
push 0x59ff94
call dbg.panic
add esp, 4
ud2