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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
movzx eax, byte [edx + 0x4c]
mov ah, byte [edx + 0x50]
movzx ebx, byte [ecx + 0x50]
mov esi, ecx
cmp al, 3
mov byte [esp + 0x20], ah
mov byte [esp + 0x1c], bl
jne 0x43bb1c
movzx eax, byte [esi + 0x4c]
cmp al, 3
jne 0x43bdd8
mov al, 3
mov byte [esp], 3
jmp 0x43bb40
mov byte [esp], al
mov eax, dword [edx + 0x48]
movq xmm2, qword [edx + 0x40]
mov dword [esp + 0x2c], eax
movzx eax, byte [edx + 0x4f]
mov byte [esp + 0xe], al
movzx eax, word [edx + 0x4d]
mov word [esp + 0xc], ax
movzx eax, byte [esi + 0x4c]
mov ecx, dword [edx]
mov edi, dword [edx + 0x30]
mov ah, byte [esi + 0x51]
mov bh, byte [esi + 0x55]
mov dword [esp + 0x4c], ecx
test ecx, ecx
mov ecx, edx
mov dword [esp + 0x14], edi
cmove ecx, esi
movsd xmm0, qword [ecx + 8]
movsd xmm1, qword [ecx + 0x10]
movsd xmm4, qword [ecx + 0x18]
movsd xmm3, qword [ecx + 0x20]
mov ecx, dword [edx + 0x28]
mov dword [esp + 0x18], ecx
test ecx, ecx
movzx ecx, byte [esp + 0xe]
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x78], xmm4
movsd qword [esp + 0x80], xmm3
movsd qword [esp + 0x68], xmm0
mov byte [esp + 0xa], cl
movzx ecx, word [esp + 0xc]
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 + 0x48], ecx
mov ecx, edx
cmove ecx, esi
cmp edi, 2
mov ecx, dword [ecx + 0x34]
mov dword [esp + 0x44], ecx
movzx ecx, byte [edx + 0x51]
mov byte [esp + 5], cl
movzx ecx, byte [edx + 0x52]
mov byte [esp + 6], cl
movzx ecx, byte [edx + 0x53]
mov byte [esp + 7], cl
movzx ecx, byte [edx + 0x54]
mov byte [esp + 3], cl
movzx ecx, byte [edx + 0x55]
mov byte [esp + 1], cl
mov ecx, dword [edx + 4]
cmove edx, esi
cmp al, 3
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + 0x3c]
mov edx, dword [esi + 0x30]
mov dword [esp + 0x40], ecx
movzx ecx, byte [esi + 0x52]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x38]
mov byte [esp + 2], cl
movzx ecx, byte [esi + 0x53]
mov byte [esp + 4], cl
movzx ecx, byte [esi + 0x54]
mov byte [esp + 0x10], cl
mov ecx, dword [esi]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x30], ecx
je 0x43bc6a
cmp al, 2
je 0x43bc6a
mov bl, ah
mov eax, dword [esi + 0x40]
lock dec dword [eax]
mov ah, bl
jne 0x43bc6a
mov dword [esp + 0x24], edx
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x44]
movdqa xmmword [esp + 0x50], xmm2
call fcn.0041e1f0
mov edx, dword [esp + 0x24]
movdqa xmm2, xmmword [esp + 0x50]
mov ah, bl
movzx ecx, bh
movzx ebx, byte [esp + 0x10]
cmp edi, 2
mov al, byte [esp + 1]
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm3, qword [esp + 0x78]
cmovne edx, edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], edx
movzx edx, byte [esp + 2]
mov dword [esp + 0x10], ebx
movzx ebx, byte [esp + 0x1c]
cmp edi, 2
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x28]
cmovne ebx, edi
cmp al, 2
movzx edi, al
mov al, byte [esp + 0x20]
cmove edi, ecx
cmp dword [esp + 0x18], 0
movzx ecx, byte [esp + 3]
mov dword [esp + 0x28], ebx
movzx ebx, ah
mov dword [esp + 0x1c], edi
mov edi, 1
cmove edi, dword [esp + 0x30]
cmp cl, 2
movzx ecx, cl
cmove ecx, dword [esp + 0x10]
cmp al, 2
movzx eax, al
cmove eax, dword [esp + 0x50]
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 dword [esp + 0x14], eax
movzx eax, byte [esp + 6]
cmp al, 2
movzx ebx, al
movzx eax, byte [esp + 7]
cmove ebx, edx
cmp al, 2
movzx edx, al
mov eax, dword [esp + 0x4c]
cmove edx, ecx
mov ecx, dword [esp + 0x38]
test eax, eax
cmovne ecx, eax
mov eax, dword [esp + 0x3c]
mov dword [esi], ecx
cmove eax, dword [esp + 0x34]
mov dword [esi + 4], eax
movsd qword [esi + 0x10], xmm1
movsd xmm1, qword [esp + 0x80]
mov eax, dword [esp + 0x48]
movsd qword [esi + 8], xmm0
movsd qword [esi + 0x18], xmm3
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 + 0x44]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x2c]
movq qword [esi + 0x40], xmm2
mov dword [esi + 0x48], eax
movzx eax, byte [esp]
mov byte [esi + 0x4c], al
movzx eax, byte [esp + 0xa]
mov byte [esi + 0x4f], al
movzx eax, word [esp + 8]
mov word [esi + 0x4d], ax
mov eax, dword [esp + 0x20]
mov byte [esi + 0x50], al
mov eax, dword [esp + 0x14]
mov byte [esi + 0x51], al
mov eax, dword [esp + 0x18]
mov byte [esi + 0x52], bl
mov byte [esi + 0x53], dl
mov byte [esi + 0x54], al
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x55], al
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp al, 2
jne 0x43bde7
mov al, 2
mov byte [esp], 2
jmp 0x43bb40
movq xmm2, qword [esi + 0x40]
movd ecx, xmm2
lock inc dword [ecx]
jle 0x43be04
mov ecx, dword [esi + 0x48]
mov byte [esp], al
mov dword [esp + 0x2c], ecx
jmp 0x43bb40
ud2