Function at 0x45da10
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], edi
mov ebx, dword [edi]
mov eax, dword [edi + 0x204]
mov dword [esp + 0x30], eax
test byte [ebx + 0xc], 1
jne 0x45daf3
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 8]
shl eax, 6
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
lea edx, [eax + 8]
mov eax, dword [edx + ecx + 0x20]
add edx, ecx
mov dword [esp + 0x20], eax
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x1c], edx
mov eax, dword [edx + 0x10]
je 0x45da79
cmp dword [ebp + 0xc], 0
jne 0x45daf3
cmp word [ecx], 1
jg 0x45daf3
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 8]
test edx, edx
je 0x45da89
cmp dword [esi + 0x28], 0
jne 0x45daf3
cmp dword [eax + 0x2c], 0
jne 0x45daf3
cmp dword [esi + 0x24], 0
je 0x45da99
test edx, edx
jne 0x45daf3
cmp word [ecx], 0
je 0x45daf3
test byte [eax + 6], 1
jne 0x45daf3
test edx, edx
je 0x45dab9
mov ecx, dword [esp + 0x24]
cmp word [ecx], 1
jg 0x45daf3
cmp dword [ebp + 0xc], 0
jne 0x45daf3
mov cx, word [esi + 6]
and cx, 1
je 0x45dac9
cmp dword [ebp + 0x10], 0
jne 0x45daf3
cmp dword [esi + 0x18], 0
je 0x45dad5
cmp dword [eax + 0x18], 0
jne 0x45daf3
cmp dword [ebp + 0xc], 0
je 0x45dae1
cmp dword [eax + 0x18], 0
jne 0x45daf3
test edx, edx
je 0x45dafc
cmp dword [esi + 0xc], 0
jne 0x45daf3
movzx edx, cx
test cx, cx
je 0x45daff
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx edx, cx
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x1c], 0x20
jne 0x45daf3
cmp dword [eax + 0x1c], 0
lea ecx, [eax + 0x1c]
mov dword [esp + 0x2c], ecx
je 0x45db82
cmp dword [eax + 0x18], 0
jne 0x45daf3
cmp dword [ebp + 0xc], 0
jne 0x45daf3
test dx, dx
jne 0x45daf3
mov ecx, dword [esp + 0x24]
cmp word [ecx], 1
jne 0x45daf3
test byte [eax + 6], 5
jne 0x45daf3
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x45db44
cmp byte [eax + 4], 0x71
jne 0x45daf3
mov eax, dword [eax + 8]
test eax, eax
je 0x45daf3
cmp word [eax], 1
jne 0x45daf3
mov eax, ecx
test eax, eax
jne 0x45db31
mov eax, dword [esi + 0x18]
test eax, eax
je 0x45db82
mov edx, dword [eax]
test edx, edx
jle 0x45db82
mov eax, dword [eax + 0xc]
add eax, 0xe
nop word [eax + eax]
cmp word [eax], 0
je 0x45daf3
inc ecx
add eax, 0x14
cmp ecx, edx
jl 0x45db70
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov dword [edi + 0x204], ecx
cmp byte [ebx + 0x7c], 0
jne 0x45dbf3
cmp byte [edi + 0x210], 0
jne 0x45dbf3
mov eax, dword [ebx + 0x10c]
test eax, eax
je 0x45dbf3
push ecx
push 0
push 0
push 0
push 0x15
push dword [ebx + 0x110]
call eax
add esp, 0x18
cmp eax, 1
jne 0x45dbd5
push str.not_authorized
push edi
call fcn.0040d2b0
mov dword [edi + 4], 0x17
jmp 0x45dbf0
test eax, eax
je 0x45dbf3
cmp eax, 2
je 0x45dbf3
push str.authorizer_malfunction
push edi
call fcn.0040d2b0
mov dword [edi + 4], 1
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [edi + 0x204], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test eax, eax
je 0x45dca4
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edi, dword [esi + 0x18]
mov edx, eax
mov esi, dword [esi + 0x28]
push 0
mov dword [eax + 0x18], 0
mov dword [eax + 8], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x28], 0
call fcn.00437840
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [ecx + 0x28], esi
mov esi, ecx
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x18], edi
mov dword [esi + 8], ecx
mov byte [esi + 4], 0x71
mov dword [esi + 0x24], 0
test eax, eax
jne 0x45dc72
mov eax, dword [esp + 0x18]
jmp 0x45dc80
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x24], 0
mov dword [esi + 0x1c], eax
cmp byte [ebx + 0x1e], 0
jne 0x45e168
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x28], ecx
test ecx, ecx
jne 0x45dc16
mov eax, dword [esp + 0x1c]
push dword [eax]
mov edi, dword [eax + 0x10]
push ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x20], edi
call fcn.0040add0
mov eax, dword [esp + 0x24]
push dword [eax + 4]
push ebx
call fcn.0040add0
mov eax, dword [esp + 0x2c]
push dword [eax + 8]
push ebx
call fcn.0040add0
mov eax, dword [esp + 0x34]
add esp, 0x18
mov ecx, dword [eax + 0xc]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0x10], 0
test ecx, ecx
je 0x45dd40
movzx eax, word [ecx + 0x20]
cmp eax, 1
jne 0x45dd27
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x1a8]
test eax, eax
cmovne edx, eax
mov eax, dword [edx + 0x220]
mov dword [ecx + 0x48], eax
mov dword [edx + 0x220], ecx
jmp 0x45dd2c
dec eax
mov word [ecx + 0x20], ax
mov eax, dword [esp + 0x1c]
mov dword [eax + 0xc], 0
nop word [eax + eax]
mov edi, dword [edi + 8]
mov edx, dword [esi + 8]
mov byte [esp + 0x13], 0
mov dword [esp + 0x28], edx
movsx ecx, word [edi]
mov dword [esp + 0x24], ecx
test edx, edx
je 0x45dd63
mov al, byte [eax + 0x1c]
mov byte [esp + 0x13], al
jmp 0x45dd88
push 0
push 0
xor edx, edx
mov ecx, ebx
call fcn.00445270
mov edx, eax
add esp, 8
mov dword [esp + 0x28], edx
mov dword [esi + 8], edx
test edx, edx
je 0x45e0fd
mov ecx, dword [esp + 0x24]
cmp ecx, 1
jle 0x45ddb7
mov eax, dword [ebp + 8]
inc eax
push eax
lea eax, [ecx - 1]
mov ecx, ebx
push eax
call fcn.00445150
mov edx, eax
add esp, 8
mov dword [esi + 8], edx
cmp byte [ebx + 0x1e], 0
mov dword [esp + 0x28], edx
jne 0x45e0fd
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x45de57
mov esi, dword [esp + 0x34]
lea eax, [edi + 8]
add esi, 8
mov dword [esp + 0x2c], eax
add esi, edx
mov dword [esp + 0x30], esi
mov edi, dword [esi + 0x28]
test edi, edi
je 0x45de0b
xor esi, esi
cmp dword [edi + 4], esi
jle 0x45ddf5
mov eax, dword [edi]
push dword [eax + esi*8]
push ebx
call fcn.0040add0
inc esi
add esp, 8
cmp esi, dword [edi + 4]
jl 0x45dde1
push dword [edi]
push ebx
call fcn.0040add0
push edi
push ebx
call fcn.0040add0
mov esi, dword [esp + 0x40]
add esp, 0x10
mov edi, dword [esp + 0x2c]
push 0x40
push 0
push edi
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [edi + 0x30]
movups xmmword [esi + 0x30], xmm0
call sub.VCRUNTIME140.dll_memset
add edi, 0x40
add esi, 0x40
add esp, 0xc
mov dword [esp + 0x2c], edi
sub dword [esp + 0x24], 1
mov dword [esp + 0x30], esi
jne 0x45ddd3
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov al, byte [esp + 0x13]
mov byte [ecx + edx + 0x24], al
xor edx, edx
mov esi, dword [esi]
mov dword [esp + 0x30], edx
cmp dword [esi], edx
jle 0x45defa
xor ecx, ecx
mov dword [esp + 0x2c], ecx
nop dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [ecx + eax + 4], 0
jne 0x45dee4
mov edi, dword [ecx + eax + 8]
test edi, edi
je 0x45dee4
cmp byte [edi], 0
mov eax, edi
je 0x45dea6
nop dword [eax]
inc eax
cmp byte [eax], 0
jne 0x45dea0
sub eax, edi
mov ecx, ebx
and eax, 0x3fffffff
inc eax
mov edx, eax
mov dword [esp + 0x38], eax
call fcn.0040b030
mov dword [esp + 0x28], eax
test eax, eax
je 0x45ded1
push dword [esp + 0x38]
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [ecx + eax + 4], edx
mov edx, dword [esp + 0x30]
inc edx
add ecx, 0x14
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ecx
cmp edx, dword [esi]
jl 0x45de80
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
test esi, esi
je 0x45df4b
cmp dword [esi], 0
mov dword [esp + 0x30], 0
jle 0x45df4b
xor edi, edi
mov edx, dword [esi + 0xc]
mov ecx, ebx
push eax
push dword [esp + 0x24]
mov edx, dword [edi + edx]
call fcn.0045d750
mov ecx, dword [esi + 0xc]
lea edi, [edi + 0x14]
add esp, 8
mov dword [edi + ecx - 0x14], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [esi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
jl 0x45df17
mov ecx, dword [esp + 0x18]
cmp dword [ebp + 0xc], 0
mov esi, dword [esp + 0x14]
je 0x45dfc2
mov eax, dword [ecx]
mov ecx, eax
mov edi, dword [esi + 0x10]
mov dword [esp + 0x38], eax
test edi, edi
je 0x45dfad
cmp dword [edi], 0
mov dword [esp + 0x30], 0
jle 0x45dfad
xor esi, esi
mov edx, dword [edi + 0xc]
mov ecx, ebx
push eax
push dword [esp + 0x24]
mov edx, dword [esi + edx]
call fcn.0045d750
mov ecx, dword [edi + 0xc]
lea esi, [esi + 0x14]
add esp, 8
mov dword [esi + ecx - 0x14], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [edi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
jl 0x45df73
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x14]
push ecx
push dword [esp + 0x24]
mov ecx, ebx
call fcn.0045d750
add esp, 8
mov dword [esi + 0x14], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x45dfd9
mov dword [esi + 0x18], eax
mov dword [ecx + 0x18], 0
jmp 0x45e02d
mov edi, dword [esi + 0x18]
test edi, edi
je 0x45e02d
cmp dword [edi], 0
mov eax, dword [ecx]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], 0
jle 0x45e02d
xor esi, esi
mov edx, dword [edi + 0xc]
mov ecx, ebx
push eax
push dword [esp + 0x24]
mov edx, dword [esi + edx]
call fcn.0045d750
mov ecx, dword [edi + 0xc]
lea esi, [esi + 0x14]
add esp, 8
mov dword [esi + ecx - 0x14], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [edi]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
jl 0x45dff5
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xc]
test edx, edx
je 0x45e04a
push 0
push 0
mov ecx, ebx
call fcn.00437110
mov ecx, dword [esp + 0x20]
add esp, 8
mov edi, eax
jmp 0x45e04c
xor edi, edi
cmp dword [ebp + 0x10], 0
mov edx, dword [esi + 0xc]
je 0x45e0a2
mov dword [esi + 0xc], edi
mov ecx, ebx
mov edi, dword [esp + 0x18]
mov dword [esi + 0x14], edx
push dword [edi]
push dword [esp + 0x24]
call fcn.0045d750
mov dword [esi + 0x14], eax
mov ecx, ebx
mov edx, dword [edi + 0x14]
push 0
push 0
call fcn.00437110
mov edx, dword [esi + 0x14]
mov ecx, ebx
push eax
call fcn.00436af0
add esp, 0x14
mov dword [esi + 0x14], eax
mov edx, dword [edi + 0x10]
mov ecx, ebx
push 0
call fcn.004373a0
add esp, 4
mov dword [esi + 0x10], eax
jmp 0x45e0c6
push dword [ecx]
mov ecx, ebx
push dword [esp + 0x24]
call fcn.0045d750
push edi
mov edx, eax
mov dword [esi + 0xc], eax
mov ecx, ebx
call fcn.00436af0
mov edi, dword [esp + 0x24]
add esp, 0xc
mov dword [esi + 0xc], eax
mov ax, word [edi + 6]
and ax, 1
or word [esi + 6], ax
mov eax, dword [edi + 0x28]
test eax, eax
je 0x45e0e3
mov dword [esi + 0x28], eax
mov dword [edi + 0x28], 0
mov esi, dword [esi + 0x1c]
mov edi, dword [edi + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
test esi, esi
jne 0x45dd40
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x45e168
mov edx, dword [esi]
mov ecx, ebx
call fcn.00437a50
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.00445420
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00436f50
mov edx, dword [esi + 0x10]
mov ecx, ebx
call fcn.00437a50
mov edx, dword [esi + 0x14]
mov ecx, ebx
call fcn.00436f50
mov edx, dword [esi + 0x18]
mov ecx, ebx
call fcn.00437a50
mov edx, dword [esi + 0x1c]
mov ecx, ebx
call fcn.00458120
mov edx, dword [esi + 0x28]
mov ecx, ebx
call fcn.00436f50
mov edx, dword [esi + 0x2c]
mov ecx, ebx
call fcn.00436f50
push esi
push ebx
call fcn.0040add0
add esp, 8
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret