Function at 0x4037e0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x10af8
call fcn.005f4d00
mov esi, esp
mov dword [esi + 0x20], ebp
mov eax, dword [ebp + 8]
mov dword [esi + 0x28], eax
mov eax, esp
mov dword [esi + 0x10ae4], eax
mov dword [esi + 0x10af0], 0xffffffff
lea eax, [esi + 0x10ae8]
mov dword [esi + 0x10aec], 0x405200
mov ecx, dword fs:[0]
mov dword [esi + 0x10ae8], ecx
mov dword fs:[0], eax
mov dword [esi + 0x2c], 0
mov byte [esi + 0x10aa3], 0
mov dword [esi + 0x10aa4], 1
mov byte [esi + 0x10aab], 0
mov dword [esi + 0x10aac], 1
lea eax, [esi + 0x8698]
mov dword [esi + 0x10ab0], eax
lea eax, [esi + 0x8698]
mov dword [esi + 0x10ab4], eax
mov byte [esi + 0xc89f], 0
mov al, byte [esi + 0xc89f]
lea ecx, [esi + 0x8698]
and al, 1
mov dword [esp], ecx
mov dword [esp + 4], 8
movzx eax, al
mov dword [esp + 8], eax
call fcn.00407050
lea eax, [esi + 0x8698]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x4200
call sub.VCRUNTIME140.dll_memset
lea ecx, [esi + 0x4498]
lea eax, [esi + 0x8698]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x4200
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [esi + 0xc8a0]
lea eax, [esi + 0x4498]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x4200
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [esi + 0x30]
lea eax, [esi + 0xc8a0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x4200
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x28]
mov dword [esi + 0x10ab8], 0
mov dword [esi + 0x10abc], 0
lea eax, [esi + 0x30]
mov dword [esi + 0x10ac8], eax
mov dword [esi + 0x10acc], 0x40
mov dword [esi + 0x10ac0], 0
mov dword [esi + 0x10ac4], 0
xor eax, eax
lea ecx, [esi + 0x30]
lea eax, [esi + 0x2c]
mov dword [esp], edx
mov dword [esp + 4], 0x22201b
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x4200
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call sub.kernel32.dll_DeviceIoControl
sub esp, 0x20
mov dword [esi + 0x43e4], eax
cmp eax, 0
jne 0x4039d5
mov eax, esp
lea ecx, [esi + 0x4234]
mov dword [esi + 0x24], ecx
mov dword [eax], ecx
mov dword [eax + 4], 0x5f8930
call fcn.00559200
mov ecx, dword [esi + 0x24]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x5f8a30
call fcn.005f6ab0
mov eax, dword [esi + 0x2c]
mov ecx, 0x108
xor edx, edx
div ecx
mov dword [esi + 0x424c], eax
lea eax, [esi + 0x424c]
mov dword [esi + 0x448c], eax
lea eax, [0x4069d0]
mov dword [esi + 0x4490], eax
lea eax, [esi + 0x424c]
mov dword [esi + 0x4494], eax
lea eax, [esi + 0x424c]
mov dword [esi + 0x4484], eax
lea eax, [0x4069d0]
mov dword [esi + 0x4488], eax
mov eax, dword [esi + 0x4484]
mov dword [esi + 0x4270], eax
mov eax, dword [esi + 0x4488]
mov dword [esi + 0x4274], eax
mov eax, dword [esi + 0x4270]
mov dword [esi + 0x4268], eax
mov eax, dword [esi + 0x4274]
mov dword [esi + 0x426c], eax
lea edx, [esi + 0x4250]
lea ecx, [0x5f8a58]
lea eax, [esi + 0x4268]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00559180
lea eax, [esi + 0x4250]
mov dword [esp], eax
call fcn.005dc1a0
mov eax, dword [esi + 0x424c]
xor ecx, ecx
mov dword [esp], 0
mov dword [esp + 4], eax
call fcn.0052ab30
mov dword [esi + 0x4278], eax
mov dword [esi + 0x427c], edx
lea eax, [esi + 0x4278]
mov dword [esp], eax
call fcn.0052a300
mov dword [esi + 0x4280], eax
mov dword [esi + 0x4284], edx
cmp dword [esi + 0x4280], 0
jne 0x403ade
mov eax, dword [esi + 0x10ae8]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x4284]
mov dword [esi + 0x4288], eax
cmp dword [esi + 0x4288], 0x40
jae 0x403b15
mov ecx, dword [esi + 0x4288]
mov eax, ecx
shl eax, 8
lea ecx, [eax + ecx*8]
mov eax, dword [esi + ecx + 0x130]
mov ecx, dword [esi + ecx + 0x134]
or eax, ecx
jne 0x403b32
jmp 0x403aa7
mov ecx, dword [esi + 0x4288]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 0x5f8a68
mov dword [eax + 4], 0x40
call fcn.005f6c04
cmp dword [esi + 0x4288], 0x40
jae 0x403c56
lea eax, [esi + 0x30]
imul ecx, dword [esi + 0x4288], 0x108
add eax, ecx
lea ecx, [esi + 0x4294]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100
call fcn.005f0c90
cmp dword [esi + 0x4294], 0
je 0x403bba
movsd xmm0, qword [esi + 0x4298]
movsd qword [esi + 0x10ad0], xmm0
mov dword [esi + 0x10af0], 0
mov eax, esp
lea ecx, [esi + 0x10ad0]
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 0x5f8a88
mov dword [eax + 0xc], 0x5f88d0
mov dword [eax + 4], 0x2b
mov dword [eax], str.called__Result::unwrap____on_an__Err__value____Failed_to_call_DeviceIoControl
call fcn.005f6d50
jmp 0x403bb8
ud2
mov ecx, dword [esi + 0x4298]
mov eax, dword [esi + 0x429c]
mov dword [esi + 0x10adc], ecx
mov dword [esi + 0x10ae0], eax
xor edx, edx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
call fcn.0053fe20
mov dword [esi + 0x428c], eax
mov dword [esi + 0x4290], edx
lea eax, [esi + 0x4288]
mov dword [esi + 0x4478], eax
lea eax, [0x4069d0]
mov dword [esi + 0x447c], eax
lea eax, [esi + 0x4288]
mov dword [esi + 0x4480], eax
lea eax, [esi + 0x4288]
mov dword [esi + 0x4470], eax
lea eax, [0x4069d0]
mov dword [esi + 0x4474], eax
mov eax, dword [esi + 0x4470]
mov dword [esi + 0x42d0], eax
mov eax, dword [esi + 0x4474]
mov dword [esi + 0x42d4], eax
cmp dword [esi + 0x4288], 0x40
jb 0x403c73
jmp 0x404035
mov ecx, dword [esi + 0x4288]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 0x5f8a78
mov dword [eax + 4], 0x40
call fcn.005f6c04
lea eax, [esi + 0x30]
imul ecx, dword [esi + 0x4288], 0x108
add eax, ecx
add eax, 0x100
mov dword [esi + 0x4450], eax
lea ecx, [fcn.005f3380]
mov dword [esi + 0x4454], ecx
mov dword [esi + 0x4458], eax
mov dword [esi + 0x4448], eax
lea eax, [fcn.005f3380]
mov dword [esi + 0x444c], eax
mov eax, dword [esi + 0x4448]
mov dword [esi + 0x42d8], eax
mov eax, dword [esi + 0x444c]
mov dword [esi + 0x42dc], eax
lea eax, [esi + 0x428c]
mov dword [esi + 0x4464], eax
lea eax, [fcn.0043e640]
mov dword [esi + 0x4468], eax
lea eax, [esi + 0x428c]
mov dword [esi + 0x446c], eax
lea eax, [esi + 0x428c]
mov dword [esi + 0x445c], eax
lea eax, [fcn.0043e640]
mov dword [esi + 0x4460], eax
mov eax, dword [esi + 0x445c]
mov dword [esi + 0x42e0], eax
mov eax, dword [esi + 0x4460]
mov dword [esi + 0x42e4], eax
mov eax, dword [esi + 0x42d0]
mov dword [esi + 0x42b8], eax
mov eax, dword [esi + 0x42d4]
mov dword [esi + 0x42bc], eax
mov eax, dword [esi + 0x42d8]
mov dword [esi + 0x42c0], eax
mov eax, dword [esi + 0x42dc]
mov dword [esi + 0x42c4], eax
mov eax, dword [esi + 0x42e0]
mov dword [esi + 0x42c8], eax
mov eax, dword [esi + 0x42e4]
mov dword [esi + 0x42cc], eax
mov byte [esi + 0x436b], 3
mov dword [esi + 0x436c], 2
mov dword [esi + 0x4374], 2
mov bl, byte [esi + 0x436b]
mov edi, dword [esi + 0x436c]
mov edx, dword [esi + 0x4370]
mov ecx, dword [esi + 0x4374]
mov eax, dword [esi + 0x4378]
mov dword [esi + 0x4428], 0
mov dword [esi + 0x442c], 0x20
mov byte [esi + 0x4433], bl
mov dword [esi + 0x4434], 0
mov dword [esi + 0x4438], edi
mov dword [esi + 0x443c], edx
mov dword [esi + 0x4440], ecx
mov dword [esi + 0x4444], eax
mov dword [esi + 0x435c], 0
mov dword [esi + 0x4358], 0x20
mov byte [esi + 0x4364], bl
mov dword [esi + 0x4360], 0
mov dword [esi + 0x4348], edi
mov dword [esi + 0x434c], edx
mov dword [esi + 0x4350], ecx
mov dword [esi + 0x4354], eax
mov byte [esi + 0x439f], 3
mov dword [esi + 0x43a0], 2
mov dword [esi + 0x43a8], 2
mov bl, byte [esi + 0x439f]
mov edi, dword [esi + 0x43a0]
mov edx, dword [esi + 0x43a4]
mov ecx, dword [esi + 0x43a8]
mov eax, dword [esi + 0x43ac]
mov dword [esi + 0x4408], 1
mov dword [esi + 0x440c], 0x20
mov byte [esi + 0x4413], bl
mov dword [esi + 0x4414], 4
mov dword [esi + 0x4418], edi
mov dword [esi + 0x441c], edx
mov dword [esi + 0x4420], ecx
mov dword [esi + 0x4424], eax
mov dword [esi + 0x4390], 1
mov dword [esi + 0x438c], 0x20
mov byte [esi + 0x4398], bl
mov dword [esi + 0x4394], 4
mov dword [esi + 0x437c], edi
mov dword [esi + 0x4380], edx
mov dword [esi + 0x4384], ecx
mov dword [esi + 0x4388], eax
mov byte [esi + 0x43d3], 3
mov dword [esi + 0x43d4], 2
mov dword [esi + 0x43dc], 2
mov bl, byte [esi + 0x43d3]
mov edi, dword [esi + 0x43d4]
mov edx, dword [esi + 0x43d8]
mov ecx, dword [esi + 0x43dc]
mov eax, dword [esi + 0x43e0]
mov dword [esi + 0x43e8], 2
mov dword [esi + 0x43ec], 0x20
mov byte [esi + 0x43f3], bl
mov dword [esi + 0x43f4], 0
mov dword [esi + 0x43f8], edi
mov dword [esi + 0x43fc], edx
mov dword [esi + 0x4400], ecx
mov dword [esi + 0x4404], eax
mov dword [esi + 0x43c4], 2
mov dword [esi + 0x43c0], 0x20
mov byte [esi + 0x43cc], bl
mov dword [esi + 0x43c8], 0
mov dword [esi + 0x43b0], edi
mov dword [esi + 0x43b4], edx
mov dword [esi + 0x43b8], ecx
mov dword [esi + 0x43bc], eax
lea ecx, [esi + 0x42e8]
lea eax, [esi + 0x4348]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [esi + 0x42e8]
add ecx, 0x20
lea eax, [esi + 0x437c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [esi + 0x42e8]
add ecx, 0x40
lea eax, [esi + 0x43b0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
call sub.VCRUNTIME140.dll_memcpy
lea edi, [esi + 0x42a0]
lea edx, [0x5f8aa0]
lea ecx, [esi + 0x42b8]
lea eax, [esi + 0x42e8]
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], 4
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 3
call fcn.00407740
lea eax, [esi + 0x42a0]
mov dword [esp], eax
call fcn.005dc1a0
jmp 0x403aa7
mov ecx, dword [esi + 0x4288]
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 0x5f8ac0
mov dword [eax + 4], 0x40
call fcn.005f6c04
nop word cs:[eax + eax]
nop dword [eax]
push ebp
sub esp, 0x20
lea esi, [ebp - 0x10af4]
mov ebp, dword [esi + 0x20]
add esp, 0x20
pop ebp
ret