Function at 0x41cfc7
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.00409e64
lea ecx, [ebp + 0x34]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x40], ebx
call fcn.0042c3f7
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 0x41d012
mov cl, al
movsx esi, cl
movzx eax, ax
jmp 0x41d1a5
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x4832d8
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d041
or dword [ebp + 0x50], 8
jmp 0x41d19f
push ebx
lea eax, [ebp + 0x7c]
push eax
push 0x48151a
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d060
or dword [ebp + 0x50], 4
jmp 0x41d19f
push 7
lea eax, [ebp + 0x7c]
push eax
push str.sysinit
call fcn.0042df66
add esp, 0xc
test al, al
jne 0x41d19f
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
jne 0x41d1b5
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x4813b4
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d0ad
or byte [ebp + 0x5b], 1
jmp 0x41d19f
push 1
lea eax, [ebp + 0x7c]
push eax
push 0x483ce8
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d0cd
or byte [ebp + 0x5a], 1
jmp 0x41d19f
push 5
lea eax, [ebp + 0x7c]
push eax
push str.local
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d0f1
or dword [ebp + 0x50], 0x10
or dword [ebp + 0x44], 0x10
jmp 0x41d19f
push 8
lea eax, [ebp + 0x7c]
push eax
push str.EnviMode
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d115
or dword [ebp + 0x50], 0x20
or dword [ebp + 0x44], 0x20
jmp 0x41d19f
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x483d2c
call fcn.0042df66
add esp, 0xc
test al, al
je 0x41d132
or dword [ebp + 0x50], 0x40
jmp 0x41d19f
push 5
push dword [ebp + 0x7c]
push str.logs:
call fcn.00427f14
add esp, 0xc
test al, al
je 0x41d1af
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.00413513
add esp, 0xc
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x7c], eax
jle 0x41d197
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x4c]
push dword [ebp + 0x60]
call fcn.004361fb
mov ecx, dword [ebp + 0x54]
push 1
push ebx
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x4c]
call fcn.0043c12f
lea ecx, [ebp + 0x4c]
call fcn.0042704a
lea ecx, [ebp + 0x7c]
call fcn.00409e64
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
je 0x41d01d
jmp 0x41d1b9
sub dword [ebp + 0x7c], 4
jmp 0x41d1b9
sub dword [ebp + 0x7c], 2
push dword [ebp + 0x54]
call fcn.0040c7e9
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.00413513
add esp, 0x10
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x4c], eax
call fcn.0042c3f7
mov eax, dword [ebp + 0x4c]
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp + 0x70]
call fcn.004361fb
mov eax, dword [ebp + 0x70]
mov cx, word [eax]
cmp cx, si
jne 0x41d234
mov ecx, esi
cmp cx, si
je 0x41d220
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41d211
cmp word [eax], bx
je 0x41d239
inc eax
inc eax
jmp 0x41d239
cmp cx, 0x2c
je 0x41d239
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41d229
cmp word [eax], 0x2c
jne 0x41d24e
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.0043d4de
mov edi, dword [ebp + 0x48]
cmp word [edi], si
je 0x41d2c9
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x60], edi
call fcn.00403c2d
mov eax, dword [ebp + 0x60]
cmp word [eax], bx
pop ecx
je 0x41d2c9
push edi
lea ecx, [ebp + 0x70]
call fcn.00436246
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.0042c43e
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.00403c15
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.00413513
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.0043d4de
push dword [ebp + 0x70]
lea ecx, [ebp + 0x48]
call fcn.0042c465
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.0042704a
mov esi, dword [ebp + 0x7c]
push 5
push esi
push str.map:
call fcn.00427f14
add esp, 0xc
test al, al
je 0x41d333
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 0x41d3d2
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.0042ed5c
mov eax, dword [ebp - 8]
cmp eax, ebx
pop ecx
pop ecx
jg 0x41d385
mov esi, 0x80070057
jmp 0x41dbdf
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 0x41d3a2
xor esi, esi
inc esi
jmp 0x41dbdf
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 0x41d39a
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 0x41d39a
mov edi, dword [ebp + 0x70]
add eax, 4
mov dword [ebp + 0x40], eax
lea ecx, [ebp + 4]
call fcn.0042c3f7
cmp word [edi], 0x2a
mov eax, edi
jne 0x41d3e5
lea eax, [edi + 2]
push 0x2a
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
cmp edi, ebx
je 0x41d4ab
cmp word [edi + 2], 0x2a
jne 0x41d401
xor edi, edi
cmp edi, ebx
je 0x41d4ab
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 0x41d421
dec esi
mov dword [ebp + 0x5c], esi
inc edi
inc edi
cmp word [edi], bx
mov dword [ebp + 0x68], edi
je 0x41d44d
xor ecx, ecx
mov cx, word [edi]
mov eax, ecx
call fcn.00426fde
test al, al
jne 0x41d448
cmp cx, 0x22
je 0x41d448
inc edi
inc edi
cmp word [edi], bx
jne 0x41d42b
cmp edi, dword [ebp + 0x68]
jne 0x41d455
xor esi, esi
inc esi
jmp 0x41dbd7
cmp byte [ebp + 0x67], bl
je 0x41d594
cmp word [edi], 0x22
jne 0x41d594
mov byte [ebp + 0x67], 1
mov word [edi], 0x20
push dword [ebp + 0x68]
lea ecx, [ebp + 4]
call fcn.004362a2
sub dword [ebp + 0x68], 2
cmp byte [ebp + 0x67], bl
mov edx, dword [ebp + 0x68]
je 0x41d48f
mov word [edx], 0x22
inc edx
inc edx
cmp edx, edi
jae 0x41d4ab
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.004361fb
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 0x41d4f7
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 0x41d4ef
mov eax, esi
push 0x23
push ebx
push eax
call edi
mov edi, eax
cmp edi, ebx
mov esi, 0x480934
je 0x41d506
cmp word [edi], 0x23
je 0x41d508
mov edi, esi
xor edx, edx
cmp word [edi], bx
jne 0x41d59f
cmp edx, ebx
jle 0x41d521
lea eax, [ebp + 0x4c]
push eax
call fcn.00403c51
pop ecx
cmp byte [ebp + 0x5b], bl
je 0x41d738
lea ecx, [ebp + 0x28]
call fcn.0042c281
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.00403c2d
mov eax, dword [ebp + 0x60]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x68]
call fcn.004361fb
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x26
je 0x41d60c
mov ecx, dword [ebp + 0x54]
cmp byte [ecx + 0xb], bl
jne 0x41d60c
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.00434473
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 0x41d68a
mov byte [ebp + 0x67], bl
jmp 0x41d471
mov edi, eax
inc edx
lea eax, [edi + 2]
cmp word [eax], 0x23
je 0x41d59c
cmp word [edi], bx
je 0x41d513
xor eax, eax
mov ax, word [edi + 2]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x41d606
cmp word [edi], bx
je 0x41d513
lea ecx, [edi + 2]
jmp 0x41d5d4
inc ecx
inc ecx
xor eax, eax
mov ax, word [ecx]
push eax
call fcn.0040ee76
add esp, 4
test al, al
jne 0x41d5d2
mov cx, word [ecx]
cmp cx, bx
je 0x41d513
cmp cx, 0x7c
je 0x41d513
cmp cx, 0x3a
je 0x41d513
mov edi, esi
xor edx, edx
jmp 0x41d5c4
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.0040af39
mov edi, eax
cmp edi, ebx
jne 0x41d64b
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x68]
call fcn.0042704a
lea ecx, [ebp + 0x28]
call fcn.0042704a
xor esi, esi
inc esi
jmp 0x41dbcf
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.0042c2c5
push dword [edi + 0xc]
push dword [edi + 4]
push dword [ebp + 0x28]
call fcn.0046c720
mov eax, dword [edi + 0xc]
add eax, dword [ebp + 0x28]
push 0x10
push ebx
push eax
call fcn.0046c4e0
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x495270], bl
jge 0x41d699
mov byte [0x495270], 1
lea eax, [ebp + 0x28]
push 1
push eax
call fcn.0043edf7
call fcn.0040c635
push ebx
push ebx
push dword [ebp + 0x28]
mov esi, eax
call fcn.0040c690
push ebx
push dword [ebp + 0x54]
lea eax, [ebp + 0x28]
push eax
call fcn.0041cc89
push ebx
push dword [ebp + 0x28]
movzx edi, si
call fcn.0040c61c
inc eax
inc eax
push eax
push edi
push dword [ebp + 0x28]
call fcn.0040c690
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0x28]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c6c9
mov esi, dword [ebp + 0x28]
add esp, 0x48
push 0xffffffffffffffff
push str.mem
lea ecx, [ebp + 0x24]
mov dword [ebp + 0x28], ebx
call fcn.00436214
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.0046173e
lea ecx, [ebp + 0x24]
mov esi, eax
call fcn.0042704a
lea ecx, [ebp + 0x68]
call fcn.0042704a
lea ecx, [ebp + 0x28]
jmp 0x41d82a
cmp dword [ebp + 0x38], ebx
jle 0x41d834
lea ecx, [ebp + 0xc]
call fcn.0042c281
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.0042c2c5
push esi
push dword [ebp + 0x40]
mov dword [ebp + 0x14], esi
push dword [ebp + 0xc]
mov dword [ebp + 0x10], esi
call fcn.0046c720
mov eax, dword [ebp + 0xc]
push 0x10
add eax, esi
push ebx
push eax
call fcn.0046c4e0
add esp, 0x18
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea eax, [ebp + 0xc]
push 1
push eax
call fcn.0043edf7
call fcn.0040c635
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.0040c690
push esi
push dword [ebp + 0x54]
lea eax, [ebp + 0xc]
push eax
call fcn.0041cc89
push dword [ebp + 0x6c]
movzx edi, di
push dword [ebp + 0xc]
call fcn.0040c61c
inc eax
inc eax
push eax
mov eax, edi
xor eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0040c690
add esp, 0x34
cmp byte [0x495270], bl
jge 0x41d7f0
mov byte [0x495270], 1
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0xc]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c6c9
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.0046173e
mov esi, eax
lea ecx, [ebp + 0xc]
call fcn.0042704a
jmp 0x41dbcf
mov eax, dword [ebp + 0x7c]
cmp word [eax], 0x5c
jne 0x41d8ee
add eax, 2
cmp word [eax], 0x5c
je 0x41d8ee
push 0x909
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x7c], eax
call fcn.0042c415
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 0x41d8dc
mov cx, word [ebp + 0x3c]
cmp word [edi], cx
jb 0x41d8d1
cmp eax, esi
jge 0x41d8d1
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.0046c1b3
add esp, 0x14
test eax, eax
je 0x41d8d1
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.0041cd92
cmp byte [ebp + 0x5a], bl
mov dword [ebp + 8], eax
je 0x41d8e1
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [edi + eax*2 + 2]
cmp word [edi], bx
jne 0x41d882
lea ecx, [ebp + 0x40]
call fcn.0042704a
jmp 0x41dbc3
cmp word [edi], bx
je 0x41dba5
mov esi, dword [sym.imp.SHLWAPI.dll_StrChrW]
push 0x3a
push edi
mov dword [ebp + 0x40], str.SCRIPT
mov dword [ebp + 0x3c], edi
call esi
cmp eax, ebx
mov dword [ebp + 0x70], eax
je 0x41d92a
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 0x41d92a
mov dword [ebp + 0x40], eax
push 0x7c
push dword [ebp + 0x3c]
call esi
cmp eax, ebx
mov dword [ebp + 0x70], eax
jne 0x41d941
mov dword [ebp + 0x70], 0x480934
jmp 0x41d948
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 0x41d96c
push 0x7c
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042eaf9
add esp, 0xc
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x2c
jne 0x41d984
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042ed5c
pop ecx
pop ecx
cmp dword [ebp + 0x5c], ebx
jle 0x41da5a
cmp dword [ebp + 0x38], ebx
jl 0x41da5a
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 0x41d9d0
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 0x41d643
call fcn.0040c635
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.0042c281
push edi
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
call fcn.004361de
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.0040f211
add esp, 0x14
lea ecx, [ebp + 0x3c]
call fcn.0042704a
or dword [ebp + 0x68], esi
cmp dword [ebp - 4], ebx
je 0x41da36
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 0x41da42
xor ecx, ecx
mov eax, dword [ebp + 0x5c]
cmp eax, ecx
jle 0x41da4e
mov eax, ecx
mov dword [ebp + 0x5c], eax
cmp eax, ebx
jg 0x41da64
lea ecx, [ebp + 0x18]
call fcn.0042704a
mov esi, 0x80070057
jmp 0x41dbcf
cmp edx, ebx
mov esi, dword [ebp + 0x18]
je 0x41da7c
push eax
lea eax, [esi + edx]
push eax
push esi
call fcn.0046ca60
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.0046c4e0
mov eax, dword [ebp + 0x68]
or eax, 1
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0043edf7
add esp, 0x14
push ebx
push dword [ebp + 0x54]
lea ecx, [ebp - 0xa0]
call fcn.0041c8c5
mov ax, word [ebp + 0x60]
push dword [ebp + 0x24]
lea ecx, [ebp - 0xa0]
mov word [ebp - 0x98], ax
call fcn.0042a69e
push dword [ebp + 0x68]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0041cc89
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.0040c690
movzx eax, word [ebp + 0x68]
mov edi, esi
shl edi, 0x10
add esp, 0x18
or edi, eax
cmp byte [0x495270], bl
jge 0x41db19
mov byte [0x495270], 1
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 4]
cmp word [eax], bx
je 0x41db3b
push dword [ebp + 0x4c]
push eax
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0041c333
add esp, 0x10
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x41db60
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.0040c6c9
add esp, 0x14
mov dword [ebp + 0x6c], eax
push ebx
lea ecx, [ebp - 0xa0]
call fcn.0041c401
lea ecx, [ebp - 0x64]
call fcn.0042704a
mov eax, dword [ebp + 0x18]
cmp eax, ebx
mov dword [ebp + 0x18], ebx
je 0x41db9b
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.0046173e
mov dword [ebp + 8], eax
lea ecx, [ebp + 0x18]
call fcn.0042704a
jmp 0x41dbc3
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.0041cd92
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0x54]
push ebx
call fcn.0044b61d
mov esi, dword [ebp + 8]
lea ecx, [ebp]
call fcn.0042704a
lea ecx, [ebp + 4]
call fcn.0042704a
lea ecx, [ebp + 0x48]
call fcn.0042704a
lea ecx, [ebp + 0x34]
call fcn.0042704a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x74
leave
ret 4