Function at 0x4ac790
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
movzx eax, byte [edx + 0x48]
mov ah, byte [edx + 0x4c]
movzx ebx, byte [ecx + 0x4c]
mov esi, ecx
cmp al, 3
mov byte [esp + 0x20], ah
mov byte [esp + 0x1c], bl
jne 0x4ac7cc
movzx eax, byte [esi + 0x48]
cmp al, 3
jne 0x4aca90
mov al, 3
mov byte [esp], 3
jmp 0x4ac7f2
mov byte [esp], al
mov eax, dword [edx + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x44]
mov dword [esp + 0x34], eax
movzx eax, byte [edx + 0x4b]
mov byte [esp + 0x30], al
movzx eax, word [edx + 0x49]
mov word [esp + 0x2e], ax
movzx eax, byte [esi + 0x48]
mov ecx, dword [edx]
mov edi, dword [edx + 0x30]
mov ah, byte [esi + 0x4d]
mov bh, byte [esi + 0x51]
mov dword [esp + 0x54], ecx
test ecx, ecx
mov ecx, edx
mov dword [esp + 0x10], edi
cmove ecx, esi
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [ecx + 0x10]
movsd xmm3, qword [ecx + 0x18]
movsd xmm2, qword [ecx + 0x20]
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x14], ecx
test ecx, ecx
movzx ecx, byte [esp + 0x30]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x68], xmm3
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x58], xmm0
mov byte [esp + 0xa], cl
movzx ecx, word [esp + 0x2e]
mov word [esp + 8], cx
mov ecx, edx
cmove ecx, esi
cmp edi, 2
mov edi, dword [edx + 0x38]
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0x50], ecx
mov ecx, edx
cmove ecx, esi
cmp edi, 2
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x4c], ecx
movzx ecx, byte [edx + 0x4d]
mov byte [esp + 5], cl
movzx ecx, byte [edx + 0x4e]
mov byte [esp + 6], cl
movzx ecx, byte [edx + 0x4f]
mov byte [esp + 7], cl
movzx ecx, byte [edx + 0x50]
mov byte [esp + 3], cl
movzx ecx, byte [edx + 0x51]
cmove edx, esi
cmp al, 3
mov byte [esp + 1], cl
mov ecx, dword [edx + 0x3c]
mov edx, dword [esi + 0x30]
mov dword [esp + 0x48], ecx
movzx ecx, byte [esi + 0x4e]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x38]
mov byte [esp + 2], cl
movzx ecx, byte [esi + 0x4f]
mov byte [esp + 4], cl
movzx ecx, byte [esi + 0x50]
mov byte [esp + 0xc], cl
mov ecx, dword [esi]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x18], ecx
je 0x4ac906
cmp al, 2
je 0x4ac906
mov bl, ah
mov eax, dword [esi + 0x40]
lock dec dword [eax]
mov ah, bl
jne 0x4ac906
mov dword [esp + 0x24], edx
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
call sym.alloc::sync::Arc_LT_T_GT_::drop_slow::h0d306a033a8be193
mov edx, dword [esp + 0x24]
mov ah, bl
movzx ecx, bh
movzx ebx, byte [esp + 0xc]
cmp edi, 2
mov al, byte [esp + 1]
movsd xmm1, qword [esp + 0x60]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [esp + 0x68]
cmovne edx, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], edx
movzx edx, byte [esp + 2]
mov dword [esp + 0xc], ebx
movzx ebx, byte [esp + 0x1c]
cmp edi, 2
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x28]
cmovne ebx, edi
cmp al, 2
movzx edi, al
cmove edi, ecx
cmp dword [esp + 0x14], 0
mov dword [esp + 0x28], ebx
movzx ebx, ah
mov eax, 1
movzx ecx, byte [esp + 3]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x18]
cmovne edi, eax
movzx eax, byte [esp + 0x20]
cmp cl, 2
movzx ecx, cl
cmove ecx, dword [esp + 0xc]
cmp al, 2
movzx eax, al
cmove eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esp + 4]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 5]
cmp al, 2
movzx eax, al
cmove eax, ebx
mov ebx, 1
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 6]
cmp al, 2
movzx eax, al
cmove eax, edx
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 7]
cmp al, 2
movzx edx, al
cmove edx, ecx
xor eax, eax
cmp dword [esp + 0x54], 0
mov ecx, dword [esp + 0x44]
cmove eax, dword [esp + 0x40]
cmovne ecx, ebx
mov dword [esi], ecx
mov dword [esi + 4], eax
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0x70]
mov eax, dword [esp + 0x50]
movsd qword [esi + 8], xmm0
movsd qword [esi + 0x18], xmm2
movsd qword [esi + 0x20], xmm1
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x44], eax
movzx eax, byte [esp]
mov byte [esi + 0x48], al
movzx eax, byte [esp + 0xa]
mov byte [esi + 0x4b], al
movzx eax, word [esp + 8]
mov word [esi + 0x49], ax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x4c], al
mov eax, dword [esp + 0x14]
mov byte [esi + 0x4d], al
mov eax, dword [esp + 0x10]
mov byte [esi + 0x4e], al
mov eax, dword [esp + 0x18]
mov byte [esi + 0x4f], dl
mov byte [esi + 0x50], al
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x51], al
movzx eax, word [esp + 0x32]
mov word [esi + 0x56], ax
mov eax, dword [esp + 0x2e]
mov dword [esi + 0x52], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp al, 2
jne 0x4aca9f
mov al, 2
mov byte [esp], 2
jmp 0x4ac7f2
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x38], ecx
lock inc dword [ecx]
jle 0x4acaba
mov ecx, dword [esi + 0x44]
mov byte [esp], al
mov dword [esp + 0x34], ecx
jmp 0x4ac7f2
ud2