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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x10c
push ebx
push esi
mov dword [ebp + 0x50], ecx
push edi
lea ecx, [ebp + 0x7c]
call fcn.00409aad
xor ebx, ebx
lea ecx, [ebp + 0x34]
mov dword [ebp + 0x38], ebx
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x40], ebx
call fcn.0042aeb8
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 + 0x54], ebx
mov cl, 0x2a
jne 0x41e916
mov cl, al
movsx esi, cl
movzx eax, ax
jmp 0x41ea8e
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x47d318
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e945
or dword [ebp + 0x54], 8
jmp 0x41ea88
push ebx
lea eax, [ebp + 0x7c]
push eax
push 0x47b452
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e964
or dword [ebp + 0x54], 4
jmp 0x41ea88
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
jne 0x41ea9e
add dword [ebp + 0x7c], 2
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x47b30c
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e996
or byte [ebp + 0x5b], 1
jmp 0x41ea88
push 1
lea eax, [ebp + 0x7c]
push eax
push 0x47dac0
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e9b6
or byte [ebp + 0x5a], 1
jmp 0x41ea88
push 5
lea eax, [ebp + 0x7c]
push eax
push str.local
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e9da
or dword [ebp + 0x54], 0x10
or dword [ebp + 0x44], 0x10
jmp 0x41ea88
push 8
lea eax, [ebp + 0x7c]
push eax
push str.EnviMode
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41e9fe
or dword [ebp + 0x54], 0x20
or dword [ebp + 0x44], 0x20
jmp 0x41ea88
push 3
lea eax, [ebp + 0x7c]
push eax
push 0x47db00
call fcn.0042c7e8
add esp, 0xc
test al, al
je 0x41ea1b
or dword [ebp + 0x54], 0x40
jmp 0x41ea88
push 5
push dword [ebp + 0x7c]
push str.logs:
call fcn.00426f79
add esp, 0xc
test al, al
je 0x41ea98
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.00413db8
add esp, 0xc
cmp dword [ebp + 0x5c], ebx
mov dword [ebp + 0x7c], eax
jle 0x41ea80
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x4c]
push dword [ebp + 0x60]
call fcn.00426041
mov ecx, dword [ebp + 0x50]
push 1
push ebx
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x4c]
call fcn.00439f58
lea ecx, [ebp + 0x4c]
call fcn.0042602e
lea ecx, [ebp + 0x7c]
call fcn.00409aad
mov eax, dword [ebp + 0x7c]
movzx eax, word [eax]
cmp esi, eax
je 0x41e921
jmp 0x41eaa2
sub dword [ebp + 0x7c], 4
jmp 0x41eaa2
sub dword [ebp + 0x7c], 2
mov esi, dword [ebp + 0x7c]
push 0x22
pop edi
cmp word [esi], di
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.00413db8
add esp, 0xc
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x4c], eax
call fcn.0042aeb8
mov eax, dword [ebp + 0x4c]
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x70]
call fcn.00426041
mov eax, dword [ebp + 0x70]
mov cx, word [eax]
cmp cx, di
jne 0x41eb13
mov ecx, edi
cmp cx, di
je 0x41eaff
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41eaf0
cmp word [eax], bx
je 0x41eb18
inc eax
inc eax
jmp 0x41eb18
cmp cx, 0x2c
je 0x41eb18
inc eax
inc eax
mov cx, word [eax]
cmp cx, bx
jne 0x41eb08
cmp word [eax], 0x2c
jne 0x41eb2d
mov word [eax], bx
movzx eax, word [eax + 2]
and eax, 0xffdf
mov dword [ebp + 0x3c], eax
mov ecx, dword [ebp + 0x50]
push 1
push ebx
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x70]
call fcn.0043b18c
mov esi, dword [ebp + 0x48]
cmp word [esi], di
je 0x41eba8
lea eax, [ebp + 0x60]
push eax
mov dword [ebp + 0x60], esi
call fcn.00403adb
mov eax, dword [ebp + 0x60]
cmp word [eax], bx
pop ecx
je 0x41eba8
push esi
lea ecx, [ebp + 0x70]
call fcn.004346c9
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
lea eax, [esi + 3]
push eax
lea ecx, [ebp + 0x48]
call fcn.0042aeff
mov eax, dword [ebp + 0x48]
mov word [eax + esi*2 + 4], bx
mov eax, dword [ebp + 0x48]
push esi
push dword [ebp + 0x70]
add eax, 2
push eax
call fcn.00403ac3
mov eax, dword [ebp + 0x48]
mov word [eax + esi*2 + 2], di
mov eax, dword [ebp + 0x48]
mov word [eax], di
mov esi, dword [ebp + 0x48]
add esp, 0xc
push ebx
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp + 0x7c], esi
call fcn.00413db8
mov edi, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x50]
add esp, 0xc
push 1
push ebx
lea eax, [ebp + 0x70]
push eax
push dword [ebp + 0x4c]
sub edi, esi
sar edi, 1
call fcn.0043b18c
push dword [ebp + 0x70]
lea ecx, [ebp + 0x48]
call fcn.0042af26
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.0042602e
mov esi, dword [ebp + 0x7c]
push 5
push esi
push str.map:
call fcn.00426f79
add esp, 0xc
test al, al
je 0x41ec11
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 0x41ecb0
mov ecx, dword [ebp + 0x7c]
add eax, 0xa
mov word [ecx + esi*2], bx
mov dword [ebp + 0x7c], eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x7c]
push eax
mov dword [ebp - 4], ebx
call fcn.0042dab0
mov eax, dword [ebp - 4]
cmp eax, ebx
pop ecx
pop ecx
jg 0x41ec63
mov ebx, 0x80070057
jmp 0x41f4ae
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 0x41ec80
xor ebx, ebx
inc ebx
jmp 0x41f4ae
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 0x41ec78
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 0x41ec78
mov edi, dword [ebp + 0x70]
add eax, 4
mov dword [ebp + 0x40], eax
lea ecx, [ebp]
call fcn.0042aeb8
cmp word [edi], 0x2a
mov eax, edi
jne 0x41ecc3
lea eax, [edi + 2]
push 0x2a
push eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
mov edi, eax
cmp edi, ebx
je 0x41ed89
cmp word [edi + 2], 0x2a
jne 0x41ecdf
xor edi, edi
cmp edi, ebx
je 0x41ed89
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 0x41ecff
dec esi
mov dword [ebp + 0x5c], esi
inc edi
inc edi
cmp word [edi], bx
mov dword [ebp + 0x68], edi
je 0x41ed2b
xor ecx, ecx
mov cx, word [edi]
mov eax, ecx
call fcn.00426083
test al, al
jne 0x41ed26
cmp cx, 0x22
je 0x41ed26
inc edi
inc edi
cmp word [edi], bx
jne 0x41ed09
cmp edi, dword [ebp + 0x68]
jne 0x41ed33
xor ebx, ebx
inc ebx
jmp 0x41f4a6
cmp byte [ebp + 0x67], bl
je 0x41ee72
cmp word [edi], 0x22
jne 0x41ee72
mov byte [ebp + 0x67], 1
mov word [edi], 0x20
push dword [ebp + 0x68]
lea ecx, [ebp]
call fcn.00426075
sub dword [ebp + 0x68], 2
cmp byte [ebp + 0x67], bl
mov edx, dword [ebp + 0x68]
je 0x41ed6d
mov word [edx], 0x22
inc edx
inc edx
cmp edx, edi
jae 0x41ed89
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 + 8]
call fcn.00426041
mov eax, dword [ebp + 8]
mov word [eax + esi*2], bx
mov edi, dword [ebp + 8]
mov dword [ebp + 0x7c], edi
cmp word [edi], 0x2a
mov dword [ebp + 0x60], edi
jne 0x41edd5
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 0x41edcd
mov eax, esi
push 0x23
push ebx
push eax
call edi
mov edi, eax
cmp edi, ebx
mov esi, 0x47a8e8
je 0x41ede4
cmp word [edi], 0x23
je 0x41ede6
mov edi, esi
xor edx, edx
cmp word [edi], bx
jne 0x41ee7d
cmp edx, ebx
jle 0x41edff
lea eax, [ebp + 0x4c]
push eax
call fcn.00403b20
pop ecx
cmp byte [ebp + 0x5b], bl
je 0x41f013
lea ecx, [ebp + 0x28]
call fcn.0042adba
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.00403adb
mov eax, dword [ebp + 0x60]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x68]
call fcn.00426041
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x26
je 0x41eeea
mov ecx, dword [ebp + 0x50]
cmp byte [ecx + 0xb], bl
jne 0x41eeea
lea ecx, [ebp + 0x28]
push ecx
push eax
call fcn.00432a96
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 0x41ef68
mov byte [ebp + 0x67], bl
jmp 0x41ed4f
mov edi, eax
inc edx
lea eax, [edi + 2]
cmp word [eax], 0x23
je 0x41ee7a
cmp word [edi], bx
je 0x41edf1
xor eax, eax
mov ax, word [edi + 2]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x41eee4
cmp word [edi], bx
je 0x41edf1
lea ecx, [edi + 2]
jmp 0x41eeb2
inc ecx
inc ecx
xor eax, eax
mov ax, word [ecx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
jne 0x41eeb0
mov cx, word [ecx]
cmp cx, bx
je 0x41edf1
cmp cx, 0x7c
je 0x41edf1
cmp cx, 0x3a
je 0x41edf1
mov edi, esi
xor edx, edx
jmp 0x41eea2
mov esi, 0x49062c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 0x50]
push 0xffffffffffffffff
push ebx
push dword [ebp + 0x68]
call fcn.0040ac3f
mov edi, eax
cmp edi, ebx
jne 0x41ef29
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x68]
call fcn.0042602e
lea ecx, [ebp + 0x28]
call fcn.0042602e
xor ebx, ebx
inc ebx
jmp 0x41f49e
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.0042adfe
push dword [edi + 0xc]
push dword [edi + 4]
push dword [ebp + 0x28]
call fcn.004669c0
mov eax, dword [edi + 0xc]
add eax, dword [ebp + 0x28]
push 0x10
push ebx
push eax
call fcn.00466780
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x48e2a0], bl
jge 0x41ef77
mov byte [0x48e2a0], 1
lea eax, [ebp + 0x28]
push 1
push eax
call fcn.00433b9f
call fcn.0040c314
push ebx
push ebx
push dword [ebp + 0x28]
mov esi, eax
call fcn.0040c36f
push ebx
push dword [ebp + 0x50]
lea eax, [ebp + 0x28]
push eax
call fcn.0041e5ab
push ebx
push dword [ebp + 0x28]
movzx edi, si
call fcn.0040c2fb
inc eax
inc eax
push eax
push edi
push dword [ebp + 0x28]
call fcn.0040c36f
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0x28]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c3a8
mov esi, dword [ebp + 0x28]
add esp, 0x48
push 0xffffffffffffffff
push str.mem
lea ecx, [ebp + 0x24]
mov dword [ebp + 0x28], ebx
call fcn.0042605a
mov ecx, dword [ebp + 0x50]
push ebx
shl edi, 0x10
or edi, dword [ebp + 0x54]
push ebx
or edi, 0x40
push edi
push dword [eax]
push dword [ebp + 0x4c]
push esi
call fcn.0045b505
lea ecx, [ebp + 0x24]
call fcn.0042602e
lea ecx, [ebp + 0x68]
call fcn.0042602e
lea ecx, [ebp + 0x28]
jmp 0x41f103
cmp dword [ebp + 0x38], ebx
jle 0x41f10d
lea ecx, [ebp + 0xc]
call fcn.0042adba
mov edi, dword [ebp + 0x38]
lea eax, [edi + 0x10]
push eax
lea ecx, [ebp + 0xc]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
call fcn.0042adfe
push edi
push dword [ebp + 0x40]
mov dword [ebp + 0x14], edi
push dword [ebp + 0xc]
mov dword [ebp + 0x10], edi
call fcn.004669c0
mov eax, dword [ebp + 0xc]
push 0x10
add eax, edi
push ebx
push eax
call fcn.00466780
add esp, 0x18
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea eax, [ebp + 0xc]
push 1
push eax
call fcn.00433b9f
call fcn.0040c314
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.0040c36f
push esi
push dword [ebp + 0x50]
lea eax, [ebp + 0xc]
push eax
call fcn.0041e5ab
push dword [ebp + 0x6c]
movzx edi, di
push dword [ebp + 0xc]
call fcn.0040c2fb
inc eax
inc eax
push eax
mov eax, edi
xor eax, esi
push eax
push dword [ebp + 0xc]
call fcn.0040c36f
add esp, 0x34
cmp byte [0x48e2a0], bl
jge 0x41f0cb
mov byte [0x48e2a0], 1
push ebx
push dword [ebp + 0x44]
lea eax, [ebp + 0xc]
push dword [ebp + 0x34]
push eax
push edi
call fcn.0040c3a8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x50]
add esp, 0x14
push ebx
shl edi, 0x10
or edi, dword [ebp + 0x54]
push ebx
or edi, 0x40
push edi
push dword [ebp + 8]
mov dword [ebp + 0xc], ebx
push dword [ebp + 0x4c]
push eax
call fcn.0045b505
lea ecx, [ebp + 0xc]
call fcn.0042602e
jmp 0x41f49e
mov eax, dword [ebp + 0x7c]
cmp word [eax], 0x5c
jne 0x41f1c4
add eax, 2
cmp word [eax], 0x5c
je 0x41f1c4
push 0x909
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x7c], eax
call fcn.0042aed6
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 0x41f1b2
mov cx, word [edi]
cmp cx, word [ebp + 0x3c]
jb 0x41f1a7
cmp eax, esi
jge 0x41f1a7
push dword [ebp + 0x7c]
push edi
push 0x47d868
push dword [ebp + 0x6c]
call dword [sym.imp.USER32.dll_wsprintfW]
push dword [ebp + 0x6c]
call fcn.0046646e
add esp, 0x14
test eax, eax
je 0x41f1a7
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x54]
or eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x50]
push ebx
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x6c]
call fcn.0041e6b4
cmp byte [ebp + 0x5a], bl
je 0x41f1b7
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [edi + eax*2 + 2]
cmp word [edi], bx
jne 0x41f15b
lea ecx, [ebp + 0x40]
call fcn.0042602e
jmp 0x41f495
cmp word [edi], bx
je 0x41f47a
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 0x41f200
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 0x41f200
mov dword [ebp + 0x40], eax
push 0x7c
push dword [ebp + 0x3c]
call esi
cmp eax, ebx
mov dword [ebp + 0x70], eax
jne 0x41f217
mov dword [ebp + 0x70], 0x47a8e8
jmp 0x41f21e
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 0x41f242
push 0x7c
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042d84d
add esp, 0xc
mov eax, dword [ebp + 0x70]
cmp word [eax], 0x2c
jne 0x41f25a
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x70]
push eax
call fcn.0042dab0
pop ecx
pop ecx
cmp dword [ebp + 0x5c], ebx
jle 0x41f332
cmp dword [ebp + 0x38], ebx
jl 0x41f332
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 0x41f2a8
push 2
xor esi, esi
push ebx
inc esi
push eax
mov dword [ebp + 4], esi
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
cmp eax, ebx
mov dword [ebp + 0x6c], eax
mov word [edi], 0x23
jne 0x41f2a8
mov ebx, esi
jmp 0x41f49e
call fcn.0040c314
xor ecx, ecx
mov ch, al
mov dword [ebp - 8], 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.0042adba
push edi
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
call fcn.00434695
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.0040f8b6
add esp, 0x14
lea ecx, [ebp + 0x3c]
call fcn.0042602e
or dword [ebp + 0x68], esi
cmp dword [ebp + 4], ebx
je 0x41f30e
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 0x41f31a
xor ecx, ecx
mov eax, dword [ebp + 0x5c]
cmp eax, ecx
jle 0x41f326
mov eax, ecx
mov dword [ebp + 0x5c], eax
cmp eax, ebx
jg 0x41f33c
lea ecx, [ebp + 0x18]
call fcn.0042602e
mov ebx, 0x80070057
jmp 0x41f49e
cmp edx, ebx
mov esi, dword [ebp + 0x18]
je 0x41f354
push eax
lea eax, [esi + edx]
push eax
push esi
call fcn.00466d00
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.00466780
mov eax, dword [ebp + 0x68]
or eax, 1
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.00433b9f
add esp, 0x14
push ebx
push dword [ebp + 0x50]
lea ecx, [ebp - 0x98]
call fcn.0041e1e7
mov ax, word [ebp + 0x60]
push dword [ebp + 0x24]
lea ecx, [ebp - 0x98]
mov word [ebp - 0x90], ax
call fcn.0042965b
push dword [ebp + 0x68]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0041e5ab
or dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x1c]
movzx esi, word [ebp - 8]
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.0040c36f
movzx eax, word [ebp + 0x68]
mov edi, esi
shl edi, 0x10
add esp, 0x18
or edi, eax
cmp byte [0x48e2a0], bl
jge 0x41f3f1
mov byte [0x48e2a0], 1
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp]
cmp word [eax], bx
je 0x41f413
push dword [ebp + 0x4c]
push eax
lea eax, [ebp + 0x18]
push eax
push esi
call fcn.0041bc53
add esp, 0x10
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x34]
cmp word [eax], bx
je 0x41f438
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.0040c3a8
add esp, 0x14
mov dword [ebp + 0x6c], eax
push ebx
lea ecx, [ebp - 0x98]
call fcn.0041c5fe
lea ecx, [ebp - 0x60]
call fcn.0042602e
mov eax, dword [ebp + 0x18]
cmp eax, ebx
mov dword [ebp + 0x18], ebx
je 0x41f470
or edi, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x50]
push ebx
push dword [ebp + 0x6c]
or edi, 0x40
push edi
push dword [ebp + 0x7c]
push dword [ebp + 0x4c]
push eax
call fcn.0045b505
lea ecx, [ebp + 0x18]
call fcn.0042602e
jmp 0x41f495
push dword [ebp + 0x34]
mov eax, dword [ebp + 0x54]
push dword [ebp]
or eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x50]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x7c]
call fcn.0041e6b4
mov ecx, dword [ebp + 0x50]
push ebx
call fcn.004488e0
lea ecx, [ebp + 8]
call fcn.0042602e
lea ecx, [ebp]
call fcn.0042602e
lea ecx, [ebp + 0x48]
call fcn.0042602e
lea ecx, [ebp + 0x34]
call fcn.0042602e
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x74
leave
ret 4