Function at 0x41d2d9
Capabilities:
Get disk information
Read file via mapping

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x114
push ebx
push esi
mov dword [ebp + 0x54], ecx
xor ebx, ebx
push edi
lea ecx, [ebp + 0x7c]
mov dword [ebp + 8], ebx
call fcn.00409fda
lea ecx, [ebp + 0x34]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x40], ebx
call fcn.0042c809
mov eax, dword [ebp + 0x7c]
mov ax, word [eax]
cmp ax, 0x2d
mov byte [ebp + 0x5b], bl
mov byte [ebp + 0x5a], bl
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x50], ebx
mov cl, 0x2a
jne 0x41d324
mov cl, al
movsx esi, cl
movzx eax, ax
jmp 0x41d4b7
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x4832e0
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d353
or dword [ebp + 0x50], 8
jmp 0x41d4b1
push ebx
lea eax, [ebp + 0x7c]
push eax
push 0x481512
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d372
or dword [ebp + 0x50], 4
jmp 0x41d4b1
push 7
lea eax, [ebp + 0x7c]
push eax
push str.sysinit
call fcn.0042e2da
add esp, 0xc
test al, al
jne 0x41d4b1
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
jne 0x41d4c7
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x4813ac
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d3bf
or byte [ebp + 0x5b], 1
jmp 0x41d4b1
push 1
lea eax, [ebp + 0x7c]
push eax
push 0x483cf0
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d3df
or byte [ebp + 0x5a], 1
jmp 0x41d4b1
push 5
lea eax, [ebp + 0x7c]
push eax
push str.local
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d403
or dword [ebp + 0x50], 0x10
or dword [ebp + 0x44], 0x10
jmp 0x41d4b1
push 8
lea eax, [ebp + 0x7c]
push eax
push str.EnviMode
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d427
or dword [ebp + 0x50], 0x20
or dword [ebp + 0x44], 0x20
jmp 0x41d4b1
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x483d34
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x41d444
or dword [ebp + 0x50], 0x40
jmp 0x41d4b1
push 5
push dword [ebp + 0x7c]
push str.logs:
call fcn.00428263
add esp, 0xc
test al, al
je 0x41d4c1
add dword [ebp + 0x7c], 0xa
mov eax, dword [ebp + 0x7c]
mov dword [ebp + 0x60], eax
push 1
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x5c], ebx
call fcn.00413796
add esp, 0xc
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x7c], eax
jle 0x41d4a9
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x4c]
push dword [ebp + 0x60]
call fcn.004365d7
mov ecx, dword [ebp + 0x54]
push 1
push ebx
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x4c]
call fcn.0043c527
lea ecx, [ebp + 0x4c]
call fcn.00427365
lea ecx, [ebp + 0x7c]
call fcn.00409fda
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
je 0x41d32f
jmp 0x41d4cb
sub dword [ebp + 0x7c], 4
jmp 0x41d4cb
sub dword [ebp + 0x7c], 2
push dword [ebp + 0x54]
call fcn.0040c9a3
mov eax, dword [ebp + 0x7c]
push 0x22
pop esi
cmp word [eax], si
mov edi, eax
push 1
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x7c]
push eax
sete byte [ebp + 0x67]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x5c], ebx
call fcn.00413796
add esp, 0x10
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x4c], eax
call fcn.0042c809
mov eax, dword [ebp + 0x4c]
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp + 0x70]
call fcn.004365d7
mov eax, dword [ebp + 0x70]
mov cx, word [eax]
cmp cx, si
jne 0x41d546
mov ecx, esi
cmp cx, si
je 0x41d532
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41d523
cmp word [eax], bx
je 0x41d54b
inc eax
inc eax
jmp 0x41d54b
cmp cx, 0x2c
je 0x41d54b
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41d53b
cmp word [eax], 0x2c
jne 0x41d560
mov word [eax], bx
movzx eax, word [eax + 2]
and eax, 0xffdf
mov dword [ebp + 0x3c], eax
mov ecx, dword [ebp + 0x54]
push 1
push ebx
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x70]
call fcn.0043d8d6
mov edi, dword [ebp + 0x48]
cmp word [edi], si
je 0x41d5db
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x60], edi
call fcn.00403c83
mov eax, dword [ebp + 0x60]
cmp word [eax], bx
pop ecx
je 0x41d5db
push edi
lea ecx, [ebp + 0x70]
call fcn.00436622
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
lea eax, [edi + 3]
push eax
lea ecx, [ebp + 0x48]
call fcn.0042c850
mov eax, dword [ebp + 0x48]
mov word [eax + edi*2 + 4], bx
mov eax, dword [ebp + 0x48]
push edi
push dword [ebp + 0x70]
add eax, 2
push eax
call fcn.00403c6b
mov eax, dword [ebp + 0x48]
mov word [eax + edi*2 + 2], si
mov eax, dword [ebp + 0x48]
mov word [eax], si
mov edi, dword [ebp + 0x48]
add esp, 0xc
push ebx
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x7c], edi
call fcn.00413796
mov edi, dword [ebp + 0x7c]
sub edi, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x54]
add esp, 0xc
push 1
push ebx
lea eax, [ebp + 0x70]
push eax
push dword [ebp + 0x4c]
sar edi, 1
call fcn.0043d8d6
push dword [ebp + 0x70]
lea ecx, [ebp + 0x48]
call fcn.0042c877
mov eax, dword [ebp + 0x48]
mov dword [ebp + 0x4c], eax
lea eax, [eax + edi*2]
lea ecx, [ebp + 0x70]
mov dword [ebp + 0x7c], eax
call fcn.00427365
mov esi, dword [ebp + 0x7c]
push 5
push esi
push str.map:
call fcn.00428263
add esp, 0xc
test al, al
je 0x41d645
mov dword [ebp + 0x6c], esi
mov dword [ebp + 0x7c], esi
mov eax, dword [ebp + 0x7c]
mov esi, dword [ebp + 0x5c]
mov edi, eax
lea eax, [eax + esi*2]
mov cx, word [eax]
mov dword [ebp + 0x60], eax
mov word [eax], bx
mov eax, dword [ebp + 0x6c]
cmp eax, ebx
mov dword [ebp + 0x70], edi
mov word [ebp - 4], cx
je 0x41d6e4
mov ecx, dword [ebp + 0x7c]
add eax, 0xa
mov word [ecx + esi*2], bx
mov dword [ebp + 0x7c], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp - 8], ebx
call fcn.0042f0d0
mov eax, dword [ebp - 8]
cmp eax, ebx
pop ecx
pop ecx
jg 0x41d697
mov esi, 0x80070057
jmp 0x41def1
mov edi, dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push ebx
push ebx
push ebx
push 6
push eax
mov dword [ebp + 0x24], eax
call edi
cmp eax, ebx
jne 0x41d6b4
xor esi, esi
inc esi
jmp 0x41def1
mov ecx, dword [eax]
push eax
mov dword [ebp + 0x38], ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp + 0x38]
cmp eax, ebx
jle 0x41d6ac
add eax, 4
push eax
push ebx
push ebx
push 6
push dword [ebp + 0x24]
call edi
cmp eax, ebx
mov dword [ebp + 0x6c], eax
je 0x41d6ac
mov edi, dword [ebp + 0x70]
add eax, 4
mov dword [ebp + 0x40], eax
lea ecx, [ebp + 4]
call fcn.0042c809
cmp word [edi], 0x2a
mov eax, edi
jne 0x41d6f7
lea eax, [edi + 2]
push 0x2a
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
cmp edi, ebx
je 0x41d7bd
cmp word [edi + 2], 0x2a
jne 0x41d713
xor edi, edi
cmp edi, ebx
je 0x41d7bd
mov eax, dword [ebp + 0x70]
mov esi, edi
sub esi, eax
sar esi, 1
cmp word [eax + esi*2 - 2], 0x22
mov dword [ebp + 0x5c], esi
jne 0x41d733
dec esi
mov dword [ebp + 0x5c], esi
inc edi
inc edi
cmp word [edi], bx
mov dword [ebp + 0x68], edi
je 0x41d75f
xor ecx, ecx
mov cx, word [edi]
mov eax, ecx
call fcn.00402a89
test al, al
jne 0x41d75a
cmp cx, 0x22
je 0x41d75a
inc edi
inc edi
cmp word [edi], bx
jne 0x41d73d
cmp edi, dword [ebp + 0x68]
jne 0x41d767
xor esi, esi
inc esi
jmp 0x41dee9
cmp byte [ebp + 0x67], bl
je 0x41d8a6
cmp word [edi], 0x22
jne 0x41d8a6
mov byte [ebp + 0x67], 1
mov word [edi], 0x20
push dword [ebp + 0x68]
lea ecx, [ebp + 4]
call fcn.0043667e
sub dword [ebp + 0x68], 2
cmp byte [ebp + 0x67], bl
mov edx, dword [ebp + 0x68]
je 0x41d7a1
mov word [edx], 0x22
inc edx
inc edx
cmp edx, edi
jae 0x41d7bd
mov ecx, edi
sub ecx, edx
dec ecx
shr ecx, 1
inc ecx
shr ecx, 1
mov eax, 0x200020
mov edi, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov ax, word [ebp - 4]
mov ecx, dword [ebp + 0x60]
push esi
push dword [ebp + 0x70]
mov word [ecx], ax
lea ecx, [ebp]
call fcn.004365d7
mov eax, dword [ebp]
mov word [eax + esi*2], bx
mov edi, dword [ebp]
mov dword [ebp + 0x7c], edi
cmp word [edi], 0x2a
mov dword [ebp + 0x60], edi
jne 0x41d809
push 0x5c
lea esi, [edi + 2]
mov edi, dword [sym.imp.SHLWAPI.dll_StrRChrW]
push ebx
push esi
mov dword [ebp + 0x60], esi
call edi
cmp eax, ebx
jne 0x41d801
mov eax, esi
push 0x23
push ebx
push eax
call edi
mov edi, eax
cmp edi, ebx
mov esi, 0x480934
je 0x41d818
cmp word [edi], 0x23
je 0x41d81a
mov edi, esi
xor edx, edx
cmp word [edi], bx
jne 0x41d8b1
cmp edx, ebx
jle 0x41d833
lea eax, [ebp + 0x4c]
push eax
call fcn.00403cc8
pop ecx
cmp byte [ebp + 0x5b], bl
je 0x41da4a
lea ecx, [ebp + 0x28]
call fcn.0042c693
mov esi, dword [ebp + 0x7c]
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x60], esi
call fcn.00403c83
mov eax, dword [ebp + 0x60]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x68]
call fcn.004365d7
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x26
je 0x41d91e
mov ecx, dword [ebp + 0x54]
cmp byte [ecx + 0xb], bl
jne 0x41d91e
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.00434894
pop ecx
pop ecx
push dword [ebp + 0x28]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], eax
jmp 0x41d99c
mov byte [ebp + 0x67], bl
jmp 0x41d783
mov edi, eax
inc edx
lea eax, [edi + 2]
cmp word [eax], 0x23
je 0x41d8ae
cmp word [edi], bx
je 0x41d825
xor eax, eax
mov ax, word [edi + 2]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x41d918
cmp word [edi], bx
je 0x41d825
lea ecx, [edi + 2]
jmp 0x41d8e6
inc ecx
inc ecx
xor eax, eax
mov ax, word [ecx]
push eax
call fcn.0040efef
add esp, 4
test al, al
jne 0x41d8e4
mov cx, word [ecx]
cmp cx, bx
je 0x41d825
cmp cx, 0x7c
je 0x41d825
cmp cx, 0x3a
je 0x41d825
mov edi, esi
xor edx, edx
jmp 0x41d8d6
mov esi, 0x4975e4
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x54]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x68]
call fcn.0040b0e9
mov edi, eax
cmp edi, ebx
jne 0x41d95d
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x68]
call fcn.00427365
lea ecx, [ebp + 0x28]
call fcn.00427365
xor esi, esi
inc esi
jmp 0x41dee1
mov eax, dword [edi + 0xc]
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x2c], eax
mov eax, dword [edi + 0xc]
add eax, 0x10
push eax
lea ecx, [ebp + 0x28]
call fcn.0042c6d7
push dword [edi + 0xc]
push dword [edi + 4]
push dword [ebp + 0x28]
call fcn.0046cbf0
mov eax, dword [edi + 0xc]
add eax, dword [ebp + 0x28]
push 0x10
push ebx
push eax
call fcn.0046c9b0
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x495270], bl
jge 0x41d9ab
mov byte [0x495270], 1
lea eax, [ebp + 0x28]
push 1
push eax
call fcn.0043f1ef
call fcn.0040c7ef
push ebx
push ebx
push dword [ebp + 0x28]
mov esi, eax
call fcn.0040c84a
push ebx
push dword [ebp + 0x54]
lea eax, [ebp + 0x28]
push eax
call fcn.0041cfe4
push ebx
push dword [ebp + 0x28]
movzx edi, si
call fcn.0040c7d6
inc eax
inc eax
push eax
push edi
push dword [ebp + 0x28]
call fcn.0040c84a
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0x28]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c883
mov esi, dword [ebp + 0x28]
add esp, 0x48
push 0xffffffffffffffff
push str.mem
lea ecx, [ebp + 0x24]
mov dword [ebp + 0x28], ebx
call fcn.004365f0
mov eax, dword [eax]
mov ecx, dword [ebp + 0x54]
push ebx
shl edi, 0x10
or edi, dword [ebp + 0x50]
push ebx
or edi, 0x40
push edi
push eax
push dword [ebp + 0x4c]
push esi
call fcn.00461bc0
lea ecx, [ebp + 0x24]
mov esi, eax
call fcn.00427365
lea ecx, [ebp + 0x68]
call fcn.00427365
lea ecx, [ebp + 0x28]
jmp 0x41db3c
cmp dword [ebp + 0x38], ebx
jle 0x41db46
lea ecx, [ebp + 0xc]
call fcn.0042c693
mov esi, dword [ebp + 0x38]
lea eax, [esi + 0x10]
push eax
lea ecx, [ebp + 0xc]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.0042c6d7
push esi
push dword [ebp + 0x40]
mov dword [ebp + 0x14], esi
push dword [ebp + 0xc]
mov dword [ebp + 0x10], esi
call fcn.0046cbf0
mov eax, dword [ebp + 0xc]
push 0x10
add eax, esi
push ebx
push eax
call fcn.0046c9b0
add esp, 0x18
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea eax, [ebp + 0xc]
push 1
push eax
call fcn.0043f1ef
call fcn.0040c7ef
mov edi, eax
xor eax, eax
mov ah, byte [ebp + 0x6c]
push ebx
mov al, ah
movzx esi, ax
push esi
push dword [ebp + 0xc]
mov dword [ebp + 0x6c], eax
call fcn.0040c84a
push esi
push dword [ebp + 0x54]
lea eax, [ebp + 0xc]
push eax
call fcn.0041cfe4
push dword [ebp + 0x6c]
movzx edi, di
push dword [ebp + 0xc]
call fcn.0040c7d6
inc eax
inc eax
push eax
mov eax, edi
xor eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0040c84a
add esp, 0x34
cmp byte [0x495270], bl
jge 0x41db02
mov byte [0x495270], 1
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0xc]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c883
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x54]
add esp, 0x14
push ebx
shl edi, 0x10
or edi, dword [ebp + 0x50]
push ebx
or edi, 0x40
push edi
push dword [ebp]
mov dword [ebp + 0xc], ebx
push dword [ebp + 0x4c]
push eax
call fcn.00461bc0
mov esi, eax
lea ecx, [ebp + 0xc]
call fcn.00427365
jmp 0x41dee1
mov eax, dword [ebp + 0x7c]
cmp word [eax], 0x5c
jne 0x41dc00
add eax, 2
cmp word [eax], 0x5c
je 0x41dc00
push 0x909
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x7c], eax
call fcn.0042c827
mov edi, dword [ebp + 0x40]
mov dword [ebp + 0x6c], edi
add edi, 0xbc8
push edi
push 0x324
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov esi, 0x5dc
xor eax, eax
sub esi, dword [ebp + 0x5c]
jmp 0x41dbee
mov cx, word [ebp + 0x3c]
cmp word [edi], cx
jb 0x41dbe3
cmp eax, esi
jge 0x41dbe3
push dword [ebp + 0x7c]
push edi
push str._s_s
push dword [ebp + 0x6c]
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp + 0x6c]
call fcn.0046c682
add esp, 0x14
test eax, eax
je 0x41dbe3
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
or eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x54]
push ebx
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
call fcn.0041d0da
cmp byte [ebp + 0x5a], bl
mov dword [ebp + 8], eax
je 0x41dbf3
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [edi + eax*2 + 2]
cmp word [edi], bx
jne 0x41db94
lea ecx, [ebp + 0x40]
call fcn.00427365
jmp 0x41ded5
cmp word [edi], bx
je 0x41deb7
mov esi, dword [sym.imp.SHLWAPI.dll_StrChrW]
push 0x3a
push edi
mov dword [ebp + 0x40], 0x483e8c
mov dword [ebp + 0x3c], edi
call esi
cmp eax, ebx
mov dword [ebp + 0x70], eax
je 0x41dc3c
mov word [eax], bx
mov eax, dword [ebp + 0x70]
inc eax
inc eax
mov dword [ebp + 0x70], eax
cmp word [eax], 0x7c
mov dword [ebp + 0x3c], eax
je 0x41dc3c
mov dword [ebp + 0x40], eax
push 0x7c
push dword [ebp + 0x3c]
call esi
cmp eax, ebx
mov dword [ebp + 0x70], eax
jne 0x41dc53
mov dword [ebp + 0x70], 0x480934
jmp 0x41dc5a
mov word [eax], bx
add dword [ebp + 0x70], 2
mov eax, dword [ebp + 0x70]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x5c], 0x7fffffff
cmp word [eax], bx
je 0x41dc7e
push 0x7c
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042ee6d
add esp, 0xc
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x2c
jne 0x41dc96
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042f0d0
pop ecx
pop ecx
cmp dword [ebp + 0x5c], ebx
jle 0x41dd6c
cmp dword [ebp + 0x38], ebx
jl 0x41dd6c
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x23
mov dword [ebp - 4], ebx
je 0x41dce2
push 2
push ebx
push eax
mov dword [ebp - 4], 1
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
cmp eax, ebx
mov dword [ebp + 0x6c], eax
mov word [edi], 0x23
je 0x41d955
call fcn.0040c7ef
xor ecx, ecx
mov ch, al
mov dword [ebp - 0xc], eax
mov cl, al
movzx esi, cx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x24], esi
shl esi, 0x10
lea ecx, [ebp + 0x18]
mov dword [ebp + 0x68], esi
call fcn.0042c693
push edi
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
call fcn.004365ba
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp + 0x18]
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x3c]
push dword [ebp + 0x6c]
call fcn.0040f3dc
add esp, 0x14
lea ecx, [ebp + 0x3c]
call fcn.00427365
or dword [ebp + 0x68], esi
cmp dword [ebp - 4], ebx
je 0x41dd48
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x38]
sub ecx, edx
jns 0x41dd54
xor ecx, ecx
mov eax, dword [ebp + 0x5c]
cmp eax, ecx
jle 0x41dd60
mov eax, ecx
mov dword [ebp + 0x5c], eax
cmp eax, ebx
jg 0x41dd76
lea ecx, [ebp + 0x18]
call fcn.00427365
mov esi, 0x80070057
jmp 0x41dee1
cmp edx, ebx
mov esi, dword [ebp + 0x18]
je 0x41dd8e
push eax
lea eax, [esi + edx]
push eax
push esi
call fcn.0046cf30
mov eax, dword [ebp + 0x5c]
add esp, 0xc
movzx ecx, byte [ebp + 0x60]
push 0xc
push ecx
add esi, eax
push esi
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x1c], eax
call fcn.0046c9b0
mov eax, dword [ebp + 0x68]
or eax, 1
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0043f1ef
add esp, 0x14
push ebx
push dword [ebp + 0x54]
lea ecx, [ebp - 0xa0]
call fcn.0041cc20
mov ax, word [ebp + 0x60]
push dword [ebp + 0x24]
lea ecx, [ebp - 0xa0]
mov word [ebp - 0x98], ax
call fcn.0042aa5e
push dword [ebp + 0x68]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0041cfe4
or dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x1c]
movzx esi, word [ebp - 0xc]
shr eax, 1
inc eax
inc eax
push eax
mov eax, esi
xor eax, dword [ebp + 0x24]
push eax
push dword [ebp + 0x18]
call fcn.0040c84a
movzx eax, word [ebp + 0x68]
mov edi, esi
shl edi, 0x10
add esp, 0x18
or edi, eax
cmp byte [0x495270], bl
jge 0x41de2b
mov byte [0x495270], 1
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 4]
cmp word [eax], bx
je 0x41de4d
push dword [ebp + 0x4c]
push eax
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0041c661
add esp, 0x10
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x41de72
mov ecx, dword [ebp + 0x6c]
sub ecx, dword [ebp + 0x18]
sar ecx, 1
push ecx
push dword [ebp + 0x44]
push eax
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0040c883
add esp, 0x14
mov dword [ebp + 0x6c], eax
push ebx
lea ecx, [ebp - 0xa0]
call fcn.0041c72f
lea ecx, [ebp - 0x64]
call fcn.00427365
mov eax, dword [ebp + 0x18]
cmp eax, ebx
mov dword [ebp + 0x18], ebx
je 0x41dead
or edi, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
push ebx
push dword [ebp + 0x6c]
or edi, 0x40
push edi
push dword [ebp + 0x7c]
push dword [ebp + 0x4c]
push eax
call fcn.00461bc0
mov dword [ebp + 8], eax
lea ecx, [ebp + 0x18]
call fcn.00427365
jmp 0x41ded5
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
push dword [ebp + 4]
or eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x54]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x7c]
call fcn.0041d0da
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x54]
push ebx
call fcn.0044ba23
mov esi, dword [ebp + 8]
lea ecx, [ebp]
call fcn.00427365
lea ecx, [ebp + 4]
call fcn.00427365
lea ecx, [ebp + 0x48]
call fcn.00427365
lea ecx, [ebp + 0x34]
call fcn.00427365
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4