Function at 0x45fa90
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc8
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x90], ecx
xor esi, esi
mov edi, edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 4
mov dword [esp + 0x40], 0
mov dword [esp + 0x10], edx
lea ecx, [edx + eax*4]
mov eax, 4
mov dword [esp + 0x2c], ecx
nop word cs:[eax + eax]
nop
cmp edi, ecx
je 0x45fbb8
mov ebx, dword [edi]
add edi, 4
test ebx, ebx
je 0x45fae0
cmp esi, dword [esp + 0x38]
mov ecx, esi
jne 0x45fb0c
lea ecx, [esp + 0x38]
mov edx, esi
call fcn.0040e570
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
neg ebx
mov dword [esp], eax
mov dword [eax + ecx*8], ebx
mov byte [eax + ecx*8 + 4], 0
inc ecx
test esi, esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + esi*8]
movzx edx, byte [eax + esi*8 + 4]
mov dword [esp + 8], ecx
mov byte [esp + 0xc], dl
je 0x45fb89
nop word cs:[eax + eax]
movzx ecx, byte [esp + 0xc]
lea ebp, [esi - 1]
mov dword [esp + 4], esi
xor edx, edx
mov esi, dword [esp]
mov ebx, ebp
shr ebx, 1
cmp cl, byte [eax + ebx*8 + 4]
mov eax, dword [esp + 8]
setbe dl
xor ecx, ecx
cmp eax, dword [esi + ebx*8]
mov eax, dword [esp]
setl cl
cmove ecx, edx
test cl, cl
jne 0x45fb8d
movsd xmm0, qword [eax + ebx*8]
mov ecx, dword [esp + 4]
cmp ebp, 1
mov esi, ebx
movsd qword [eax + ecx*8], xmm0
ja 0x45fb40
jmp 0x45fb91
xor ebx, ebx
jmp 0x45fb91
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
mov edx, dword [esp]
movzx ecx, byte [esp + 0xc]
mov esi, dword [esp + 0x14]
mov dword [edx + ebx*8], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
mov dword [eax + ebx*8 + 4], ecx
mov ecx, dword [esp + 0x2c]
jmp 0x45fae0
mov eax, dword [esp + 0x40]
cmp eax, 2
jb 0x45fef5
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x14], ebp
jmp 0x45fbe6
mov edx, ecx
movzx eax, byte [esp + 4]
mov ecx, dword [esp]
mov dword [ebp + edx*8 + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + edx*8], ecx
mov ecx, dword [ebp]
mov edx, dword [ebp + eax*8 - 8]
movzx ebx, byte [ebp + eax*8 - 4]
lea esi, [eax - 1]
mov dword [esp + 0xc], eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], ecx
mov ch, byte [ebp + 4]
mov dword [ebp], edx
mov dword [esp], edx
xor edx, edx
sub esi, 2
mov byte [esp + 4], bl
mov byte [ebp + 4], bl
mov ebx, ebp
mov ebp, 1
cmovb esi, edx
cmp eax, 4
mov byte [esp + 0x34], ch
jb 0x45fc66
xor edi, edi
nop dword [eax + eax]
movzx eax, byte [ebx + ebp*8 + 4]
xor edx, edx
mov ecx, dword [ebx + ebp*8]
cmp al, byte [ebx + ebp*8 + 0xc]
setbe dl
xor eax, eax
cmp ecx, dword [ebx + ebp*8 + 8]
setl al
cmove eax, edx
movzx edx, al
add edx, ebp
movsd xmm0, qword [ebx + edx*8]
lea ebp, [edx + edx + 1]
cmp ebp, esi
movsd qword [ebx + edi*8], xmm0
mov edi, edx
jbe 0x45fc30
mov eax, dword [esp + 0xc]
lea ecx, [eax - 2]
cmp ebp, ecx
jne 0x45fc90
mov eax, dword [esp + 0x14]
movsd xmm0, qword [eax + ebp*8]
movsd qword [eax + edx*8], xmm0
jmp 0x45fc96
mov eax, dword [esp + 0x14]
mov ebp, edx
movzx edx, byte [esp + 4]
mov esi, dword [esp]
test ebp, ebp
mov dword [esp + 0x28], ecx
mov dword [eax + ebp*8], esi
mov dword [esp + 8], edx
mov dword [eax + ebp*8 + 4], edx
je 0x45fd00
mov eax, dword [esp + 0x14]
nop word cs:[eax + eax]
nop
movzx ebx, byte [esp + 4]
lea esi, [ebp - 1]
xor ecx, ecx
mov edi, dword [esp]
mov edx, esi
shr edx, 1
cmp byte [eax + edx*8 + 4], bl
setae cl
xor ebx, ebx
cmp dword [eax + edx*8], edi
setg bl
cmove ebx, ecx
test bl, bl
jne 0x45fd10
movsd xmm0, qword [eax + edx*8]
cmp esi, 1
movsd qword [eax + ebp*8], xmm0
mov ebp, edx
ja 0x45fcc0
jmp 0x45fd12
mov eax, dword [esp + 0x14]
xor edx, edx
jmp 0x45fd12
mov edx, ebp
mov ecx, dword [esp]
mov edi, dword [esp + 0x28]
mov ebp, eax
mov dword [eax + edx*8], ecx
mov ecx, dword [esp + 8]
test edi, edi
mov dword [eax + edx*8 + 4], ecx
mov edx, dword [esp + 0xc]
mov esi, dword [eax + edx*8 - 0x10]
movzx ecx, byte [eax + edx*8 - 0xc]
je 0x45fdd0
mov eax, dword [ebp]
mov dword [esp + 4], esi
mov byte [esp + 8], cl
mov dword [esp], eax
mov ah, byte [ebp + 4]
mov dword [ebp], esi
xor esi, esi
sub edi, 2
mov byte [ebp + 4], cl
mov ecx, 1
cmovb edi, esi
cmp edx, 5
mov byte [esp + 0x18], ah
jb 0x45fda9
xor ebx, ebx
nop word [eax + eax]
movzx eax, byte [ebp + ecx*8 + 4]
xor edx, edx
mov esi, dword [ebp + ecx*8]
cmp al, byte [ebp + ecx*8 + 0xc]
setbe dl
xor eax, eax
cmp esi, dword [ebp + ecx*8 + 8]
setl al
cmove eax, edx
movzx esi, al
add esi, ecx
movsd xmm0, qword [ebp + esi*8]
lea ecx, [esi + esi + 1]
cmp ecx, edi
movsd qword [ebp + ebx*8], xmm0
mov ebx, esi
jbe 0x45fd70
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
cmp ecx, eax
jne 0x45fde0
mov ebp, dword [esp + 0x14]
movsd xmm0, qword [ebp + ecx*8]
movsd qword [ebp + esi*8], xmm0
jmp 0x45fde6
movzx ebx, byte [esp + 0x34]
jmp 0x45fe7b
mov ebp, dword [esp + 0x14]
mov ecx, esi
movzx eax, byte [esp + 8]
mov esi, dword [esp + 4]
test ecx, ecx
movzx edx, al
mov dword [ebp + ecx*8], esi
mov dword [esp + 0x24], edx
mov dword [ebp + ecx*8 + 4], edx
je 0x45fe50
nop word cs:[eax + eax]
nop dword [eax]
movzx eax, byte [esp + 8]
lea esi, [ecx - 1]
xor ebx, ebx
mov edi, dword [esp + 4]
mov edx, esi
shr edx, 1
cmp byte [ebp + edx*8 + 4], al
setae bl
xor eax, eax
cmp dword [ebp + edx*8], edi
setg al
cmove eax, ebx
test al, al
jne 0x45fe54
movsd xmm0, qword [ebp + edx*8]
cmp esi, 1
movsd qword [ebp + ecx*8], xmm0
mov ecx, edx
ja 0x45fe10
jmp 0x45fe56
xor edx, edx
jmp 0x45fe56
mov edx, ecx
mov eax, dword [esp + 4]
movzx ebx, byte [esp + 0x34]
mov esi, dword [esp]
movzx ecx, byte [esp + 0x18]
mov edi, dword [esp + 0x28]
mov dword [ebp + edx*8], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + edx*8 + 4], eax
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x60]
add esi, eax
movzx eax, bl
cmp bl, cl
mov dword [esp], eax
movzx eax, cl
mov dword [ebp + edx*8 - 0x10], esi
cmova eax, dword [esp]
mov dword [esp], esi
inc al
test edi, edi
mov dword [esp + 4], eax
mov byte [ebp + edx*8 - 0xc], al
je 0x45ff03
nop word cs:[eax + eax]
nop
mov ecx, dword [esp + 4]
lea esi, [edi - 1]
xor eax, eax
mov edx, esi
shr edx, 1
cmp cl, byte [ebp + edx*8 + 4]
mov ecx, edi
mov edi, dword [esp]
setbe al
xor ebx, ebx
cmp edi, dword [ebp + edx*8]
setl bl
cmove ebx, eax
test bl, bl
jne 0x45fbd0
movsd xmm0, qword [ebp + edx*8]
cmp esi, 1
mov edi, edx
movsd qword [ebp + ecx*8], xmm0
ja 0x45feb0
jmp 0x45fbd2
test eax, eax
je 0x4615a5
mov ebp, dword [esp + 0x3c]
jmp 0x45ff11
movzx eax, byte [esp + 4]
mov ecx, dword [esp]
mov dword [ebp], ecx
mov dword [ebp + 4], eax
movzx ebx, byte [ebp + 4]
push ebp
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x10]
cmp bl, 2
mov bh, byte [esp + 0xe0]
movzx eax, bl
mov ecx, 1
mov esi, 0xffffffff
cmovae ecx, eax
movzx eax, bh
cmp bh, cl
cmovae eax, ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xdc]
lea eax, [eax*4]
nop dword [eax]
test eax, eax
je 0x4600d7
mov ebp, dword [edx]
mov ebx, esi
add edx, 4
add eax, 0xfffffffc
inc esi
test ebp, ebp
je 0x45ff60
mov dword [esp + 0x10], edx
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x45ff9e
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4616f6
mov dword [0x5a1188], eax
push 2
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4616f6
mov word [eax], si
mov edi, eax
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x45ffd9
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461711
mov dword [0x5a1188], eax
push 0x40
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461711
add ebx, 2
mov dword [eax], 1
mov dword [eax + 4], edi
mov dword [eax + 8], 1
mov dword [eax + 0xc], ebp
mov dword [esp + 0x38], 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 1
mov dword [esp + 0x1c], 1
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
nop
cmp edx, ecx
je 0x4600eb
mov esi, dword [edx]
mov edi, ebx
add edx, 4
inc ebx
test esi, esi
je 0x460030
mov dword [esp], eax
mov dword [esp + 0x10], edx
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x46006e
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4616f6
mov dword [0x5a1188], eax
push 2
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x4616f6
mov word [eax], di
mov edi, dword [esp + 0x1c]
mov ebp, eax
mov eax, dword [esp]
cmp edi, dword [esp + 0x38]
je 0x4600c1
dec dword [esp + 0x30]
mov ecx, edi
inc edi
shl ecx, 4
mov dword [esp + 0x1c], edi
mov dword [eax + ecx], 1
mov dword [eax + ecx + 4], ebp
mov dword [eax + ecx + 8], 1
mov dword [eax + ecx + 0xc], esi
mov dword [esp + 0x40], edi
jmp 0x460026
lea ecx, [esp + 0x38]
mov edx, edi
push 1
call fcn.005332f0
add esp, 4
mov eax, dword [esp + 0x3c]
jmp 0x460093
mov edx, 4
mov dword [esp + 0x7c], 0
xor edi, edi
jmp 0x4606e1
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
cmp edi, 0x15
mov dword [esp + 0x20], edx
mov dword [esp + 0x7c], eax
jae 0x460124
cmp edi, 1
jbe 0x4606e1
mov ecx, edx
mov edx, edi
push 1
call fcn.00461760
mov edx, dword [esp + 0x24]
add esp, 4
jmp 0x4606e1
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460147
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x46172f
mov dword [0x5a1188], eax
lea ecx, [edi*8]
and ecx, 0x7ffffff0
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esp + 4], eax
je 0x46172f
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x46018d
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461743
mov dword [0x5a1188], eax
push pe_nt_image_headers32
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461743
mov ebp, eax
mov eax, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x2c], 0x10
mov dword [esp + 0x1c], edi
lea ecx, [eax + 0x2c]
mov dword [esp + 0x58], ecx
lea ecx, [eax - 0x10]
mov dword [esp + 0x24], ecx
xor ecx, ecx
jmp 0x4601e5
mov esi, 1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
cmp ecx, edi
jae 0x4606be
mov edx, edi
mov dword [esp + 0xc], esi
mov esi, ecx
mov ebx, ecx
sub edx, ecx
shl esi, 4
mov dword [esp], ebx
lea ecx, [eax + esi]
cmp edx, 2
mov dword [esp + 8], ecx
jae 0x460210
mov eax, edx
jmp 0x460330
mov edi, dword [ecx + 0x1c]
cmp edi, dword [ecx + 0xc]
jae 0x4602f0
mov eax, 2
cmp edx, 2
je 0x46025e
mov eax, dword [esp + 0x30]
add esi, dword [esp + 0x58]
mov dword [esp + 0x18], ebp
add ebx, eax
mov eax, 2
nop dword [eax]
mov ebp, edi
mov edi, dword [esi]
cmp edi, ebp
jae 0x460257
lea ebp, [ebx + eax + 1]
inc eax
add esi, 0x10
cmp ebp, 1
jne 0x460240
mov eax, edx
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp]
mov edx, eax
add edx, ebx
jb 0x4616ae
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov ebx, edx
cmp edx, edi
ja 0x4616bb
cmp eax, 2
jb 0x4602dd
mov esi, ebx
mov edx, eax
mov edi, ecx
shl esi, 4
shr edx, 1
add esi, dword [esp + 0x24]
nop
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
add edi, 0x10
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0xfffffff0
dec edx
jne 0x460290
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov ecx, dword [esp]
mov edx, ebx
jmp 0x46033d
mov eax, 2
cmp edx, 2
je 0x460330
mov eax, dword [esp + 0x30]
add esi, dword [esp + 0x58]
mov dword [esp + 0x18], ebp
add ebx, eax
mov eax, 2
nop dword [eax]
mov ebp, edi
mov edi, dword [esi]
cmp edi, ebp
jb 0x460327
lea ebp, [ebx + eax + 1]
inc eax
add esi, 0x10
cmp ebp, 1
jne 0x460310
mov eax, edx
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp]
nop
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
lea edx, [eax + ebx]
mov ecx, ebx
mov ebx, edx
sub ebx, ecx
jb 0x461665
cmp edx, edi
ja 0x461665
mov dword [esp + 0x10], edx
jae 0x460386
cmp eax, 0xa
jae 0x460386
mov ecx, dword [esp]
lea ebx, [ecx + 0xa]
cmp ebx, edi
cmovae ebx, edi
mov dword [esp + 0x10], ebx
sub ebx, ecx
jb 0x46168d
mov ecx, dword [esp + 8]
cmp eax, 1
mov edx, ebx
adc eax, 0
push eax
call fcn.00461760
add esp, 4
cmp esi, dword [esp + 0x2c]
jne 0x4603fe
mov dword [esp + 0x18], ebp
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x4603b3
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461679
mov dword [0x5a1188], eax
mov esi, dword [esp + 0xc]
mov ecx, esi
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461679
mov ebp, eax
lea eax, [esi + esi]
mov dword [esp + 0x2c], eax
lea eax, [esi*8]
push eax
push dword [esp + 0x1c]
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esp + 0x18]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp]
mov dword [ebp + esi*8], ebx
mov dword [esp + 0x18], ebp
mov dword [ebp + esi*8 + 4], eax
inc esi
cmp esi, 2
jae 0x46047e
jmp 0x4601d5
mov eax, dword [esp + 4]
mov edx, ebp
mov edi, dword [esp + 0xc]
sub esi, eax
lea ebx, [edi - 1]
push esi
push eax
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
add eax, dword [esp + 0x5c]
mov dword [ebp + ecx*8 + 8], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, edi
shl ecx, 3
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov edi, dword [esp + 0x1c]
cmp ebx, 1
mov esi, ebx
jbe 0x4601d0
mov eax, dword [ebp + esi*8 - 8]
mov ecx, dword [ebp + esi*8 - 4]
add ecx, eax
cmp ecx, edi
je 0x4604d0
mov edx, dword [ebp + esi*8 - 0x10]
cmp edx, eax
jbe 0x4604d0
cmp esi, 2
jbe 0x46069d
mov ecx, dword [ebp + esi*8 - 0x18]
lea edi, [esi - 3]
mov ebx, esi
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x46068c
cmp ebx, 3
jbe 0x4606a7
add edx, ecx
mov esi, ebx
cmp dword [ebp + ebx*8 - 0x20], edx
mov edx, edi
jbe 0x4604dc
jmp 0x4606b5
cmp esi, 3
jb 0x4604e0
mov ecx, dword [ebp + esi*8 - 0x18]
lea edx, [esi - 3]
cmp ecx, eax
jb 0x4604e3
lea edx, [esi - 2]
cmp esi, edx
jbe 0x4615dd
lea eax, [edx + 1]
cmp esi, eax
jbe 0x4615e8
mov ebx, dword [ebp + edx*8 + 8]
mov edi, dword [ebp + edx*8 + 0xc]
mov ecx, dword [ebp + edx*8 + 4]
add edi, ebx
mov eax, edi
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
jb 0x46161e
cmp edi, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
ja 0x46162a
mov dword [esp + 0x60], ebx
mov ebx, dword [ebp + edx*8]
mov dword [esp + 0x28], ecx
shl ecx, 4
lea esi, [ebp + edx*8]
shl edi, 4
mov dword [esp + 0x14], edx
add ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x34], esi
mov dword [esp], ecx
mov esi, ebx
mov dword [esp + 0x5c], ebx
shl esi, 4
sub eax, ebx
lea ebp, [ecx + esi]
cmp eax, ebx
jae 0x460600
mov esi, eax
mov dword [esp + 8], eax
shl esi, 4
push esi
push ebp
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [esp + 4]
test ebx, ebx
jle 0x460420
cmp dword [esp + 8], 0
jle 0x460420
add edi, dword [esp + 0x24]
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [esi - 4]
mov edx, dword [ebp - 4]
mov ebx, ebp
mov ebp, 0
mov eax, esi
mov esi, 0
cmp ecx, edx
sbb ebp, ebp
cmp ecx, edx
adc esi, 0xffffffff
shl ebp, 4
shl esi, 4
add ebp, ebx
add esi, eax
cmp ecx, edx
mov eax, esi
cmovb eax, ebp
cmp ebp, dword [esp]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [edi + 8], xmm1
movsd qword [edi], xmm0
jbe 0x460420
add edi, 0xfffffff0
cmp esi, dword [esp + 4]
ja 0x4605a0
jmp 0x460420
push esi
push ecx
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add esi, dword [esp + 4]
test ebx, ebx
jle 0x460680
cmp dword [esp + 8], ebx
jle 0x460680
add edi, dword [esp + 0x20]
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
nop
mov ebx, dword [ebp + 0xc]
mov edx, eax
xor eax, eax
xor ecx, ecx
cmp ebx, dword [edx + 0xc]
mov ebx, edx
cmovb ebx, ebp
setae al
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
setb bl
shl eax, 4
add eax, edx
mov edx, dword [esp]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
add edx, 0x10
cmp eax, esi
jae 0x460426
mov cl, bl
mov dword [esp], edx
shl ecx, 4
add ebp, ecx
cmp ebp, edi
jb 0x460630
jmp 0x460684
mov eax, dword [esp + 4]
mov edx, dword [esp]
jmp 0x460426
mov esi, ebx
mov edx, edi
cmp ecx, eax
jae 0x4604e0
jmp 0x4604e3
mov esi, 2
jmp 0x4601d5
mov edi, dword [esp + 0x1c]
mov esi, 3
jmp 0x4601d5
mov edi, dword [esp + 0x1c]
jmp 0x4601d5
push ebp
push 0
push dword [0x5a1188]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push dword [esp + 4]
push 0
push dword [0x5a1188]
call esi
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x84]
mov dword [esp + 0x20], edx
push edi
call fcn.00461850
add esp, 4
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], edi
dec al
mov dword [esp + 0x68], eax
je 0x460bc7
xor eax, eax
jmp 0x46075c
cmp dword [esp + 0x6c], 0
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x1c]
je 0x46072e
push eax
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x9c]
movsd xmm0, qword [esp + 0x94]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x30]
movsd qword [esp + 0x84], xmm0
cmp al, byte [esp + 0x68]
je 0x460bc7
mov edx, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
mov ecx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xa8], edx
movsd qword [esp + 0xa0], xmm0
mov byte [esp + 0xac], cl
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xa0]
call fcn.004619c0
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0xbc]
push edi
call fcn.00461850
add esp, 4
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0xc4]
mov ebp, esi
mov edi, eax
add esi, eax
je 0x460820
cmp esi, 0x7ffffff
ja 0x461654
mov ebx, esi
shl ebx, 4
js 0x461654
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460800
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461659
mov dword [0x5a1188], eax
push ebx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x460828
jmp 0x461659
mov dword [esp + 0x28], 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0xb4]
mov edx, dword [esp + 0xbc]
mov esi, edi
shl ebp, 4
mov dword [esp], 0
shl esi, 4
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xb0]
inc cl
add esi, ebx
mov dword [esp + 0x80], edx
mov edi, ebx
mov edx, 0x80000001
mov dword [esp + 0x78], 0
mov dword [esp + 0x64], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc0]
add ebp, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ebp
mov ebp, 0x80000001
jmp 0x4608f4
mov esi, dword [esp]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 8], 0x80000001
shl esi, 4
mov dword [eax + esi], ebx
lea ecx, [eax + esi]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 4]
mov eax, dword [esp]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov dword [ecx + 0xc], esi
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
inc eax
mov dword [esp], eax
mov dword [esp + 0x78], eax
cmp ebp, 0x80000001
je 0x460a00
cmp edx, 0x80000001
jne 0x460953
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x2c]
je 0x460a60
lea ebx, [ecx + 0x10]
mov edx, esi
mov esi, ebp
mov eax, dword [ecx]
mov ebp, ecx
mov ecx, dword [ecx + 4]
mov dword [esp + 8], edi
mov edi, dword [esp + 8]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 8]
cmp eax, 0x80000000
mov dword [esp + 0x5c], ecx
mov ecx, dword [ebp + 0xc]
mov ebp, esi
mov esi, edx
mov edx, eax
mov dword [esp + 4], ecx
je 0x460a64
cmp ebp, 0x80000000
je 0x460a50
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 4]
jae 0x4609c0
mov eax, dword [esp]
mov dword [esp + 8], edx
cmp eax, dword [esp + 0x70]
jne 0x460989
mov edx, dword [esp]
lea ecx, [esp + 0x70]
call fcn.0040e7f0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov esi, dword [esp]
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], 0x80000001
shl esi, 4
mov dword [esp + 0x28], eax
mov dword [eax + esi], ebp
lea ecx, [eax + esi]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x4608d4
mov eax, dword [esp]
mov ebx, edx
mov dword [esp + 0xc], ebp
cmp eax, dword [esp + 0x70]
jne 0x4608b0
mov edx, dword [esp]
lea ecx, [esp + 0x70]
call fcn.0040e7f0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x28], eax
mov dword [esp], ecx
jmp 0x4608b0
cmp edi, esi
je 0x460a2f
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov ebp, dword [edi]
add edi, 0x10
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
cmp edx, 0x80000001
jne 0x460953
jmp 0x460908
mov ebp, 0x80000000
mov edi, esi
cmp edx, 0x80000001
je 0x460908
jmp 0x460953
mov ebx, dword [esp + 0x34]
jmp 0x460a75
mov ebx, dword [esp + 0x2c]
mov edx, 0x80000000
cmp ebp, 0x80000000
jne 0x460b20
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ebx
lea edx, [esp + 0x38]
mov dword [esp + 0x54], ecx
lea ecx, [esp + 0x70]
call fcn.00461bb0
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
sub esi, edi
mov dword [esp + 0x9c], eax
movsd qword [esp + 0x94], xmm0
je 0x460710
shr esi, 4
add edi, 4
jmp 0x460afa
add edi, 0x10
dec esi
je 0x460710
cmp dword [edi - 4], 0
je 0x460af0
push dword [edi]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x460af0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x70]
lea edx, [esp + 0x38]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
call fcn.00461bb0
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
mov edi, dword [esp + 0x1c]
sub esi, ebx
mov dword [esp + 0x9c], eax
movsd qword [esp + 0x94], xmm0
je 0x460bb0
shr esi, 4
add ebx, 4
jmp 0x460b96
add ebx, 0x10
dec esi
je 0x460bb0
cmp dword [ebx - 4], 0
je 0x460b90
push dword [ebx]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x460b90
cmp dword [esp + 0x80], 0
mov eax, dword [esp + 0x58]
jne 0x46071f
jmp 0x46072e
mov eax, dword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460c03
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x4616e5
mov dword [0x5a1188], eax
push dword [esp + 0xdc]
push 8
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esp + 8], eax
je 0x4616e5
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa0]
call fcn.004619c0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 8]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x28], esi
shl eax, 4
lea ecx, [esi + eax]
add eax, 0xfffffff0
mov dword [esp + 4], eax
lea eax, [esi + 0x14]
mov dword [esp + 0xc], ecx
mov dword [esp], eax
test ebx, ebx
je 0x460c94
cmp eax, edi
je 0x460c81
movzx ecx, word [eax]
cmp ecx, dword [esp + 0xdc]
jae 0x4615b7
inc byte [ebp + ecx]
add eax, 2
jmp 0x460c60
test edx, edx
je 0x460c94
push ebx
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
cmp esi, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
je 0x460d07
mov edx, dword [esi]
lea eax, [esi + 0x10]
cmp edx, 0x80000000
je 0x460cc7
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
add dword [esp + 4], 0xfffffff0
add dword [esp], 0x10
mov esi, eax
lea edi, [ebx + ecx*2]
mov eax, ebx
jmp 0x460c60
cmp dword [esp + 0xc], eax
je 0x460d07
shr dword [esp + 4], 4
jmp 0x460cec
add esi, 0x10
dec dword [esp + 4]
mov dword [esp], esi
je 0x460d07
mov esi, dword [esp]
cmp dword [esi - 4], 0
je 0x460ce0
push dword [esi]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
jmp 0x460ce0
cmp dword [esp + 0x14], 0
je 0x460d20
push dword [esp + 0x28]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x20]
test edi, edi
je 0x460d52
lea esi, [eax + 4]
jmp 0x460d36
add esi, 0x10
dec edi
je 0x460d52
cmp dword [esi - 4], 0
je 0x460d30
push dword [esi]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp + 0x20]
jmp 0x460d30
cmp dword [esp + 0x7c], 0
je 0x460d68
push eax
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 0xdc]
xor ecx, ecx
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
cmp byte [ebx + ecx], 0
lea esi, [ebx + ecx]
cmovne edx, esi
cmovne eax, ecx
inc ecx
cmp edi, ecx
jne 0x460d80
inc eax
test edx, edx
mov edi, 1
cmovne edi, eax
xor ecx, ecx
test edi, edi
je 0x460e23
cmp edi, 0x20000000
jae 0x461654
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
lea esi, [edi*4]
test eax, eax
jne 0x460ddd
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461705
mov dword [0x5a1188], eax
push esi
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461705
mov edx, eax
cmp edi, 2
jb 0x460e0f
lea ecx, [edi - 1]
mov eax, edx
nop dword [eax + eax]
mov word [eax], 0
mov byte [eax + 2], 0
add eax, 4
dec ecx
jne 0x460e00
mov word [eax], 0
mov byte [eax + 2], 0
mov eax, dword [esp + 0xdc]
xor ecx, ecx
jmp 0x460e31
mov eax, dword [esp + 0xdc]
mov edx, 2
xor edi, edi
lea esi, [ebx + eax]
mov dword [esp], esi
nop word [eax + eax]
cmp eax, ecx
je 0x460f2d
mov esi, ecx
mov ecx, dword [esp + 8]
movzx ebx, byte [ecx + esi]
lea ecx, [esi + 1]
test bl, bl
je 0x460e40
mov dword [esp + 4], ecx
mov dword [esp + 0x30], edx
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460e84
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461720
mov dword [0x5a1188], eax
push 0x10
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461720
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov word [eax], si
mov byte [eax + 2], bl
mov dword [esp + 0x38], 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 1
mov dword [esp + 0x64], 0
lea ebp, [ecx + esi + 1]
mov ecx, dword [esp + 4]
nop word cs:[eax + eax]
nop
cmp ebp, edx
je 0x460f36
movzx ebx, byte [ebp]
mov edi, ecx
inc ebp
inc ecx
test bl, bl
je 0x460ee0
mov esi, dword [esp + 0x10]
cmp esi, dword [esp + 0x38]
je 0x460f11
dec dword [esp + 0x64]
mov word [eax + esi*4], di
mov byte [eax + esi*4 + 2], bl
inc esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], esi
jmp 0x460ee0
mov dword [esp + 4], ecx
lea ecx, [esp + 0x38]
mov edx, esi
call fcn.00533390
mov edx, dword [esp]
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x3c]
jmp 0x460efa
mov esi, dword [esp + 8]
jmp 0x46157c
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
cmp ebp, 0x15
mov dword [esp + 0x7c], eax
mov dword [esp + 0x24], ecx
jae 0x460f6d
cmp ebp, 1
jbe 0x4614e8
mov ecx, dword [esp + 0x24]
mov edx, ebp
push 1
call fcn.00461dd0
add esp, 4
jmp 0x4614ec
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460f90
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x46172f
mov dword [0x5a1188], eax
lea ecx, [ebp + ebp]
and ecx, 0x7ffffffc
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x46172f
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x460fd3
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461743
mov dword [0x5a1188], eax
push pe_nt_image_headers32
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461743
mov edi, eax
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov dword [esp + 0x6c], 0x10
mov dword [esp + 0x10], ebp
lea ecx, [eax + 2]
lea edx, [eax - 2]
add eax, 0xfffffffc
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x68], edx
jmp 0x461031
mov ebx, 1
mov eax, dword [esp + 0x20]
cmp eax, ebp
jae 0x4614c9
mov esi, dword [esp + 0x24]
mov edx, ebp
mov ecx, eax
mov dword [esp + 0x14], ebx
sub edx, eax
mov dword [esp], ecx
cmp edx, 2
lea ecx, [esi + ecx*4]
jae 0x4610c0
mov eax, edx
mov ebx, dword [esp]
mov dword [esp + 4], eax
add eax, ebx
mov esi, eax
sub esi, ebx
jb 0x461665
cmp eax, ebp
ja 0x461665
jae 0x461190
cmp dword [esp + 4], 0xa
jae 0x461190
lea esi, [ebx + 0xa]
cmp esi, ebp
cmovae esi, ebp
mov dword [esp + 0x20], esi
sub esi, ebx
jb 0x46169e
mov eax, dword [esp + 4]
mov edx, esi
cmp eax, 1
adc eax, 0
push eax
call fcn.00461dd0
add esp, 4
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x14], eax
je 0x4611a2
mov ebx, dword [esp + 0x14]
jmp 0x461212
movzx ebx, byte [ecx + 6]
mov eax, 2
mov dword [esp + 0x18], edi
cmp bl, byte [ecx + 2]
jae 0x461470
cmp edx, 2
je 0x46110a
mov eax, dword [esp + 0x64]
mov esi, dword [esp]
add esi, eax
mov eax, 2
nop dword [eax]
mov bh, bl
mov bl, byte [ecx + eax*4 + 2]
cmp bl, bh
jae 0x46110a
lea edi, [esi + eax + 1]
inc eax
cmp edi, 1
mov edi, dword [esp + 0x18]
jne 0x4610f0
mov eax, edx
mov ebx, dword [esp]
mov dword [esp + 4], eax
add eax, ebx
jb 0x4616c9
cmp eax, ebp
ja 0x4616d7
mov edx, dword [esp + 4]
cmp edx, 2
jb 0x461055
mov esi, dword [esp + 0x80]
mov edi, eax
shr edx, 1
mov dword [esp + 0x20], edi
lea esi, [esi + ebx*4]
mov ebx, dword [esp + 0x68]
lea edi, [ebx + edi*4]
nop word [eax + eax]
movzx ebx, word [esi - 2]
movzx eax, byte [esi]
movzx ebp, word [edi - 2]
mov ah, byte [edi]
mov word [esi - 2], bp
mov byte [esi], ah
mov word [edi - 2], bx
mov byte [edi], al
add esi, 4
add edi, 0xfffffffc
dec edx
jne 0x461150
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp]
jmp 0x461055
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x14], eax
jne 0x4610af
movzx eax, byte [0x5a11e8]
mov eax, dword [0x5a1188]
test eax, eax
jne 0x4611c5
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x461679
mov dword [0x5a1188], eax
mov ebx, dword [esp + 0x14]
mov ecx, ebx
shl ecx, 4
push ecx
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x461679
mov ecx, eax
lea eax, [ebx + ebx]
mov dword [esp + 0x6c], eax
lea eax, [ebx*8]
push eax
push edi
push ecx
mov dword [esp + 0x10], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push edi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [esp + 4]
mov eax, dword [esp]
mov dword [edi + ebx*8], esi
mov dword [esp + 0x18], edi
mov dword [edi + ebx*8 + 4], eax
inc ebx
cmp ebx, 2
jae 0x46128b
jmp 0x461025
mov ebp, dword [esp]
mov ebx, dword [esp + 0x14]
sub edi, ecx
lea esi, [ebx - 1]
push edi
push ecx
push ebp
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x5c]
add eax, dword [esp + 0xc]
mov dword [edi + ecx*8 + 8], eax
mov eax, dword [esp + 0x60]
mov dword [edi + ecx*8 + 0xc], eax
not ecx
lea eax, [edx + 8]
add ecx, ebx
shl ecx, 3
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov ebp, dword [esp + 0x10]
cmp esi, 1
mov ebx, esi
jbe 0x461020
mov eax, dword [edi + ebx*8 - 8]
mov ecx, dword [edi + ebx*8 - 4]
add ecx, eax
cmp ecx, ebp
je 0x4612e0
mov edx, dword [edi + ebx*8 - 0x10]
cmp edx, eax
jbe 0x4612e0
cmp ebx, 2
jbe 0x4614b1
mov ecx, dword [edi + ebx*8 - 0x18]
lea esi, [edx + eax]
lea ebp, [ebx - 3]
cmp ecx, esi
jbe 0x46144f
cmp ebx, 3
jbe 0x4614bb
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov edx, ebp
mov ebp, dword [esp + 0x10]
jbe 0x4612ec
jmp 0x461025
cmp ebx, 3
jb 0x4612f0
mov ecx, dword [edi + ebx*8 - 0x18]
lea edx, [ebx - 3]
cmp ecx, eax
jb 0x4612f3
lea edx, [ebx - 2]
cmp ebx, edx
jbe 0x4615dd
lea eax, [edx + 1]
mov dword [esp + 0x14], ebx
cmp ebx, eax
jbe 0x4615e8
mov eax, dword [edi + edx*8 + 8]
mov ebx, dword [edi + edx*8 + 0xc]
mov ecx, dword [edi + edx*8 + 4]
add ebx, eax
mov esi, ebx
sub esi, ecx
jb 0x46163a
cmp ebx, ebp
mov dword [esp + 0x28], eax
ja 0x461646
lea eax, [edi + edx*8]
mov edi, dword [edi + edx*8]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], eax
lea ecx, [edx + ecx*4]
mov edx, esi
mov dword [esp + 0xc], edi
sub edx, edi
lea ebp, [ecx + edi*4]
mov dword [esp], ecx
cmp edx, edi
jae 0x4613d0
lea eax, [edx*4]
push eax
push ebp
mov esi, dword [esp + 0x24]
push esi
mov dword [esp + 0x10], edx
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x10]
mov eax, esi
add esp, 0xc
test edi, edi
lea edi, [esi + ecx*4]
jle 0x4613c8
test ecx, ecx
jle 0x4613c8
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ebx*4]
nop dword [eax + eax]
movzx edx, byte [edi - 2]
mov dh, byte [ebp - 2]
mov esi, 0
mov ebx, 0
cmp dl, dh
sbb esi, esi
cmp dl, dh
adc ebx, 0xffffffff
cmp dl, dh
lea ebp, [ebp + esi*4]
lea edi, [edi + ebx*4]
mov edx, edi
cmovb edx, ebp
cmp ebp, dword [esp]
mov edx, dword [edx]
mov dword [ecx], edx
jbe 0x4613c8
add ecx, 0xfffffffc
cmp edi, eax
ja 0x461390
mov ecx, eax
jmp 0x461233
lea eax, [edi*4]
push eax
push ecx
mov edi, dword [esp + 0x24]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x18]
mov ecx, edi
add esp, 0xc
test eax, eax
lea edi, [edi + eax*4]
jle 0x461230
cmp esi, eax
jle 0x461230
mov eax, dword [esp + 0x24]
lea eax, [eax + ebx*4]
mov dword [esp + 4], eax
nop word [eax + eax]
movzx eax, byte [ebp + 2]
xor ebx, ebx
xor edx, edx
mov esi, dword [esp]
cmp al, byte [ecx + 2]
mov eax, ecx
cmovb eax, ebp
setae bl
mov eax, dword [eax]
lea ecx, [ecx + ebx*4]
setb bl
mov dword [esi], eax
add esi, 4
cmp ecx, edi
mov dword [esp], esi
jae 0x461230
mov dl, bl
lea ebp, [ebp + edx*4]
cmp ebp, dword [esp + 4]
jb 0x461410
jmp 0x461230
mov edx, ebp
mov ebp, dword [esp + 0x10]
cmp ecx, eax
jae 0x4612f0
jmp 0x4612f3
cmp edx, 2
je 0x46104c
mov eax, dword [esp + 0x64]
mov esi, dword [esp]
add esi, eax
mov eax, 2
nop word [eax + eax]
mov bh, bl
mov bl, byte [ecx + eax*4 + 2]
cmp bl, bh
jb 0x46104c
lea edi, [esi + eax + 1]
inc eax
cmp edi, 1
mov edi, dword [esp + 0x18]
jne 0x461490
jmp 0x46104a
mov ebx, 2
jmp 0x461025
mov ebp, dword [esp + 0x10]
mov ebx, 3
jmp 0x461025
push edi
push 0
push dword [0x5a1188]
mov esi, dword [sym.imp.kernel32.dll_HeapFree]
call esi
push dword [esp + 0x1c]
push 0
push dword [0x5a1188]
call esi
test ebp, ebp
je 0x461553
mov esi, dword [esp + 0x24]
xor edx, edx
xor ebx, ebx
lea eax, [esi + ebp*4]
mov dword [esp], eax
nop word [eax + eax]
mov ch, dl
movzx edx, byte [esi + 2]
xor edi, edi
mov cl, dl
sub cl, ch
and cl, 0xf
shl ebx, cl
test dl, dl
je 0x461531
mov ecx, edx
mov ebp, ebx
nop dword [eax]
mov eax, ebp
movzx ebp, bp
and eax, 1
shr ebp, 1
dec cl
lea edi, [eax + edi*2]
jne 0x461520
movzx ecx, word [esi]
cmp dword [esp + 0x58], ecx
jbe 0x4615cf
add esi, 4
mov eax, dword [esp + 0x30]
inc ebx
cmp esi, dword [esp]
mov word [eax + ecx*4], di
mov byte [eax + ecx*4 + 2], dl
jne 0x461500
cmp dword [esp + 0x7c], 0
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x30]
je 0x46157c
push dword [esp + 0x24]
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x90]
mov dword [eax], edi
mov dword [eax + 4], edx
mov dword [eax + 8], edi
push esi
push 0
push dword [0x5a1188]
call dword [sym.imp.kernel32.dll_HeapFree]
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x38], 0
je 0x4615c8
mov ebp, dword [esp + 0x3c]
xor ebx, ebx
jmp 0x45ff15
mov edx, dword [esp + 0xdc]
push 0x54a7d8
call fcn.00532ca0
xor ebx, ebx
jmp 0x45ff28
mov edx, dword [esp + 0x58]
push 0x54a7c8
call fcn.00532ca0
lea ecx, [esp + 0x38]
mov edx, 0x5505ac
jmp 0x4615f1
lea ecx, [esp + 0x38]
mov edx, 0x5505bc
mov dword [esp + 0x38], str.Index_out_of_bounds
mov dword [esp + 0x3c], 1
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], str.NoneSome_usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_wmi_0.11.5_src_connection.rs
mov dword [esp + 0x44], 0
call fcn.00532c10
mov edx, edi
push 0x5505cc
call fcn.00532f20
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0x5505cc
call fcn.00532d00
mov edx, ebx
push 0x5505cc
call fcn.00532f20
mov ecx, ebx
mov edx, ebp
push 0x5505cc
call fcn.00532d00
call fcn.004478d0
mov ecx, 4
mov edx, ebx
call fcn.00531970
mov ecx, str.assertion_failed:_end___start__end___lenL
mov edx, 0x2c
push 0x550638
call fcn.00532d60
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x5505fc
call fcn.00532d60
mov ecx, dword [esp]
mov edx, dword [esp + 0x10]
push 0x550648
call fcn.00532f20
mov edx, dword [esp + 0x20]
mov ecx, ebx
push 0x550648
call fcn.00532f20
mov ecx, dword [esp]
push 0x55059c
call fcn.00532f20
mov ecx, ebx
mov edx, edi
push 0x55059c
call fcn.00532d00
mov ecx, ebx
mov edx, eax
push 0x55059c
call fcn.00532f20
mov ecx, eax
mov edx, ebp
push 0x55059c
call fcn.00532d00
mov edx, dword [esp + 0xdc]
mov ecx, 1
call fcn.00531970
mov ecx, 2
mov edx, 2
call fcn.00531970
mov ecx, 2
mov edx, esi
call fcn.00531970
mov ecx, 4
mov edx, 0x40
call fcn.00531970
mov ecx, 2
mov edx, 0x10
call fcn.00531970
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x5505dc
call fcn.00532d60
mov ecx, 0x59e39c
mov edx, 0x2b
push 0x5505ec
call fcn.00532d60
int3