Function at 0x463bfb
Capabilities:
Encode data using base64
Get disk information
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x3bc
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0xb8], ecx
call fcn.0043e425
pop ecx
push 5
lea ecx, [ebp + 0xc]
call fcn.00444a2e
push 0x14
lea ecx, [ebp - 0x1cc]
call fcn.00444a2e
lea ecx, [ebp - 0xcc]
call fcn.00444a10
lea ecx, [ebp - 0xbc]
call fcn.00444a10
lea ecx, [ebp - 0xc0]
call fcn.00444a10
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x34]
push eax
mov dword [ebp + 4], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0x14], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov byte [ebp - 0x46], bl
mov byte [ebp - 0x29], bl
mov byte [ebp - 0x75], bl
mov byte [ebp - 0x7d], bl
mov byte [ebp + 0x5e], bl
mov byte [ebp + 0x4b], bl
mov byte [ebp - 0x26], bl
mov byte [ebp - 0xa2], bl
mov byte [ebp - 0x2a], bl
mov dword [ebp - 0x84], ebx
call fcn.0044785b
mov eax, dword [ebp - 0xbc]
mov word [eax], bx
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x463d3d
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x34], eax
push 0x2c
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0044785b
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x1e], 0
mov byte [ebp + 0x66], 0
mov byte [ebp - 0x95], 0xff
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x47], 0
mov byte [ebp - 0x7e], 0
mov byte [ebp + 0x1c], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x26], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x65], 0
mov byte [ebp + 0x64], 0
mov byte [ebp - 0x49], 0
mov byte [ebp - 0x28], 0xff
mov byte [ebp + 3], 0xff
mov byte [ebp - 0x27], 0
mov dword [ebp - 0x88], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x5c], 0
mov byte [ebp + 2], 0
mov dword [ebp - 0x60], 0xfffff000
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x64], esi
je 0x46474d
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463de5
or byte [ebp + 0x1e], 1
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463e05
or byte [ebp + 0x1e], 2
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463e28
or byte [ebp - 0x11e], 1
jmp 0x4646c9
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463e4b
or byte [ebp - 0x11e], 2
jmp 0x4646c9
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x4646fb
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463ea1
or dword [ebp - 0x18], 1
jmp 0x4646c9
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463ec3
or dword [ebp - 0x18], 2
jmp 0x4646c9
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c9708
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463ee3
or dword [ebp - 0x18], 0x10
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._drv
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f02
or dword [ebp - 0x18], 8
jmp 0x4646c9
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f21
or dword [ebp - 0x18], edi
jmp 0x4646c9
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c96f4
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f41
mov byte [ebp + 0x26], 1
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f60
mov byte [ebp + 0x5f], 1
jmp 0x4646c9
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f80
mov byte [ebp + 0x5f], 0x21
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463f9f
mov byte [ebp + 0x65], 1
jmp 0x4646c9
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463fbf
mov byte [ebp + 0x65], 0x21
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463fde
mov byte [ebp + 0x64], 1
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._gptmini
call fcn.00446a34
add esp, 0xc
test al, al
je 0x463ffd
mov byte [ebp + 0x64], 2
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpth
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46401c
mov byte [ebp + 0x64], 4
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46403b
mov byte [ebp - 0x7d], 1
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46405a
mov byte [ebp - 0x49], 1
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4c4afc
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46407a
mov byte [ebp - 0x75], 1
jmp 0x4646c9
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c96ac
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46409d
mov byte [ebp - 0xa2], 1
jmp 0x4646c9
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4c8e04
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4640c3
add dword [ebp - 0x88], 0x100
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4c96a4
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4640e2
mov byte [ebp - 0x2a], 1
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464102
or byte [ebp - 0x26], 0x40
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464122
mov byte [ebp + 0x4b], 3
jmp 0x4646c9
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464141
inc edi
mov byte [ebp + 0x4b], 3
inc edi
jmp 0x464159
push 6
push edi
push str._lock:
call fcn.0043f884
add esp, 0xc
test al, al
je 0x4641c1
mov byte [ebp + 0x4b], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x464192
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x464192
push ecx
call fcn.004aadc6
add esp, 4
test al, al
jne 0x464192
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], edi
call fcn.00405a01
jmp 0x4642f4
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004059e1
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004059e1
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
pop ecx
jmp 0x4646c9
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4641e1
mov byte [ebp + 0x4b], 1
jmp 0x4646c9
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x464119
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464222
mov byte [ebp + 0x4b], 0xf0
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
jmp 0x4646c9
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4c9664
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464284
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x464255
cmp ax, 0x3d
je 0x464255
call fcn.00402d55
test al, al
je 0x464284
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0xb4], ebx
je 0x464270
mov dword [ebp - 8], 0x4c965c
jmp 0x4641b2
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x4642ea
push 4
push edi
push str._pbr
call fcn.0043f884
add esp, 0xc
test al, al
je 0x46430d
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4642b4
cmp ax, 0x3d
je 0x4642b4
call fcn.00402d55
test al, al
je 0x46430d
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 8], ebx
push eax
je 0x4642d9
mov dword [ebp - 0xb4], 0x4c080a
call fcn.00405a01
pop ecx
jmp 0x4641b2
add dword [ebp + 0x78], 2
call fcn.0043e425
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00405a01
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x4641b2
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x4641b2
push 9
push edi
push str._alignend
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464394
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x46433d
cmp ax, 0x3d
je 0x46433d
call fcn.00402d55
test al, al
je 0x464394
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x464385
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.004aadc6
add esp, 4
test al, al
je 0x4646ad
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x30]
push eax
mov dword [ebp + 0x30], ecx
call fcn.0044a0e0
cmp dword [ebp - 0x70], ebx
pop ecx
pop ecx
jg 0x4646ad
jl 0x464385
cmp dword [ebp - 0x74], ebx
ja 0x4646ad
mov dword [ebp - 0x74], 0xfffffffe
mov dword [ebp - 0x70], esi
jmp 0x4646ad
push 6
push edi
push str._align
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464442
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x4643c8
cmp ax, 0x3d
je 0x4643c8
call fcn.00402d55
test al, al
je 0x464442
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.00405a01
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x4643f8
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x9c], esi
jmp 0x4646c9
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.004aadc6
add esp, 4
test al, al
je 0x4646c9
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x30]
push eax
mov dword [ebp + 0x30], ecx
call fcn.0044a0e0
cmp dword [ebp - 0x9c], ebx
pop ecx
pop ecx
jg 0x4646c9
jl 0x4643e7
cmp dword [ebp - 0xa0], ebx
ja 0x4646c9
jmp 0x4643e7
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464467
mov byte [ebp - 0x95], 1
jmp 0x4646c9
push edi
lea eax, [ebp + 0x78]
push eax
push str._clean
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464486
mov byte [ebp + 3], 1
jmp 0x4646c9
push 7
lea eax, [ebp + 0x78]
push eax
push str._clean_
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4644a6
mov byte [ebp + 3], 0
jmp 0x4646c9
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c3370
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x4646c5
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x4646c5
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464500
or dword [ebp - 0x18], 0x20
mov byte [ebp - 0x47], 1
jmp 0x4646c9
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464539
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004515da
test eax, eax
pop ecx
pop ecx
jl 0x465f26
mov byte [ebp + 2], 1
jmp 0x4646c9
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0043f884
add esp, 0xc
test al, al
je 0x4645d8
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x1c], edi
call fcn.00409168
xor eax, eax
mov ax, word [edi]
push eax
call fcn.004aadc6
add esp, 0xc
test al, al
je 0x464593
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044a0e0
pop ecx
pop ecx
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x3a
jne 0x4645b2
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044a0e0
pop ecx
pop ecx
mov eax, dword [ebp - 0x1c]
cmp word [eax], 0x3a
jne 0x4646c9
add dword [ebp - 0x1c], 2
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0044a0e0
jmp 0x4646bf
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0043f884
add esp, 0xc
test al, al
jne 0x4646d5
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464636
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x30], 0x42
call fcn.004515da
mov al, byte [ebp - 0x30]
add esp, 0xc
mov byte [ebp - 0x5c], al
jmp 0x4646c9
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.0043f884
add esp, 0xc
test al, al
je 0x46465f
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004515da
jmp 0x4646bf
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464681
mov dword [ebp - 0x84], 8
jmp 0x4646c9
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4646a4
mov dword [ebp - 0x84], 0x10
jmp 0x4646c9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x4646d5
lea eax, [ebp + 0x78]
push eax
call fcn.00405a01
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
pop ecx
jmp 0x4641bb
mov byte [ebp + 0xb], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x463dc5
cmp dword [ebp - 0x74], 0xfffffffe
jne 0x46473c
cmp dword [ebp - 0x70], esi
jne 0x46473c
mov eax, dword [ebp - 0xa0]
cmp eax, 0xfffffff7
jne 0x464730
cmp dword [ebp - 0x9c], esi
jne 0x464730
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
jmp 0x46474d
push str.21:INDATA
lea ecx, [ebp - 0x5c]
call fcn.0044df7a
push dword [ebp + 0x78]
lea ecx, [ebp - 0x5c]
call fcn.00444a7c
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xb8]
call fcn.00422182
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.0043e48d
jmp 0x4686a6
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0xa0], 0xfffffff7
jne 0x46475d
cmp dword [ebp - 0x9c], esi
jne 0x46475d
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0x9c], ebx
cmp dword [ebp - 0x74], 0xfffffff7
jne 0x46477a
cmp dword [ebp - 0x70], esi
jne 0x46477a
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4c95d0
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464898
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4647b6
mov byte [ebp + 0x66], 1
jmp 0x464898
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4647d5
mov byte [ebp + 0x66], 2
jmp 0x464898
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c95c4
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4647f5
mov byte [ebp + 0x66], 3
jmp 0x464898
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46481c
mov byte [ebp + 0x66], 4
mov dword [ebp - 0x84], 8
jmp 0x464898
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464843
mov byte [ebp + 0x66], 5
mov dword [ebp - 0x84], 0x10
jmp 0x464898
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464860
mov byte [ebp + 0x66], 6
jmp 0x464898
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46487d
mov byte [ebp + 0x66], 7
jmp 0x464898
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c95a0
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464898
mov byte [ebp + 0x66], 8
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x27], 0
call fcn.00446a34
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x4648bc
mov byte [ebp + 0x5e], 1
mov dword [ebp + 0x60], edi
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c959c
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4648d7
mov byte [ebp + 0x5e], 0x10
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4648f4
mov byte [ebp + 0x27], 1
jmp 0x464949
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.00446a34
add esp, 0xc
test al, al
je 0x464911
mov byte [ebp + 0x27], 0x20
jmp 0x464949
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46492e
mov byte [ebp + 0x27], 0x10
jmp 0x464949
push 8
lea eax, [ebp + 0x78]
push eax
push str.hupdatef
call fcn.00446a34
add esp, 0xc
test al, al
je 0x46494c
mov byte [ebp + 0x27], 0x18
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00405a01
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xcc]
call fcn.00444b34
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x464996
mov dword [ebp - 0xa8], 0x80
jmp 0x4649b0
cmp ax, 0x2d
jne 0x4649ba
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x4649ba
mov dword [ebp - 0xa8], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.00405a01
pop ecx
xor eax, eax
mov dword [ebp - 0x214], ebx
lea edi, [ebp - 0x210]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4db8b8
push edi
mov dword [ebp - 0x1c0], 0xebd0a0a2
mov word [ebp - 0x1bc], 0xb9e5
mov word [ebp - 0x1ba], 0x4433
mov byte [ebp - 0x1b8], 0x87
mov byte [ebp - 0x1b7], 0xc0
mov byte [ebp - 0x1b6], 0x68
mov byte [ebp - 0x1b5], 0xb6
mov byte [ebp - 0x1b4], 0xb7
mov byte [ebp - 0x1b3], 0x26
mov byte [ebp - 0x1b2], 0x99
mov byte [ebp - 0x1b1], 0xc7
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x30], str.MS_Basic_Data
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x180], ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp byte [ebp + 0x64], 0
jne 0x464aa0
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004515da
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x464acf
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.004aadc6
add esp, 4
test al, al
jne 0x464acf
mov ecx, edx
mov byte [ebp - 0x7e], 1
mov dword [ebp + 0x78], ecx
jmp 0x464acf
push ebx
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0045369d
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x174], eax
jne 0x464acc
push edi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
jmp 0x4686a6
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x464adf
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x46], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x464af0
lea eax, [ebp + 0x78]
push eax
call fcn.00409168
jmp 0x464b04
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044a190
pop ecx
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x1e], 1
jne 0x464b1b
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x1e], 0
cmp word [eax], 0x2d
jne 0x464b2c
lea eax, [ebp + 0x78]
push eax
call fcn.00409168
jmp 0x464b40
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044a190
pop ecx
mov dword [ebp - 0x180], eax
cmp byte [ebp + 0x64], 0
pop ecx
je 0x464b77
push ebx
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0045369d
mov dword [ebp - 0x178], eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044a0e0
add esp, 0x14
mov dword [ebp - 0x188], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1c4], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x464bce
cmp byte [ebp + 0x64], 0
je 0x464bce
cmp cx, bx
je 0x464bce
mov dword [ebp - 0x1c8], eax
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.0041a299
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
add esp, 0xc
mov dword [ebp - 0x184], 1
mov dword [ebp - 0x30], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x66], 1
mov byte [ebp - 0x25], 0
mov byte [ebp - 0x1d], 0
mov byte [ebp - 0x48], 0
je 0x464be9
cmp byte [ebp + 0x66], 4
jge 0x464be9
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0xcc]
push 5
push ebx
mov edi, ebx
push 0x4c9554
mov dword [ebp + 0x78], edi
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464cca
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edi, ecx
jne 0x464c6a
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp + 0x34]
add ecx, 2
push eax
mov dword [ebp + 0x34], ecx
call fcn.0044a190
mov edi, dword [ebp + 0x34]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x48], 1
jne 0x464c65
lea eax, [ebp - 0xe4]
push eax
inc edi
lea eax, [ebp + 0x34]
inc edi
push eax
mov dword [ebp + 0x34], edi
call fcn.0044a190
mov edi, dword [ebp + 0x34]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x48], 0x11
jne 0x464c65
inc edi
inc edi
mov ecx, edi
mov dword [ebp + 0x78], ecx
xor edx, edx
mov dx, word [ecx]
cmp dx, 0x5c
je 0x464c9a
cmp dx, 0x2f
je 0x464c9a
mov byte [ebp - 0x28], 1
jmp 0x464c9a
mov eax, edx
call fcn.00402d55
test al, al
jne 0x464c9f
cmp dx, 0x23
je 0x464c9f
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x464c81
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x464cbb
push ecx
push edi
lea ecx, [ebp - 0xc0]
call fcn.00444b34
mov dword [ebp - 0x14], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x464d0a
push 2
push ebx
push 0x4c9550
call fcn.0043f884
add esp, 0xc
test al, al
je 0x464ce4
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.004148c8
test al, al
je 0x464d02
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00440edc
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0x25]
push 0
push 0x200
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.004ad070
mov dword [ebp - 0x3c], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x38], edx
je 0x464d3b
cmp ax, 0x3a
jne 0x464dda
inc edi
inc edi
push 2
push edi
push 0x4c954c
mov dword [ebp + 0x78], edi
call fcn.0043f884
push 2
push edi
push 0x4c9548
mov byte [ebp + 0x67], al
call fcn.0043f884
mov byte [ebp + 0x1c], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x1c]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x1d], al
jne 0x464d87
cmp word [edi], 0x2b
jne 0x464d87
inc edi
inc edi
mov byte [ebp - 0x27], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x1c], 0
jne 0x464dab
mov ax, word [edi]
cmp ax, 0x40
je 0x464da2
cmp ax, 0x2d
je 0x464da2
cmp ax, 0x3d
jne 0x464dab
or dword [ebp - 0x18], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.004148c8
test al, al
je 0x464dda
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004515da
test eax, eax
pop ecx
pop ecx
jle 0x464dda
cmp dword [ebp + 0x60], 0
mov byte [ebp - 0x29], 1
jne 0x464dde
mov byte [ebp + 0x67], 1
jmp 0x464de0
cmp dword [ebp + 0x60], 0
jg 0x464dfc
cmp byte [ebp + 0x66], 0
jg 0x464dfc
cmp dword [ebp - 8], 0
jne 0x464dfc
cmp dword [ebp - 0xb4], 0
jne 0x464dfc
xor ecx, ecx
mov dword [ebp + 0x40], ecx
jmp 0x464e05
mov dword [ebp + 0x40], 1
xor ecx, ecx
cmp byte [ebp + 0x4b], 0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
je 0x464e26
cmp dword [ebp + 0x40], ecx
jne 0x464e26
cmp word [ebx], cx
jne 0x464e26
mov eax, 0xfffc0000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc0]
lea edi, [ebp - 0x2cc]
mov word [ebp - 0x2cc], cx
cmp word [eax], cx
mov dword [ebp - 0xf8], edi
je 0x464e4c
mov edi, eax
mov dword [ebp - 0xf8], edi
push dword [ebp - 0x14]
lea eax, [ebp - 0x2cc]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp - 0x2a], 0
jg 0x464e9f
mov eax, dword [ebp - 0xb0]
or eax, dword [ebp - 0xac]
jne 0x464e9f
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.shlwapi.dll_StrCmpNIW]
test eax, eax
jne 0x464e9f
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x30]
add edi, 0x22
push eax
mov dword [ebp + 0x30], edi
call fcn.00447df7
pop ecx
pop ecx
cmp byte [ebp + 0x27], 0
jne 0x464eb1
cmp byte [ebp + 0x5f], 0
jne 0x464eb1
cmp byte [ebp + 0x65], 0
je 0x464ec7
cmp dword [ebp - 0x14], 0
jge 0x464ec7
cmp dword [ebp - 0x24], 0
jge 0x464ec7
push 0x4db8b8
jmp 0x465f20
and dword [ebp + 0x6c], 0
and dword [ebp - 0x10], 0
cmp byte [ebp + 0x4b], 0
mov edi, 0x80070057
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x104], edi
mov byte [ebp + 0x68], 0
je 0x464fa0
mov ebx, dword [ebp - 0x24]
test ebx, ebx
jge 0x464f08
cmp dword [ebp - 0x68], esi
jl 0x464f08
jg 0x464efe
cmp dword [ebp - 0x6c], esi
jbe 0x464f08
cmp dword [ebp + 4], 0
je 0x464fa0
mov eax, dword [ebp + 4]
test eax, eax
je 0x464f3e
cmp word [eax], 0x2a
jne 0x464f3e
xor eax, eax
mov al, byte [ebp + 0x4b]
and eax, 2
shr eax, 1
push eax
push ebx
call fcn.00453873
pop ecx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x10], eax
xor eax, eax
or byte [0x4db450], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
test ebx, ebx
jge 0x464f52
cmp dword [ebp - 0x68], esi
jl 0x464f52
jg 0x464f4e
cmp dword [ebp - 0x6c], esi
jbe 0x464f52
test eax, eax
je 0x464fa0
push eax
xor eax, eax
mov al, byte [ebp + 0x4b]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push ebx
call fcn.0040557e
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x6c]
and eax, dword [ebp - 0x68]
add esp, 0x1c
cmp eax, esi
je 0x464f99
or byte [ebp + 0x68], 0x10
or byte [0x4db450], 0x10
jmp 0x464fa0
mov byte [0x4db450], 0
cmp byte [ebp + 2], 0
jbe 0x4651f9
cmp byte [ebp + 0x64], 0
jne 0x4651f9
xor esi, esi
cmp dword [ebp - 0x14], esi
jge 0x464fca
mov eax, dword [ebp - 0xc0]
cmp word [eax], si
je 0x4651d7
mov eax, dword [ebp - 0x60]
cmp eax, esi
jle 0x464fda
cmp eax, dword [ebp + 0x60]
je 0x4651d7
cmp dword [ebp + 0x60], 4
jg 0x4651d7
cmp byte [ebp + 0x1e], 2
jl 0x4651d7
push esi
push 0x20000000
push 3
push esi
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.00405a2a
cmp dword [ebp + 0x6c], esi
je 0x465123
push 0x800
push 1
push esi
push dword [ebp + 0x6c]
call fcn.0044983a
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x44], eax
call fcn.00441d1c
add esp, 0x18
cmp eax, esi
mov ebx, eax
jge 0x465041
mov ebx, esi
lea eax, [ebx + ebx*2]
push eax
lea ecx, [ebp + 0x34]
mov dword [ebp + 4], ebx
call fcn.004448b9
mov eax, dword [ebp + 0x34]
lea edi, [eax + ebx]
lea eax, [ebx - 1]
not eax
push 0
and edi, eax
lea eax, [ebp - 0x50]
push eax
push ebx
lea esi, [edi + ebx]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x4650a4
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x465082
inc esi
lea ecx, [ebp + 0x34]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
push 0x4db8b8
jmp 0x4686a0
push 0x200
push esi
push edi
call fcn.004143a0
dec dword [ebp - 0x60]
dec dword [ebp + 0x60]
mov ebx, dword [ebp - 0x60]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + edi + 0x1be]
mov dword [ebp + 0x30], eax
push ecx
lea eax, [eax + esi + 0x1be]
push eax
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
call fcn.004143a0
mov eax, dword [ebp + 0x30]
lea eax, [eax + edi + 0x1be]
push 0x10
push eax
lea eax, [ebx + esi + 0x1be]
push eax
call fcn.004143a0
push 0
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x34
test eax, eax
je 0x465146
lea ecx, [ebp + 0x34]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
push 0x4db8b8
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x4686a6
push dword [ebp + 4]
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], ebx
call fcn.00444ce2
add esp, 0xc
test eax, eax
jne 0x46518b
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 4]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x465182
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x46517f
xor eax, eax
inc eax
mov dword [ebp - 0x10], eax
push dword [ebp + 0x6c]
call fcn.004423f5
pop ecx
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x26]
lea ecx, [ebp + 0x34]
or byte [ebp + 0x5f], al
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
or al, byte [ebp + 0x26]
je 0x4651af
mov dword [ebp + 0x40], ebx
call fcn.0043e48d
jmp 0x467725
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
push 0x4db8b8
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x10]
jmp 0x4686a6
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
push 0x4db8b8
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, edi
jmp 0x4686a6
cmp byte [ebp + 0x27], 0x10
jne 0x46520c
test byte [ebp + 0x65], 0x20
jne 0x467725
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x4b], 0
mov ecx, dword [ebp + 0x60]
mov edi, dword [ebp - 0xcc]
je 0x46526b
cmp dword [ebp + 0x40], ebx
jne 0x46526b
cmp byte [ebp + 0x26], 0
jne 0x467725
cmp byte [ebp + 0x5f], 0
jne 0x467725
cmp byte [ebp + 0x65], 0
jne 0x467725
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
test eax, eax
je 0x465260
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x104]
jmp 0x4686a6
mov eax, dword [ebp - 8]
cmp eax, ebx
jne 0x467897
cmp dword [ebp - 0xb4], ebx
jne 0x467bd7
mov dl, byte [ebp + 0x66]
cmp dl, 6
mov dword [ebp - 0x10], 0x80070057
je 0x467ff9
cmp dl, 1
je 0x4680fe
cmp dl, 2
jne 0x4652ad
cmp byte [ebp - 0x2a], 0
je 0x468141
cmp dl, 8
jne 0x4652bc
cmp byte [ebp - 0x2a], 0
je 0x468184
xor eax, eax
cmp dl, 3
mov dword [ebp + 0x58], eax
je 0x468219
cmp dl, 4
je 0x468911
cmp dl, 5
je 0x468911
cmp dl, 7
je 0x4682f2
cmp byte [ebp + 0x1c], al
je 0x465302
push 5
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ebx
pop ecx
cmp byte [ebp + 0x67], 0
mov dword [ebp - 0x10], ebx
je 0x46530e
push 5
pop ecx
cmp byte [ebp + 0xb], 0
je 0x465329
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ebx
cmp byte [ebp - 0x25], 0
je 0x465338
cmp dword [ebp - 0x24], ebx
jl 0x465efe
cmp byte [ebp - 0x1d], 0
je 0x465346
cmp ecx, ebx
jl 0x465efe
dec ecx
cmp byte [ebp + 0x64], 0
mov dword [ebp + 0x60], ecx
mov dword [ebp - 0xec], esi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], esi
mov byte [ebp + 0x1d], 0
mov byte [ebp - 0xa1], 0
mov dword [ebp + 0x30], ebx
mov byte [ebp + 2], 0
mov byte [ebp - 0x45], 0
mov dword [ebp - 0x7c], ebx
jne 0x46539a
cmp dword [ebp - 0x58], ebx
jne 0x46539a
mov eax, dword [ebp + 0x4c]
or eax, dword [ebp + 0x50]
jne 0x46539a
mov eax, dword [ebp + 0x28]
or eax, dword [ebp + 0x2c]
jne 0x46539a
mov byte [ebp + 0xb], 1
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 0xa2], 0
je 0x4653cc
cmp dword [ebp + 0x50], ebx
jl 0x4653cc
jg 0x4653b6
cmp dword [ebp + 0x4c], ebx
jb 0x4653cc
cmp dword [ebp + 0x2c], ebx
jl 0x4653cc
jg 0x4653c3
cmp dword [ebp + 0x28], 1
jb 0x4653cc
mov dword [ebp + 4], 1
jmp 0x4653cf
mov dword [ebp + 4], ebx
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.00405a2a
cmp dword [ebp + 0x6c], ebx
je 0x46838d
mov edi, 0x200
push edi
push dword [ebp + 0x6c]
call fcn.00441d1c
pop ecx
cmp eax, edi
pop ecx
mov edi, eax
jge 0x465411
mov edi, 0x200
cmp dword [ebp + 4], ebx
mov dword [ebp + 0x20], edi
je 0x465491
cmp dword [ebp + 0x50], ebx
jl 0x465457
jg 0x465425
cmp dword [ebp + 0x4c], ebx
jb 0x465457
push ebx
push 0x200
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004ad070
test byte [ebp + 0x68], 0x11
jne 0x465457
push ebx
push ebx
push ebx
lea ecx, [edi + edi*4]
shl ecx, 3
push ecx
push edx
push eax
push dword [ebp - 0x24]
call fcn.0040557e
add esp, 0x1c
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x67], 0
jne 0x465491
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xac]
adc ecx, dword [ebp + 0x50]
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043d587
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0044243b
mov dword [ebp - 0x104], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.0044983a
add esp, 0x10
cmp byte [ebp + 0x27], 0
mov dword [ebp - 0x44], eax
je 0x4654b5
mov dword [ebp + 0x40], ebx
jmp 0x46771d
cmp dword [ebp - 0x58], 0xff
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x148], ebx
jg 0x4683b9
cmp byte [ebp + 0x67], 0
jne 0x465519
cmp dword [ebp + 0x60], ebx
jge 0x465519
cmp dword [ebp + 0x50], ebx
jg 0x4683b9
jl 0x4654ed
cmp dword [ebp + 0x4c], ebx
jae 0x4683b9
cmp dword [ebp + 0x2c], ebx
jg 0x4683b9
jl 0x465501
cmp dword [ebp + 0x28], ebx
jae 0x4683b9
cmp dword [ebp - 0x58], ebx
jge 0x4683b9
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0x1a0], esi
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp + 0x34], eax
jne 0x46555e
cmp byte [ebp + 0x1c], 0
jne 0x46555e
cmp eax, 4
jl 0x465b92
cmp byte [ebp + 0x64], 0
jne 0x465b92
cmp byte [ebp + 0x5e], 0
jne 0x465b92
cmp byte [ebp + 0x67], 0
je 0x46557f
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x58], 5
je 0x465efe
cmp dword [ebp - 0x58], 0xf
je 0x465efe
push 0x100000
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x40], ebx
call fcn.004448b9
lea eax, [ebp + 0x40]
push eax
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.004420fa
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x4655e7
cmp edx, ecx
jge 0x4655cc
cmp ecx, 4
jge 0x46562d
cmp byte [ebp + 0x67], 0
jne 0x4655e7
cmp byte [ebp + 0x1c], 0
jne 0x4655e7
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3f], 0
jg 0x465619
dec eax
jmp 0x465620
cmp byte [ebp + 0x1c], 0
mov byte [ebp + 0x3f], 1
jne 0x465635
cmp byte [ebp + 0x67], 0
je 0x46563a
cmp dword [ebp - 0x58], ebx
jl 0x46562d
cmp word [ebp - 0xa8], bx
jle 0x465611
mov dword [ebp - 0xa8], 0x80
jmp 0x46563a
mov dword [ebp - 0xa8], ebx
jmp 0x46563a
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x46562d
cmp eax, edx
jl 0x46563a
cmp ecx, 4
jle 0x46563a
lea ecx, [ebp - 0x40]
jmp 0x465ef9
cmp edx, 4
jle 0x46562d
cmp edx, 4
jle 0x46564a
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x10], eax
jmp 0x46564d
mov dword [ebp + 0x10], ebx
cmp byte [ebp + 0x3f], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x34], esi
jne 0x46566d
cmp ecx, 4
jl 0x46566a
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0x10], eax
jmp 0x46566d
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x44], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x465681
cmp cl, 0xf
jne 0x465684
mov dword [ebp + 0x44], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x465675
cmp byte [ebp + 0x3f], 0
je 0x46569a
cmp dword [ebp + 0x44], ebx
jl 0x46562d
mov eax, dword [ebp + 0x44]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea esi, [eax + edi + 0x30]
mov ebx, 0x200
push ebx
push dword [esi + 0xc]
mov dword [ebp - 0x8c], esi
push dword [esi + 8]
call fcn.004acfc0
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0xdc], eax
push dword [esi + 0x10]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], edx
call fcn.004acfc0
mov ebx, eax
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x1c], 0
mov dword [ebp - 0x1e8], edx
lea esi, [eax + edi + 0x30]
je 0x4657ed
mov eax, dword [ebp + 0x40]
xor esi, esi
cmp eax, 8
jne 0x46571d
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xd8]
jmp 0x465794
add eax, 0xfffffff8
and eax, 0xfffffffc
lea eax, [eax + eax*8]
shl eax, 4
lea edi, [eax + edi + 0x30]
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x465773
cmp cl, 0xf
je 0x465773
inc esi
add eax, 0x90
cmp esi, 4
jl 0x465730
lea ecx, [ebp - 0x40]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
test eax, eax
jmp 0x465f1d
push 0
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.004acfc0
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
test esi, esi
jl 0x465747
and dword [ebp - 0x244], 0
xor eax, eax
add ecx, dword [ebp - 0xb0]
lea edi, [ebp - 0x240]
adc edx, dword [ebp - 0xac]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x244]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.00453573
and dword [ebp - 0x10], 0
add esp, 0x14
cmp byte [ebp + 0x65], 0
jne 0x4657e1
cmp byte [ebp + 0x5f], 0
jne 0x4657e1
cmp byte [ebp + 0x26], 0
je 0x4683dd
and dword [ebp + 0x40], 0
lea ecx, [ebp - 0x40]
jmp 0x467718
cmp dword [ebp + 0x40], 4
jg 0x4657fb
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x38], eax
jmp 0x465826
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x46580c
cmp cl, 0xf
jne 0x46580f
mov dword [ebp + 0x38], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x465800
cmp byte [ebp + 0x3f], 0
jne 0x465826
mov eax, dword [ebp + 0x10]
add dword [ebp + 0x38], eax
cmp dword [ebp + 0x38], 0
jge 0x465836
cmp byte [ebp + 0x67], 0
je 0x465747
cmp byte [ebp + 0x3f], 0
je 0x465842
and dword [ebp + 0x34], 0
jmp 0x46586c
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x465854
test edx, edx
jne 0x465861
cmp cl, 5
je 0x465861
cmp cl, 0xf
je 0x465861
mov dword [ebp + 0x34], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x46584a
cmp byte [ebp + 0x3f], 0
jne 0x46587c
cmp dword [ebp + 0x34], 0
jl 0x465747
cmp byte [ebp + 0x67], 0
je 0x465ac5
mov eax, dword [ebp + 0x10]
test eax, eax
jg 0x465890
mov eax, dword [ebp + 0x44]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + edi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp + 0x18], eax
mov eax, dword [eax + 0xc]
push 0x200
push eax
push ecx
mov dword [ebp - 0x230], eax
call fcn.004acfc0
cmp dword [ebp + 0x40], 4
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jle 0x4659be
cmp dword [ebp + 0x38], 0
jge 0x4659be
cmp byte [esi + 0x20], 0
je 0x465972
mov eax, dword [ebp + 0x40]
cmp eax, 8
jle 0x4658f2
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x4658f5
mov eax, dword [ebp + 0x44]
push 0
lea eax, [eax + eax*8]
push 0x200
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.004acfc0
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x144], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push 0x200
push ecx
push eax
mov dword [ebp - 0x140], edx
call fcn.004acfc0
mov ecx, eax
sub ecx, dword [ebp - 0x164]
mov dword [ebp - 0x1a0], ecx
mov ecx, edx
sbb ecx, dword [ebp - 0x160]
sub ebx, eax
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x1e8]
sbb ecx, edx
add ebx, dword [ebp - 0x164]
adc ecx, dword [ebp - 0x160]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ecx
jmp 0x465a02
cmp dword [ebp + 0x10], 4
jne 0x4683e5
mov eax, dword [ebp + 0x44]
test eax, eax
jl 0x4683e5
mov ecx, dword [ebp - 0x8c]
cmp byte [ecx + 0x20], 0
je 0x4683e5
mov edx, dword [ebp - 0xd8]
or dword [ebp + 0x10], 0xffffffff
mov ecx, dword [ebp - 0x1e8]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jmp 0x4659fa
cmp dword [ebp + 0x10], 0
jle 0x4659e4
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp - 0x230]
push 0
push 0x200
push eax
push ecx
call fcn.004acfc0
mov ecx, dword [ebp - 0x1e8]
sub ebx, eax
sbb ecx, edx
add ebx, dword [ebp - 0x164]
adc ecx, dword [ebp - 0x160]
and dword [ebp - 0x6c], 0
and dword [ebp - 0x68], 0
test ecx, ecx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
jl 0x465747
jg 0x465a20
test ebx, ebx
jbe 0x465747
cmp byte [ebp - 0x46], 0
je 0x465a2c
add dword [ebp + 0x4c], eax
adc dword [ebp + 0x50], edx
mov edi, eax
add edi, 1
mov esi, edx
adc esi, 0
cmp dword [ebp + 0x50], esi
jg 0x465a48
jl 0x465a42
cmp dword [ebp + 0x4c], edi
ja 0x465a48
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], esi
sub ebx, dword [ebp + 0x4c]
sbb ecx, dword [ebp + 0x50]
add ebx, eax
adc ecx, edx
cmp dword [ebp + 0x2c], ecx
jl 0x465a64
jg 0x465a5e
cmp dword [ebp + 0x28], ebx
jbe 0x465a64
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ecx
xor eax, eax
cmp dword [ebp + 0x2c], eax
jl 0x465747
jg 0x465a7a
cmp dword [ebp + 0x28], eax
jb 0x465747
cmp dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x40]
jle 0x465a98
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x465a8e
inc eax
jmp 0x465aa0
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x465aa0
and eax, 0xfffffffc
cmp eax, 3
jg 0x465aa3
inc eax
jmp 0x465aab
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0xd0]
jmp 0x465b7f
mov eax, dword [ebp + 0x38]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
push 0
mov edi, 0x200
push edi
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.004acfc0
push 0
push edi
push dword [esi + 0x14]
mov ebx, eax
push dword [esi + 0x10]
mov eax, edx
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xd0], eax
call fcn.004acfc0
cmp byte [ebp - 0x46], 0
je 0x465b1b
add dword [ebp + 0x4c], ebx
mov ecx, dword [ebp - 0x1d8]
adc dword [ebp + 0x50], ecx
xor esi, esi
cmp dword [ebp + 0x50], esi
jl 0x465b41
jg 0x465b29
cmp dword [ebp + 0x4c], esi
jbe 0x465b41
mov ecx, dword [ebp - 0x1d8]
cmp dword [ebp + 0x50], ecx
jg 0x465b41
jl 0x465b3b
cmp dword [ebp + 0x4c], ebx
ja 0x465b41
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x50], ecx
cmp dword [ebp + 0x2c], esi
jl 0x465b73
jg 0x465b4d
cmp dword [ebp + 0x28], esi
jbe 0x465b73
cmp dword [ebp + 0x2c], edx
jl 0x465b5f
jg 0x465b59
cmp dword [ebp + 0x28], eax
jbe 0x465b5f
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], esi
jl 0x4683ed
jg 0x465b73
cmp dword [ebp + 0x28], esi
jb 0x4683ed
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x14c], ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x148], eax
call fcn.0043e48d
mov edi, dword [ebp + 0x20]
xor ebx, ebx
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
setge byte [ebp - 0x51]
add eax, dword [ebp - 0xb0]
push ebx
adc ecx, dword [ebp - 0xac]
push 0x200
push ecx
push eax
call fcn.004ad070
cmp dword [ebp + 4], ebx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
je 0x465c0a
cmp byte [ebp + 0x67], 0
je 0x465c0a
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xac]
adc ecx, dword [ebp + 0x50]
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.0043d587
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0044243b
mov dword [ebp - 0x104], ebx
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x468643
cmp edx, dword [ebp - 0x124]
jne 0x468643
lea eax, [edi + edi*2]
push eax
lea ecx, [ebp - 4]
call fcn.004448b9
mov eax, dword [ebp - 4]
lea esi, [eax + edi]
lea eax, [edi - 1]
not eax
and esi, eax
push edi
mov dword [ebp + 0x38], esi
add esi, edi
push ebx
push esi
mov dword [ebp + 0x18], esi
call fcn.004acf60
add esp, 0xc
push ebx
lea eax, [ebp - 0x50]
push eax
push edi
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x46863b
push edi
push esi
push dword [ebp + 0x38]
call fcn.004143a0
add esp, 0xc
cmp byte [ebp + 0x5e], 0
je 0x465d6f
cmp byte [ebp + 0x64], 0
jne 0x465d6f
push esi
call fcn.0044240d
cmp byte [ebp + 3], 0
pop ecx
jg 0x465cc5
jge 0x465cc1
cmp dword [ebp - 0x38], ebx
lea eax, [edi + edi + 0x4000]
jg 0x465cc5
jl 0x465cc1
cmp dword [ebp - 0x3c], eax
ja 0x465cc5
xor al, al
jmp 0x465cc7
mov al, 1
cmp byte [ebp + 0x5e], 1
jne 0x465d02
test al, al
je 0x465cf0
cmp edi, 0x200
jbe 0x465cf0
lea eax, [edi - 0x200]
push eax
lea eax, [esi + 0x200]
push ebx
push eax
call fcn.004acf60
add esp, 0xc
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.004acf60
add esp, 0xc
push edi
push esi
push dword [ebp + 0x38]
mov word [esi + 0x1fe], 0xaa55
call fcn.0043e4f6
add esp, 0xc
test eax, eax
je 0x465d4f
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
push ebx
lea eax, [ebp - 0x50]
push eax
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x50], ebx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x10], eax
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
or al, byte [ebp + 0x26]
je 0x468419
cmp dword [ebp - 0x14], ebx
jl 0x468419
mov dword [ebp + 0x40], ebx
jmp 0x467715
cmp byte [ebp + 0x66], 2
je 0x465d8b
cmp byte [ebp + 0x1e], 0
jne 0x465d8b
cmp byte [ebp - 0x29], 0
je 0x465d9a
cmp dword [ebp + 0x60], 1
jle 0x465ef6
cmp byte [ebp - 0x29], 0
je 0x465d9a
cmp dword [ebp + 0x60], ebx
jl 0x465ef6
push 0x100000
lea ecx, [ebp + 0x14]
call fcn.004448b9
cmp dword [ebp - 0x24], ebx
mov dword [ebp + 4], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], ebx
jl 0x465ddb
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0x14]
call fcn.00441ea6
pop ecx
push ebx
push edi
push edx
push eax
call fcn.004acfc0
mov esi, dword [ebp - 0xe0]
jmp 0x465e45
mov esi, dword [ebp - 0xe0]
cmp esi, ebx
jl 0x465e01
jg 0x465def
cmp dword [ebp - 0xe4], ebx
jb 0x465e01
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], esi
lea eax, [ebp - 0x268]
push eax
push ebx
push dword [ebp - 0xf8]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesExW]
test eax, eax
je 0x465e8b
test byte [ebp - 0x268], 0x10
jne 0x465e8b
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x248]
and eax, 0xfffffe00
xor edx, edx
shld edx, eax, 0x17
shl eax, 0x17
shr ecx, 9
xor edi, edi
or eax, ecx
or edx, edi
sub eax, dword [ebp - 0xb0]
sbb edx, dword [ebp - 0xac]
cmp esi, ebx
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
jl 0x465e8b
jg 0x465e6b
cmp dword [ebp - 0xe4], ebx
jbe 0x465e8b
cmp edx, esi
ja 0x465e8b
jb 0x465e79
cmp eax, dword [ebp - 0xe4]
jae 0x465e8b
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], esi
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x6c]
call fcn.004420fa
mov esi, eax
mov eax, dword [ebp - 0xc0]
mov cx, word [eax]
add esp, 0xc
cmp cx, bx
jne 0x465eb1
cmp esi, ebx
je 0x465eee
cmp esi, ebx
je 0x465eb9
mov eax, dword [esi]
jmp 0x465ebb
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x57]
cmp byte [ebp + 0x57], 0
je 0x465ed2
cmp byte [ebp - 0x7d], 0
mov byte [ebp + 0x1f], 1
je 0x465ed6
mov byte [ebp + 0x1f], 0
cmp byte [ebp - 0x75], 0
jne 0x465f36
cmp byte [ebp + 0x5e], 0
jne 0x465f36
cmp byte [ebp + 0x1f], 0
je 0x465f30
cmp byte [ebp + 0x64], 0
jne 0x465f36
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
je 0x465f26
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x4686a6
cmp byte [ebp + 0x64], 0
jne 0x465eee
cmp cx, bx
mov eax, dword [ebp - 0x114]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp + 0x10], eax
jne 0x466003
xor eax, eax
mov dword [ebp - 0x22c], ebx
lea edi, [ebp - 0x228]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0x50]
push eax
push 0x18
lea eax, [ebp - 0x22c]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [ebp - 0x110], ebx
jg 0x465fb3
jl 0x465f9d
cmp dword [ebp - 0x114], ebx
ja 0x465fb3
mov eax, dword [ebp - 0x220]
mov dword [ebp + 0x44], eax
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0x12c], ebx
jg 0x465fdb
jl 0x465fc5
cmp dword [ebp - 0x130], ebx
ja 0x465fdb
mov eax, dword [ebp - 0x21c]
mov dword [ebp + 0x40], eax
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x118], ebx
jg 0x466003
jl 0x465fed
cmp dword [ebp - 0x11c], ebx
ja 0x466003
mov eax, dword [ebp - 0x218]
mov dword [ebp + 0x10], eax
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x110], ebx
jg 0x466029
jl 0x466015
cmp dword [ebp - 0x114], ebx
ja 0x466029
mov eax, 0xff
mov dword [ebp + 0x44], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], ebx
cmp dword [ebp - 0x12c], ebx
jg 0x46604d
jl 0x46603b
cmp dword [ebp - 0x130], ebx
ja 0x46604d
push 0x3f
pop eax
mov dword [ebp + 0x40], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ebx
cmp dword [ebp - 0x118], ebx
jg 0x466080
jl 0x46605f
cmp dword [ebp - 0x11c], ebx
ja 0x466080
mov eax, dword [ebp + 0x20]
cmp eax, ebx
mov dword [ebp + 0x10], eax
ja 0x466070
mov dword [ebp + 0x10], 0x200
mov eax, dword [ebp + 0x10]
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov eax, dword [ebp + 0x10]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp + 0x20]
lea ebx, [ecx + eax]
add eax, ebx
mov dword [ebp - 0xc], eax
add eax, 0x10000
cmp byte [ebp + 0x1f], 0
mov dword [ebp - 0x170], eax
jne 0x466986
cmp byte [ebp + 0x64], 0
jne 0x466986
cmp byte [ebp + 0xb], 0
mov byte [ebp + 0x57], 0
jne 0x466551
mov esi, dword [ebp + 0x50]
xor eax, eax
cmp esi, eax
jg 0x4660f2
jl 0x4660de
cmp dword [ebp + 0x4c], eax
jae 0x4660f2
cmp dword [ebp + 0x2c], eax
jl 0x466551
jg 0x4660f2
cmp dword [ebp + 0x28], eax
jb 0x466551
mov ebx, dword [ebp + 0x60]
cmp ebx, eax
jl 0x466551
push 0x100000
lea ecx, [ebp - 0x34]
call fcn.00402d04
mov eax, dword [ebp + 0x10]
imul eax, dword [ebp + 0x40]
cdq
idiv edi
mov edi, eax
imul eax, dword [ebp + 0x44]
cmp dword [ebp + 0x10], 0
cdq
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], edx
jle 0x46844c
mov eax, dword [ebp - 0xc0]
cmp word [eax], 0
jne 0x46616f
and dword [ebp + 4], 0
lea eax, [ebp + 4]
push eax
push dword [ebp - 0x34]
push dword [ebp + 0x6c]
call fcn.004420fa
add esp, 0xc
test eax, eax
je 0x468464
cmp ebx, 4
jl 0x46616f
cmp byte [ebp + 0x67], 0
jne 0x46616f
cmp ebx, dword [ebp + 4]
jge 0x46844c
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x466224
jg 0x466186
cmp dword [ebp + 0x4c], edx
jbe 0x466224
mov ecx, dword [ebp - 0xa0]
and ecx, dword [ebp - 0x9c]
cmp ecx, 0xffffffff
jne 0x4661c5
cmp esi, dword [ebp - 0x168]
jl 0x4661c0
jg 0x4661ac
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp - 0x16c]
jb 0x4661c0
cmp byte [ebp - 0x51], 0
jne 0x4661c0
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
jmp 0x466210
mov eax, edi
cdq
jmp 0x46620e
cmp byte [ebp - 0x47], 0
jne 0x466224
mov eax, dword [ebp + 0x10]
cdq
mov ecx, eax
add ecx, dword [ebp - 0xa0]
mov edi, edx
adc edi, dword [ebp - 0x9c]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.004acfc0
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.004ad070
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], edx
push edx
push eax
push esi
push dword [ebp + 0x4c]
call fcn.00442351
add esp, 0x10
add dword [ebp + 0x4c], eax
adc esi, edx
mov dword [ebp + 0x50], esi
xor ecx, ecx
cmp dword [ebp + 0x2c], ecx
jl 0x466250
jg 0x466232
cmp dword [ebp + 0x28], ecx
jbe 0x466250
cmp byte [ebp - 0x7e], 0
jne 0x466250
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], ecx
jg 0x466250
jl 0x46624a
cmp dword [ebp + 0x28], ecx
jae 0x466250
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
cmp esi, ecx
jl 0x466262
jg 0x46625b
cmp dword [ebp + 0x4c], ecx
jbe 0x466262
mov edi, dword [ebp + 0x4c]
mov ebx, esi
jmp 0x466266
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x2c], 0
jl 0x466305
jg 0x46627c
cmp dword [ebp + 0x28], 0
jbe 0x466305
mov eax, dword [ebp - 0x74]
and eax, dword [ebp - 0x70]
cmp eax, 0xffffffff
jne 0x4662a2
push dword [ebp - 0x168]
add edi, dword [ebp + 0x28]
push dword [ebp - 0x16c]
adc ebx, dword [ebp + 0x2c]
push ebx
push edi
call fcn.004af360
jmp 0x4662ff
cmp byte [ebp - 0x47], 0
jne 0x466305
mov eax, dword [ebp + 0x10]
cdq
mov esi, eax
add eax, dword [ebp - 0x74]
mov ecx, edx
adc ecx, dword [ebp - 0x70]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x18c], edx
call fcn.004acfc0
push dword [ebp - 0x18c]
push esi
push edx
push eax
call fcn.004ad070
push 0
push 0x200
push edx
push eax
call fcn.004acfc0
add edi, dword [ebp + 0x28]
push edx
adc ebx, dword [ebp + 0x2c]
push eax
push ebx
push edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
call fcn.004af360
mov esi, dword [ebp + 0x50]
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp - 0x68], 0
mov byte [ebp + 0x57], 0
mov byte [ebp + 0x3f], 0
mov byte [ebp + 0x1f], 0
jl 0x466432
jg 0x466327
cmp dword [ebp - 0x6c], 0
jbe 0x466432
mov ecx, dword [ebp + 0x28]
sub ecx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x2c]
sbb edi, dword [ebp - 0xd0]
add ecx, dword [ebp + 0x4c]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.004acfc0
and dword [ebp - 0x1b0], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x44]
lea edi, [ebp - 0x1ac]
push dword [ebp + 0x40]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x1a0]
lea eax, [ebp + 0x1f]
push eax
lea eax, [ebp + 0x3f]
push eax
lea eax, [ebp + 0x57]
push eax
push dword [ebp - 0x19c]
mov dword [ebp - 0x6c], ebx
push edi
mov dword [ebp - 0x68], edx
call fcn.0044237b
mov al, byte [ebp + 0x3f]
add esp, 0x20
push 1
push dword [ebp + 0x44]
mov byte [ebp - 0x1af], al
mov al, byte [ebp + 0x1f]
push dword [ebp + 0x40]
mov byte [ebp - 0x1ae], al
mov al, byte [ebp + 0x57]
mov byte [ebp - 0x1ad], al
lea eax, [ebp + 0x1f]
push eax
lea eax, [ebp + 0x3f]
push eax
lea eax, [ebp + 0x57]
push eax
push 0
push 2
push dword [ebp - 0x19c]
mov byte [ebp - 0x1b0], 0
push edi
call fcn.004ad070
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0044237b
mov al, byte [ebp + 0x3f]
mov byte [ebp - 0x1ab], al
mov al, byte [ebp + 0x1f]
mov byte [ebp - 0x1aa], al
mov al, byte [ebp + 0x57]
push 1
mov byte [ebp - 0x1a9], al
lea eax, [ebp - 0x1b0]
push eax
push dword [ebp - 0x140]
mov byte [ebp - 0x1ac], 5
push dword [ebp - 0x144]
mov dword [ebp - 0x1a8], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a4], ebx
call fcn.00453573
add esp, 0x34
mov eax, dword [ebp - 0x8c]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
call fcn.004acfc0
test esi, esi
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1f0], edx
jl 0x466484
jg 0x466469
xor eax, eax
cmp dword [ebp + 0x4c], eax
jb 0x466486
push ebx
push edi
push esi
push dword [ebp + 0x4c]
call fcn.004acfc0
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], edx
xor eax, eax
jmp 0x466492
xor eax, eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
cmp dword [ebp + 0x2c], eax
jl 0x4664b3
jg 0x46649e
cmp dword [ebp + 0x28], eax
jb 0x4664b3
push ebx
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.004acfc0
mov dword [ebp - 0x108], edx
jmp 0x4664b9
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x10c], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xe8]
mov edi, dword [ebp - 0xec]
setge al
push eax
push dword [ebp + 0x44]
lea eax, [ebp + 0x1d]
push dword [ebp + 0x40]
push eax
lea eax, [ebp - 0xa1]
push eax
lea eax, [ebp + 0x30]
push eax
push ebx
push edi
call fcn.0044237b
add esp, 0x20
test esi, esi
jl 0x466518
jg 0x466500
cmp dword [ebp + 0x4c], 0
jbe 0x466518
sub edi, dword [ebp - 0x1f4]
sbb ebx, dword [ebp - 0x1f0]
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], ebx
mov al, byte [ebp - 0x51]
mov byte [ebp + 0x57], al
movsx eax, al
push eax
push dword [ebp + 0x44]
lea eax, [ebp + 2]
push dword [ebp + 0x40]
push eax
lea eax, [ebp - 0x45]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x10c]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.0044237b
add esp, 0x20
lea ecx, [ebp - 0x34]
call fcn.0043e48d
mov ebx, dword [ebp + 0x34]
mov esi, dword [ebp + 0x18]
shl ebx, 4
cmp byte [ebp + 0x66], 2
lea edi, [ebx + esi]
je 0x468489
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x38]
call fcn.004143a0
add esp, 0xc
cmp dword [ebp - 0x68], 0
jl 0x4665b3
jg 0x466584
cmp dword [ebp - 0x6c], 0
jb 0x4665b3
cmp dword [ebp + 0x34], 0
jle 0x46659c
push ebx
push 0
add esi, 0x1be
push esi
call fcn.004acf60
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.004acf60
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
jne 0x4665d5
cmp byte [ebp + 0x1e], 2
jge 0x4665d5
cmp al, 5
je 0x468454
cmp al, 0xf
je 0x468454
cmp byte [ebp + 0x67], 0
mov esi, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x46664b
test al, al
je 0x46664b
xor ebx, ebx
cmp dword [ebp - 0x58], ebx
je 0x46664d
cmp byte [ebp + 0x1e], 2
jge 0x46664d
cmp byte [ebp - 0x51], bl
jne 0x46664d
cmp dword [ebp + 0x50], ebx
jl 0x466623
jg 0x466609
cmp dword [ebp + 0x4c], ebx
jb 0x466623
xor eax, eax
cmp dword [ebp - 0xec], esi
jne 0x465eee
cmp dword [ebp - 0xe8], eax
jne 0x465eee
cmp dword [ebp + 0x2c], ebx
jl 0x46664d
jg 0x46662f
cmp dword [ebp + 0x28], ebx
jb 0x46664d
xor eax, eax
cmp dword [ebp - 0x10c], ecx
jne 0x466641
cmp dword [ebp - 0x108], eax
je 0x46664d
cmp ecx, ebx
jne 0x465eee
jmp 0x46664d
xor ebx, ebx
cmp byte [ebp + 0xb], 0
je 0x46666f
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe8], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov eax, dword [ebp - 0x58]
cmp eax, ebx
jl 0x46667c
mov byte [edi + 0x1c2], al
mov eax, dword [ebp - 0xa8]
cmp ax, bx
jl 0x46668d
mov byte [edi + 0x1be], al
cmp dword [ebp + 0x50], ebx
jg 0x4666b9
jl 0x466699
cmp dword [ebp + 0x4c], ebx
jae 0x4666b9
cmp dword [ebp + 0x2c], ebx
jl 0x466732
jg 0x4666ad
cmp dword [ebp + 0x28], ebx
jb 0x466732
mov eax, dword [ebp - 0x10c]
lea eax, [esi + eax - 1]
jmp 0x4666cf
cmp dword [ebp + 0x2c], ebx
jg 0x4666f0
jl 0x4666c5
cmp dword [ebp + 0x28], ebx
jae 0x4666f0
mov eax, dword [ebp - 0xec]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x57]
push ecx
push dword [ebp + 0x44]
lea ecx, [ebp + 2]
push dword [ebp + 0x40]
push ecx
lea ecx, [ebp - 0x45]
push ecx
lea ecx, [ebp - 0x7c]
push ecx
push ebx
push eax
call fcn.0044237b
add esp, 0x20
cmp dword [ebp + 0x50], ebx
jl 0x466726
jg 0x4666fc
cmp dword [ebp + 0x4c], ebx
jb 0x466726
mov al, byte [ebp - 0xa1]
mov byte [edi + 0x1bf], al
mov al, byte [ebp + 0x1d]
mov byte [edi + 0x1c0], al
mov al, byte [ebp + 0x30]
mov byte [edi + 0x1c1], al
mov eax, dword [ebp - 0xec]
mov dword [edi + 0x1c6], eax
cmp dword [ebp + 0x2c], ebx
jg 0x46673e
jl 0x466732
cmp dword [ebp + 0x28], ebx
jae 0x46673e
cmp dword [ebp + 0x50], ebx
jl 0x466759
jg 0x46673e
cmp dword [ebp + 0x4c], ebx
jb 0x466759
mov al, byte [ebp - 0x45]
mov byte [edi + 0x1c3], al
mov al, byte [ebp + 2]
mov byte [edi + 0x1c4], al
mov al, byte [ebp - 0x7c]
mov byte [edi + 0x1c5], al
cmp dword [ebp + 0x2c], ebx
jl 0x466771
jg 0x466765
cmp dword [ebp + 0x28], ebx
jb 0x466771
mov eax, dword [ebp - 0x10c]
mov dword [edi + 0x1ca], eax
cmp dword [ebp - 0x58], ebx
jge 0x466797
cmp word [ebp - 0xa8], bx
jge 0x466797
cmp dword [ebp + 0x50], ebx
jg 0x466797
jl 0x46678b
cmp dword [ebp + 0x4c], ebx
jae 0x466797
cmp dword [ebp + 0x2c], ebx
jl 0x4667aa
jg 0x466797
cmp dword [ebp + 0x28], ebx
jb 0x4667aa
mov esi, dword [ebp + 0x18]
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
jmp 0x4667ad
mov esi, dword [ebp + 0x18]
cmp word [ebp - 0xa8], bx
jge 0x4667e1
cmp dword [ebp - 0x58], ebx
jge 0x4667e1
cmp dword [ebp + 0x50], ebx
jg 0x4667e1
jl 0x4667c7
cmp dword [ebp + 0x4c], ebx
jae 0x4667e1
cmp dword [ebp + 0x2c], ebx
jg 0x4667e1
jl 0x4667d3
cmp dword [ebp + 0x28], ebx
jae 0x4667e1
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x468633
cmp edx, dword [ebp - 0x124]
jne 0x468633
mov eax, dword [ebp - 0x14c]
or eax, dword [ebp - 0x148]
mov dword [ebp + 0x40], 1
jne 0x46682d
push esi
call fcn.0044240d
pop ecx
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x38]
call fcn.00444ce2
add esp, 0xc
test eax, eax
jne 0x46685e
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x40], eax
call fcn.004423f5
pop ecx
cmp dword [ebp + 0x50], ebx
jl 0x46695a
jg 0x466876
cmp dword [ebp + 0x4c], 0x200
jb 0x46695a
cmp dword [ebp + 0x2c], 0
jl 0x46695a
jg 0x46688f
cmp dword [ebp + 0x28], 0x200
jbe 0x46695a
cmp byte [ebp - 0x95], 0
jle 0x46695a
push dword [ebp + 0x20]
push 0
push dword [ebp + 0x18]
call fcn.004acf60
add esp, 0xc
push 0
push 0x200
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004ad070
mov esi, eax
mov ebx, edx
mov edi, esi
add edi, dword [ebp - 0x3c]
mov dword [ebp - 0x200], ebx
adc ebx, dword [ebp - 0x38]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, esi
jne 0x466956
cmp edx, dword [ebp - 0x200]
jne 0x466956
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x38]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
mov dword [ebp + 0x40], eax
je 0x466956
mov eax, dword [ebp + 0x20]
cmp dword [ebp - 0x50], eax
jne 0x466956
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x38]
call fcn.00444ce2
add esp, 0xc
test eax, eax
jne 0x46695a
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, esi
jne 0x466956
cmp edx, dword [ebp - 0x200]
jne 0x466956
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x18]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp + 0x40], eax
jmp 0x46695a
and dword [ebp + 0x40], 0
xor eax, eax
cmp dword [ebp + 0x40], eax
sete al
cmp byte [ebp + 0x5f], 0
mov esi, eax
mov dword [ebp - 0x10], esi
jne 0x46697d
cmp byte [ebp + 0x65], 0
jne 0x46697d
cmp byte [ebp + 0x26], 0
je 0x46866e
and dword [ebp + 0x40], 0
jmp 0x46770d
cmp byte [ebp + 0xb], 0
je 0x466990
mov byte [ebp - 0x27], 0
cmp byte [ebp + 0x57], 0
je 0x4669a4
cmp byte [ebp + 0x5e], 0
jne 0x4669a4
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x38], eax
jmp 0x4669ab
mov dword [ebp + 0x38], 0x80
mov eax, dword [ebp - 0x8c]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp + 0x50]
push dword [ebp + 0x4c]
call fcn.004acfc0
push edi
push esi
push dword [ebp - 0xe0]
mov dword [ebp + 0x4c], eax
push dword [ebp - 0xe4]
mov dword [ebp + 0x50], edx
call fcn.004acfc0
push edi
push esi
push dword [ebp + 0x2c]
mov dword [ebp - 0xe4], eax
push dword [ebp + 0x28]
mov dword [ebp - 0xe0], edx
call fcn.004acfc0
mov esi, eax
sub esi, 1
mov edi, edx
sbb edi, 0
cmp byte [ebp - 0x1e], 0
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
je 0x466a33
mov esi, eax
add esi, dword [ebp + 0x4c]
mov edi, edx
adc edi, dword [ebp + 0x50]
sub esi, 1
sbb edi, 0
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
and dword [ebp - 0x100], 0
and dword [ebp - 0xfc], 0
cmp byte [ebp + 0x5e], 1
jne 0x466abf
test byte [ebp - 0x48], 0x10
je 0x466a71
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 0xe0]
mov esi, eax
sub esi, 1
mov edi, ecx
sbb edi, 0
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xf0], edi
jmp 0x466a7d
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x154]
cmp dword [ebp + 0x50], 0
jg 0x466a96
jl 0x466a8b
cmp dword [ebp + 0x4c], 1
jae 0x466a96
and dword [ebp + 0x50], 0
mov dword [ebp + 0x4c], 1
test edi, edi
mov dword [ebp - 0x100], esi
mov dword [ebp - 0xfc], edi
jg 0x466ac5
jl 0x466aad
cmp esi, 1
jae 0x466ac5
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], ecx
cmp byte [ebp + 0x5e], 0
je 0x466acd
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x50]
jmp 0x466ad1
xor eax, eax
xor ecx, ecx
push dword [ebp - 0x38]
lea edx, [ebp - 0x100]
push dword [ebp - 0x3c]
push edx
push ecx
push eax
push dword [ebp + 0x20]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x38]
push dword [ebp + 0x14]
push eax
call fcn.004496a4
add esp, 0x24
cmp byte [ebp + 0x57], 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], edx
jne 0x466b1c
or eax, edx
jne 0x466b1c
and dword [ebp - 0x90], 0
mov dword [ebp - 0x94], 1
cmp dword [ebp - 0xfc], 0
jl 0x468454
jg 0x466b38
cmp dword [ebp - 0x100], 0x20
jb 0x468454
cmp byte [ebp + 0x66], 2
mov eax, dword [ebp + 0x38]
je 0x4686e1
cmp dword [ebp + 0x60], eax
mov dword [ebp + 4], 1
jae 0x466b79
cmp dword [ebp - 0x60], eax
jge 0x466b79
cmp dword [ebp + 0x60], 0
jl 0x466b7d
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0xc]
push 0x10
push 0x4c62d0
push eax
call fcn.0043e4f6
add esp, 0xc
test eax, eax
jne 0x466b7d
and dword [ebp + 4], 0
mov ecx, dword [ebp + 0x20]
xor edx, edx
lea eax, [ecx + 0x3fff]
div ecx
cmp byte [ebp + 0x5e], 1
mov dword [ebp + 0x10], eax
jne 0x466ebc
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x60], eax
jae 0x468454
mov edx, dword [ebp - 0xc]
mov dword [ebp + 0x18], edx
mov edx, dword [ebp - 0x94]
shl eax, 7
inc edx
imul edx, ecx
mov ecx, 0x4800
sub ecx, edx
cmp byte [ebp + 3], 0
mov dword [ebp - 0x7c], eax
mov dword [ebp + 0x30], ecx
jg 0x466bf6
jge 0x466be3
xor edx, edx
cmp dword [ebp - 0x38], edx
jg 0x466bf6
jl 0x466be3
mov edx, dword [ebp + 0x20]
lea edx, [edx + edx + 0x4000]
cmp dword [ebp - 0x3c], edx
ja 0x466bf6
xor edx, edx
test eax, eax
mov byte [ebp + 0x1d], 0
mov dword [ebp + 0x34], edx
jle 0x466c99
jmp 0x466c48
cmp dword [ebp + 0x20], 0x200
mov byte [ebp + 0x1d], 1
jbe 0x466c1f
mov eax, dword [ebp + 0x20]
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x14]
add eax, 0x200
push 0
push eax
call fcn.004acf60
add esp, 0xc
mov eax, dword [ebp + 0x20]
add eax, 0xffffffa4
push eax
lea eax, [ebx + 0x5c]
push 0
push eax
call fcn.004acf60
push 0x4000
push 0
push dword [ebp - 0xc]
call fcn.004acf60
add esp, 0x18
jmp 0x466c99
mov ecx, dword [ebp + 0x30]
cmp edx, ecx
jl 0x466c62
push 0x10
push 0
push dword [ebp + 0x18]
call fcn.004acf60
add esp, 0xc
mov eax, 0x80
jmp 0x466c8b
push 0x1b0
push 0
push dword [ebp + 0x18]
call fcn.004acf60
mov eax, dword [ebp + 0x18]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.004acf60
add esp, 0x18
mov eax, 0x200
add dword [ebp + 0x34], eax
mov edx, dword [ebp + 0x34]
add dword [ebp + 0x18], eax
cmp edx, dword [ebp - 0x7c]
jl 0x466c45
push 0x38
push 0
push ebx
call fcn.004acf60
push 0x14
lea eax, [ebx + 0x48]
push 0
push eax
call fcn.004acf60
mov eax, dword [ebp + 0x14]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.004acf60
mov eax, dword [ebp + 0x14]
add esp, 0x24
cmp byte [ebp + 0x1d], 0
mov word [eax + 0x1fe], 0xaa55
jne 0x466ce6
cmp dword [ebp + 0x20], 0x200
jbe 0x466ce6
mov word [ebx - 2], 0xaa55
push 8
push str.EFI_PART
push ebx
call fcn.004143a0
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0x100]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x50]
push dword [ebp + 0x14]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xfc]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp + 0x10]
cdq
mov dword [ebp - 0x1d4], eax
add eax, dword [ebp + 0x4c]
mov dword [ebp - 0x1d0], edx
adc edx, dword [ebp + 0x50]
add eax, 1
adc edx, 0
mov dword [ebx + 0x20], ecx
sub ecx, dword [ebp - 0x1d4]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0xfc]
sbb eax, dword [ebp - 0x1d0]
add ecx, 0xffffffff
adc eax, 0xffffffff
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], 0x5c
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], eax
call fcn.0044240d
lea eax, [ebx + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 0x10
cmp ecx, 0x20323354
jne 0x466d82
cmp edx, 0x2020
je 0x466dbc
cmp ecx, 0x20363154
jne 0x466d92
cmp edx, 0x2020
je 0x466dbc
mov esi, ecx
or esi, edx
je 0x466db6
cmp ecx, 0xffffffff
jne 0x466da1
cmp edx, ecx
je 0x466db6
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov esi, ecx
or esi, edx
je 0x466db6
cmp ecx, 0xffffffff
jne 0x466dda
cmp edx, ecx
jne 0x466dda
mov esi, dword [ebp - 0xf4]
push 0xc
push 0x4c952c
push eax
call fcn.004143a0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x1b8]
add esp, 0xc
mov dword [ebx + 0x44], eax
jmp 0x466de0
mov esi, dword [ebp - 0xf4]
lea eax, [ebx - 0x174]
push eax
call fcn.0044240d
mov eax, dword [ebp + 0x4c]
add eax, 1
pop ecx
mov ecx, dword [ebp + 0x50]
adc ecx, 0
test edi, edi
mov dword [ebx + 0x48], eax
mov eax, 0x80
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
jg 0x466e23
jl 0x466e15
cmp esi, 1
jae 0x466e23
or dword [ebp - 0xf4], 0xffffffff
or dword [ebp - 0xf0], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x14]
push 1
push dword [ebp + 0x44]
shl eax, 4
push dword [ebp + 0x40]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x50]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x4c]
call fcn.0044237b
lea eax, [edi + 0x1c3]
add esp, 0x20
cmp byte [ebp + 0x64], 2
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov byte [eax], 0xfe
mov byte [ecx], 0xff
mov byte [edx], 0xfe
jne 0x466e98
push 1
push dword [ebp + 0x44]
push dword [ebp + 0x40]
push ecx
push eax
push edx
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
call fcn.0044237b
add esp, 0x20
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x1c6], eax
add edi, 0x1ca
or dword [edi], 0xffffffff
cmp byte [ebp + 0x64], 2
jne 0x4671c7
mov eax, dword [ebp - 0xf4]
mov dword [edi], eax
cmp byte [ebp + 0x5e], 0
jg 0x4671c7
cmp byte [ebp - 0x49], 0
jle 0x466ed6
cmp dword [ebp + 0x60], 0
jl 0x4671c7
cmp byte [ebp + 0x67], 0
je 0x466f2c
or dword [ebp + 0x60], 0xffffffff
xor esi, esi
cmp dword [ebp + 0x38], esi
mov byte [ebp - 0x27], 0
jbe 0x466f2c
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7c], eax
mov edi, 0x80
push 0x10
push 0x4c62d0
push dword [ebp - 0x7c]
call fcn.0043e4f6
add esp, 0xc
test eax, eax
je 0x466f17
add dword [ebp - 0x7c], edi
inc esi
cmp esi, dword [ebp + 0x38]
jb 0x466ef6
jmp 0x466f2c
mov dword [ebp + 0x60], esi
push edi
shl esi, 7
add esi, dword [ebp - 0xc]
push 0
push esi
call fcn.004acf60
add esp, 0xc
mov eax, dword [ebp + 0x38]
dec dword [ebp - 0x60]
cmp dword [ebp + 0x60], eax
jae 0x468454
cmp dword [ebp - 0x60], eax
jge 0x468454
cmp byte [ebp - 0x27], 0
je 0x467044
xor ecx, ecx
cmp byte [ebp + 0x57], cl
je 0x466fa1
mov eax, dword [ebp - 0xc]
add eax, 0x20
cmp ecx, dword [ebp + 0x38]
jae 0x466fa1
mov edx, dword [eax]
cmp edx, dword [ebp + 0x4c]
jne 0x466f6f
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x50]
je 0x466f77
inc ecx
add eax, 0x80
jmp 0x466f5b
mov edx, dword [ebp - 0xc]
mov eax, ecx
shl eax, 7
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4c62d0
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x466fa1
push 0x80
push 0
push eax
call fcn.004acf60
add esp, 0xc
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
shl eax, 7
push 0x10
add eax, ecx
push 0x4c62d0
push eax
mov dword [ebp + 0x30], eax
call fcn.0043e4f6
add esp, 0xc
test eax, eax
je 0x46702e
mov edi, dword [ebp + 0x60]
inc edi
cmp edi, dword [ebp + 0x38]
mov dword [ebp + 0x44], edi
jae 0x468454
mov esi, edi
shl esi, 7
add esi, dword [ebp - 0xc]
push 0x10
push 0x4c62d0
push esi
call fcn.0043e4f6
add esp, 0xc
test eax, eax
je 0x467000
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x38]
mov dword [ebp + 0x44], edi
jb 0x466fdb
jmp 0x467022
cmp edi, dword [ebp + 0x60]
jle 0x467022
mov eax, dword [ebp + 0x44]
mov edi, eax
shl edi, 7
add edi, dword [ebp - 0xc]
sub eax, dword [ebp + 0x60]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x467013
mov eax, dword [ebp + 0x38]
cmp dword [ebp + 0x44], eax
jae 0x468454
push 0x80
push 0
push dword [ebp + 0x30]
call fcn.004acf60
add esp, 0xc
and dword [ebp + 4], 0
cmp byte [ebp + 0x5e], 1
je 0x4671a8
mov eax, dword [ebp - 0x60]
xor ecx, ecx
cmp eax, ecx
jge 0x467161
cmp dword [ebp + 4], ecx
jne 0x467087
xor eax, eax
inc eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x174], ecx
jle 0x4670a4
mov edi, dword [ebp + 0x60]
shl edi, 7
add edi, dword [ebp - 0xc]
lea esi, [ebp - 0x1c0]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x178], ecx
jle 0x4670c5
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
shl eax, 7
lea edi, [eax + ecx + 0x10]
lea esi, [ebp - 0x214]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x17c], ecx
mov eax, dword [ebp - 0xc]
jle 0x4670e4
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x4c]
shl edx, 7
mov dword [edx + eax + 0x20], esi
mov esi, dword [ebp + 0x50]
mov dword [edx + eax + 0x24], esi
cmp dword [ebp - 0x180], ecx
jle 0x467106
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0xf4]
shl edx, 7
mov dword [edx + eax + 0x28], esi
mov esi, dword [ebp - 0xf0]
mov dword [edx + eax + 0x2c], esi
cmp dword [ebp - 0x188], ecx
jle 0x467128
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0x15c]
shl edx, 7
mov dword [edx + eax + 0x30], esi
mov esi, dword [ebp - 0x158]
mov dword [edx + eax + 0x34], esi
cmp dword [ebp - 0x184], ecx
jle 0x4671a8
mov eax, dword [ebp - 0x30]
cmp word [eax], 0
je 0x4671a8
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0xc]
shl eax, 7
push 0x48
lea esi, [eax + ecx + 0x38]
push 0
push esi
call fcn.004acf60
add esp, 0xc
push 0x24
push dword [ebp - 0x30]
push esi
call dword [sym.imp.shlwapi.dll_StrCpyNW]
jmp 0x4671a8
cmp eax, dword [ebp + 0x60]
je 0x4671a8
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0xc]
shl ecx, 7
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x34c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x60]
shl ecx, 7
add eax, ecx
push 0x20
pop ecx
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov eax, dword [ebp - 0x60]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x34c]
rep movsd dword es:[edi], dword [esi]
jge 0x4671a8
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0xb], 0
je 0x4671c7
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0xc]
push 0x80
push 0
push eax
call fcn.004acf60
add esp, 0xc
and dword [ebp + 0x44], 0
cmp byte [ebp - 0x49], 1
jne 0x4672f1
cmp byte [ebp + 0x5e], 1
je 0x4672f1
and dword [ebp - 0x8c], 0
mov eax, dword [ebp + 0x38]
and dword [ebp + 0x34], 0
dec eax
test eax, eax
mov dword [ebp - 0x7c], eax
jl 0x4672f1
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x40], eax
xor esi, esi
push 0x10
push 0x4c62d0
push dword [ebp + 0x18]
call fcn.0043e4f6
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x1d], al
jne 0x46722f
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x8c]
mov dword [ebp + 0x30], esi
je 0x467236
mov dword [ebp + 0x30], 1
cmp byte [ebp + 0x1d], 0
mov dword [ebp + 4], esi
jne 0x4672af
mov eax, dword [ebp - 0x8c]
cmp dword [ebp + 0x34], eax
je 0x4672a0
push 0x38
push dword [ebp + 0x18]
push dword [ebp + 0x40]
call fcn.004af4f0
add esp, 0xc
test eax, eax
je 0x467275
push 0x38
push dword [ebp + 0x18]
mov dword [ebp + 4], 1
push dword [ebp + 0x40]
call fcn.004ad610
add esp, 0xc
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0x40]
push 0x24
add esi, 0x38
push esi
add edi, 0x38
push edi
call dword [sym.imp.shlwapi.dll_StrCmpNW]
test eax, eax
je 0x4672a0
push 0x24
push esi
push edi
mov dword [ebp + 4], 1
call dword [sym.imp.shlwapi.dll_StrCpyNW]
inc dword [ebp - 0x8c]
add dword [ebp + 0x40], 0x80
xor esi, esi
cmp dword [ebp + 0x30], esi
je 0x4672cf
cmp byte [ebp + 0x1d], 0
jne 0x4672cf
push 0x10
push esi
push dword [ebp + 0x18]
mov dword [ebp + 4], 1
call fcn.004acf60
add esp, 0xc
cmp dword [ebp + 4], esi
je 0x4672db
mov eax, dword [ebp + 0x34]
inc eax
mov dword [ebp + 0x44], eax
inc dword [ebp + 0x34]
mov eax, dword [ebp + 0x34]
add dword [ebp + 0x18], 0x80
cmp eax, dword [ebp - 0x7c]
jle 0x467204
push 8
push str.EFI_PART
push ebx
call fcn.004143a0
push dword [ebp + 0x14]
call fcn.0044240d
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, eax
add esp, 0x10
or edx, ecx
je 0x46731e
cmp eax, 0xffffffff
jne 0x46732b
cmp ecx, eax
jne 0x46732b
lea eax, [ebx - 0x174]
push eax
call fcn.0044240d
pop ecx
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x44], eax
jg 0x467337
inc eax
mov dword [ebp + 0x44], eax
cmp byte [ebp + 0x5e], 1
mov eax, dword [ebp + 0x38]
jne 0x467343
mov dword [ebp + 0x44], eax
push 0
shl eax, 7
push 0
push eax
push dword [ebp - 0xc]
call fcn.004992b0
mov esi, dword [ebx + 0xc]
add esp, 0x10
cmp esi, 0x20000
mov dword [ebx + 0x58], eax
ja 0x468454
xor eax, eax
push eax
push eax
push esi
push ebx
mov dword [ebx + 0x10], eax
call fcn.004992b0
mov edi, dword [ebp - 0x170]
push esi
push ebx
push edi
mov dword [ebx + 0x10], eax
call fcn.004143a0
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
and dword [edi + 0x10], 0
mov dword [edi + 0x24], eax
push 0
xor eax, eax
push eax
push esi
push edi
call fcn.004992b0
mov esi, dword [ebp + 0x20]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
add esp, 0x2c
inc eax
imul eax, esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.004448b9
mov eax, dword [ebp - 0x1c]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x44]
shl eax, 7
lea eax, [eax + esi - 1]
xor edx, edx
div esi
push 0
push dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push dword [ebp - 0x3c]
imul eax, esi
mov dword [ebp - 0x170], eax
call fcn.0040f6f0
push esi
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402ccf
push esi
push dword [ebp + 0x14]
push dword [ebp - 0x1c]
call fcn.004af4f0
add esp, 0xc
test eax, eax
je 0x467430
push 0
push dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push dword [ebp - 0x3c]
call fcn.0040f6f0
push esi
push dword [ebp + 0x14]
lea ecx, [ebp + 0x6c]
call fcn.0043e2ac
mov eax, dword [ebp - 0x170]
xor edx, edx
div esi
mov ecx, dword [ebp - 0x90]
xor edx, edx
push edx
push edx
push esi
push ecx
mov dword [ebp + 0x20], ebx
mov dword [ebp - 0xc4], ecx
inc eax
mov dword [ebp + 0x18], eax
mov eax, dword [ebp - 0x94]
push eax
mov dword [ebp - 0xc8], eax
call fcn.004ad070
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f6f0
mov eax, dword [ebp + 0x18]
imul eax, esi
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402ccf
xor ebx, ebx
cmp dword [ebp + 0x18], ebx
jle 0x467558
jmp 0x4674bb
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004af4f0
add esp, 0xc
test eax, eax
jne 0x4674c0
inc ebx
add dword [ebp - 0xc8], 1
adc dword [ebp - 0xc4], eax
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp ebx, dword [ebp + 0x18]
jl 0x467494
cmp ebx, dword [ebp + 0x10]
jge 0x467558
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1f8], eax
jmp 0x467511
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004af4f0
add esp, 0xc
test eax, eax
je 0x467516
inc ebx
add dword [ebp - 0xc8], 1
adc dword [ebp - 0xc4], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp ebx, dword [ebp + 0x18]
jl 0x4674e9
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
call fcn.004ad070
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f6f0
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x6c]
push eax
push dword [ebp + 0x30]
call fcn.0043e2ac
cmp ebx, dword [ebp + 0x18]
jl 0x467494
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x100]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x10]
cdq
sub ebx, eax
mov eax, dword [ebp - 0xfc]
sbb eax, edx
push 0
xor ecx, ecx
push ecx
push esi
push eax
push ebx
mov dword [ebp - 0xc4], eax
call fcn.004ad070
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f6f0
mov eax, dword [ebp + 0x10]
imul eax, esi
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402ccf
and dword [ebp + 0x44], 0
cmp dword [ebp + 0x10], 0
jle 0x46768b
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jge 0x46768b
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004af4f0
add esp, 0xc
test eax, eax
jne 0x4675f4
inc dword [ebp + 0x44]
add ebx, 1
adc dword [ebp - 0xc4], eax
mov eax, dword [ebp + 0x44]
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp eax, dword [ebp + 0x10]
jl 0x4675c7
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jge 0x46768b
mov eax, dword [ebp + 0x20]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1e0], eax
push esi
push dword [ebp + 0x20]
push dword [ebp + 0x38]
call fcn.004af4f0
add esp, 0xc
test eax, eax
je 0x467646
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
add ebx, 1
adc dword [ebp - 0xc4], 0
add dword [ebp + 0x20], esi
add dword [ebp + 0x38], esi
cmp eax, dword [ebp + 0x10]
jl 0x467618
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
call fcn.004ad070
add eax, dword [ebp - 0x3c]
lea ecx, [ebp + 0x6c]
adc edx, dword [ebp - 0x38]
push edx
push eax
call fcn.0040f6f0
mov eax, dword [ebp + 0x20]
sub eax, dword [ebp + 0x30]
lea ecx, [ebp + 0x6c]
push eax
push dword [ebp + 0x30]
call fcn.0043e2ac
mov eax, dword [ebp + 0x10]
cmp dword [ebp + 0x44], eax
jl 0x4675bb
xor eax, eax
push eax
push esi
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
call fcn.004ad070
mov ebx, eax
add ebx, dword [ebp - 0x3c]
push 0
adc edx, dword [ebp - 0x38]
lea ecx, [ebp + 0x6c]
push edx
push ebx
mov dword [ebp - 0x134], edx
call fcn.0040f6f0
push esi
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x6c]
call fcn.00402ccf
push esi
push edi
push dword [ebp - 0x1c]
call fcn.004af4f0
add esp, 0xc
test eax, eax
je 0x4676f2
push 0
push dword [ebp - 0x134]
lea ecx, [ebp + 0x6c]
push ebx
call fcn.0040f6f0
push esi
push edi
lea ecx, [ebp + 0x6c]
call fcn.0043e2ac
mov al, byte [ebp + 0x65]
or al, byte [ebp + 0x5f]
lea ecx, [ebp - 0x1c]
or al, byte [ebp + 0x26]
je 0x468907
and dword [ebp + 0x40], 0
call fcn.0043e48d
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
mov bl, byte [ebp + 0x27]
xor edi, edi
cmp dword [ebp - 0x24], edi
jl 0x4677bb
cmp bl, 0x20
je 0x46773d
cmp bl, 0x10
jne 0x467743
cmp dword [ebp - 0x44], 0xb
je 0x467767
test byte [ebp + 0x5f], 0x20
jne 0x467767
cmp byte [ebp + 0x5f], 0
je 0x467755
cmp dword [ebp - 0x44], 0xb
je 0x467767
test byte [ebp + 0x65], 0x20
jne 0x467767
cmp byte [ebp + 0x65], 0
je 0x4677bb
cmp dword [ebp - 0x44], 0xb
jne 0x4677bb
cmp byte [ebp - 0x28], 0
jg 0x46781b
test byte [0x4db450], 0x20
jne 0x46778c
test byte [ebp + 0x68], 0x20
jne 0x46778c
push 1
push dword [ebp - 0x24]
call fcn.00453873
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4db450], 0x10
jne 0x4677b7
test byte [ebp + 0x68], 0x11
jne 0x4677b7
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x24]
call fcn.0040557e
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp - 0x28], 0
jg 0x46781b
cmp byte [ebp + 0x26], 0
jne 0x4677d7
cmp bl, 1
je 0x4677d7
cmp bl, 0x20
je 0x4677d7
cmp byte [ebp + 0x5f], 0
je 0x46781b
push dword [ebp + 0x6c]
call fcn.004423f5
pop ecx
push edi
lea eax, [ebp - 0x198]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x198], edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x467808
xor eax, eax
jmp 0x46780e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp bl, 1
je 0x467818
cmp bl, 0x20
jne 0x46781b
mov dword [ebp - 0x10], eax
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
xor esi, esi
test byte [ebp + 0x65], 0x20
jne 0x467842
cmp byte [ebp + 0x65], 0
je 0x467837
cmp dword [ebp - 0x44], 0xb
je 0x467842
test bl, 0x10
je 0x46787a
cmp dword [ebp - 0x44], 0xc
je 0x46787a
lea ecx, [ebp + 0x68]
call fcn.0044243b
cmp byte [ebp - 0x28], 0
jg 0x46787a
xor eax, eax
cmp bl, 0x18
setne al
push 0x4c0fb0
dec eax
and eax, 0x17
inc eax
push eax
push edi
push dword [ebp - 0xf8]
call fcn.004529aa
add esp, 0x10
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp byte [ebp + 0x4b], 0
je 0x4688e3
cmp dword [ebp + 0x40], edi
je 0x4688e3
xor ebx, ebx
or esi, 0xffffffff
jmp 0x46520e
cmp dword [ebp - 0x14], ebx
jge 0x4678ab
mov ecx, dword [ebp - 0xc0]
cmp word [ecx], bx
je 0x465f06
mov edi, 0x1b8
mov dword [ebp + 0x44], edi
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x190], ebx
mov dword [ebp - 0x18c], ebx
cmp word [eax], bx
je 0x467a05
push dword [ebp - 8]
push 0x4c9528
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467a05
push dword [ebp - 8]
push 0x4c5388
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467a05
mov edi, dword [ebp - 8]
push edi
push 0x4c9524
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x467923
mov dword [ebp + 0x34], 0x4d9368
mov dword [ebp + 0x44], 0x190
jmp 0x467a21
push edi
push 0x4c9520
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x467947
mov dword [ebp + 0x34], 0x4d94f8
mov dword [ebp + 0x44], 0x180
jmp 0x467a21
mov dword [ebp + 0x44], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
jne 0x46797e
lea eax, [ebp - 0x94]
push eax
inc edi
lea eax, [ebp - 8]
inc edi
push eax
mov dword [ebp - 8], edi
call fcn.0044a0e0
mov edi, dword [ebp - 8]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x46797e
inc edi
inc edi
cmp word [edi], 0x23
jne 0x4679bc
push edi
lea ecx, [ebp + 0x30]
call fcn.0044df7a
push ebx
lea eax, [ebp - 0x194]
push eax
push str.EXEDATA
push dword [ebp + 0x30]
push ebx
call fcn.00415338
add esp, 0x14
lea ecx, [ebp + 0x30]
mov dword [ebp + 0x34], eax
call fcn.0043e48d
mov eax, dword [ebp - 0x190]
mov dword [ebp + 0x44], eax
jmp 0x4679d3
lea eax, [ebp + 0x44]
push eax
push ebx
push edi
call fcn.0040ff8d
add esp, 0xc
mov dword [ebp + 0x34], eax
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x90], ebx
jl 0x467a0f
jg 0x4679e5
cmp dword [ebp - 0x94], ebx
jb 0x467a0f
cmp ebx, dword [ebp - 0x90]
jl 0x467a0f
jg 0x4679fa
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp - 0x94]
jbe 0x467a0f
mov eax, dword [ebp - 0x94]
mov dword [ebp + 0x44], eax
jmp 0x467a0f
mov dword [ebp + 0x34], 0x4d9678
mov dword [ebp + 0x44], edi
cmp dword [ebp + 0x44], ebx
jbe 0x467bc7
cmp dword [ebp + 0x34], ebx
je 0x467bc7
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.00405a2a
cmp dword [ebp + 0x6c], ebx
je 0x467bc7
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.00441d1c
cmp eax, esi
pop ecx
pop ecx
mov edi, eax
jge 0x467a60
mov edi, esi
mov ecx, dword [ebp + 0x44]
lea eax, [edi - 1]
add ecx, eax
not eax
and ecx, eax
cmp ecx, edi
mov dword [ebp - 0x64], ecx
mov ebx, ecx
jge 0x467a77
mov ebx, edi
lea eax, [edi + ebx*2]
push eax
lea ecx, [ebp - 0x30]
call fcn.004448b9
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xb0]
lea esi, [edi - 1]
add eax, edi
not esi
and esi, eax
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0xac]
lea edi, [esi + ebx]
je 0x467ab6
push edx
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x467ba7
cmp edx, dword [ebp - 0x38]
jne 0x467ba7
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x64]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x467ba7
push dword [ebp - 0x64]
push edi
push esi
call fcn.004143a0
mov ecx, dword [ebp + 0x44]
mov eax, 0x1b8
add esp, 0xc
cmp ecx, eax
jle 0x467afe
mov ecx, eax
mov ebx, dword [ebp + 0x34]
push ecx
push ebx
push edi
call fcn.004143a0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x44]
add esp, 0xc
cmp eax, 0x200
jbe 0x467b40
add eax, 0xfffffe00
push eax
add ebx, 0x200
lea eax, [edi + 0x200]
push ebx
push eax
call fcn.004143a0
add esp, 0xc
push dword [ebp - 0x64]
push edi
push esi
call fcn.00444ce2
add esp, 0xc
test eax, eax
jne 0x467b8f
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x467ba7
cmp edx, dword [ebp - 0x38]
jne 0x467ba7
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x64]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.004423f5
test esi, esi
pop ecx
je 0x467ba7
lea ecx, [ebp - 0x30]
call fcn.0043e48d
lea ecx, [ebp - 0x194]
call fcn.0043e48d
jmp 0x468610
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x467bb4
inc esi
lea ecx, [ebp - 0x30]
call fcn.0043e48d
lea ecx, [ebp - 0x194]
jmp 0x467fef
lea ecx, [ebp - 0x194]
call fcn.0043e48d
jmp 0x46864b
cmp ecx, ebx
jle 0x465f06
cmp dword [ebp - 0x14], ebx
jge 0x467bf3
mov eax, dword [ebp - 0xc0]
cmp word [eax], bx
je 0x465f06
xor eax, eax
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp + 0x30], esi
jge 0x467c12
xor al, al
jne 0x467c3c
jmp 0x465f06
push dword [ebp - 0x5c]
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 0x18]
lea eax, [ebp + 0xc]
push ecx
push dword [ebp - 0x14]
push eax
call fcn.00463084
add esp, 0x1c
cmp dword [ebp + 0x30], ebx
jle 0x46864b
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 8], 0x200
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
cmp word [edi], bx
je 0x467dd3
push edi
push 0x4c9528
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467dd3
push edi
push 0x4c5388
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467dd3
push edi
push 0x4c9520
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x467ca6
push 8
jmp 0x467dd5
push edi
push str.nt6fat
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467dcf
push edi
push str.winfat
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
jne 0x467dcf
push edi
push 0x4c9524
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x467ce8
push 6
jmp 0x467dd5
push edi
push str.nt5fat
call fcn.0043f8c3
test al, al
pop ecx
pop ecx
je 0x467d00
push 5
jmp 0x467dd5
mov dword [ebp - 8], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], esi
jne 0x467d40
lea eax, [ebp - 0x94]
push eax
inc edi
lea eax, [ebp - 0xb4]
inc edi
push eax
mov dword [ebp - 0xb4], edi
call fcn.0044a0e0
mov edi, dword [ebp - 0xb4]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x467d40
inc edi
inc edi
cmp word [edi], 0x23
jne 0x467d7e
push edi
lea ecx, [ebp + 0x30]
call fcn.0044df7a
push ebx
lea eax, [ebp - 0x13c]
push eax
push str.EXEDATA
push dword [ebp + 0x30]
push ebx
call fcn.00415338
add esp, 0x14
lea ecx, [ebp + 0x30]
mov dword [ebp - 0x44], eax
call fcn.0043e48d
mov eax, dword [ebp - 0x138]
mov dword [ebp - 8], eax
jmp 0x467d95
lea eax, [ebp - 8]
push eax
push ebx
push edi
call fcn.0040ff8d
add esp, 0xc
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x90], ebx
jl 0x467dc5
jg 0x467da7
cmp dword [ebp - 0x94], ebx
jb 0x467dc5
cmp ebx, dword [ebp - 0x90]
jl 0x467dc5
jg 0x467dbc
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x94]
jbe 0x467dc5
mov eax, dword [ebp - 0x94]
mov dword [ebp - 8], eax
cmp dword [ebp - 0x44], ebx
jne 0x467dfe
jmp 0x467e74
push 7
jmp 0x467dd5
push 9
pop eax
push ebx
lea ecx, [ebp - 0x13c]
push ecx
push str.INDATA
push eax
push ebx
call fcn.00415338
add esp, 0x14
cmp dword [ebp - 8], ebx
mov dword [ebp - 0x44], eax
je 0x467e74
mov eax, dword [ebp - 0x138]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], ebx
jbe 0x467e74
cmp dword [ebp - 0x44], ebx
je 0x467e74
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xf8]
lea ecx, [ebp + 0x6c]
call fcn.00405a2a
cmp dword [ebp + 0x6c], ebx
je 0x467e74
push ebx
push 0x200
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.004ad070
mov esi, eax
add esi, dword [ebp - 0x15c]
mov edi, edx
adc edi, dword [ebp - 0x158]
push ebx
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
call fcn.0043f790
add esp, 0x10
cmp eax, esi
jne 0x467e74
cmp edx, edi
je 0x467e7f
lea ecx, [ebp - 0x13c]
jmp 0x467bcd
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.00441d1c
cmp eax, esi
pop ecx
pop ecx
mov edi, eax
jge 0x467e97
mov edi, esi
mov ecx, dword [ebp - 8]
lea eax, [edi - 1]
lea esi, [eax + ecx]
not eax
and esi, eax
lea eax, [edi + esi*2]
push eax
lea ecx, [ebp + 4]
call fcn.004448b9
mov eax, dword [ebp + 4]
lea ebx, [edi - 1]
add eax, edi
push 0
not ebx
and ebx, eax
lea eax, [ebp - 0x50]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x467f03
lea ecx, [ebp + 4]
call fcn.0043e48d
lea ecx, [ebp - 0x13c]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
test eax, eax
jmp 0x468662
push esi
push edi
push ebx
call fcn.004143a0
push 0
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push dword [ebp + 0x6c]
call fcn.0043f790
add esp, 0x1c
cmp eax, dword [ebp - 0xdc]
jne 0x467ed4
cmp edx, dword [ebp - 0xd8]
jne 0x467ed4
mov eax, dword [ebp - 8]
push 3
push dword [ebp - 0x44]
mov dword [ebp - 0x30], eax
push edi
call fcn.004143a0
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x30], eax
jle 0x467f55
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.004143a0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, 0x200
jbe 0x467fa5
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.004143a0
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x40], 1
call fcn.00444ce2
add esp, 0xc
test eax, eax
jne 0x467fd7
push eax
lea eax, [ebp - 0x50]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x40], eax
call fcn.004423f5
pop ecx
xor eax, eax
cmp dword [ebp + 0x40], eax
lea ecx, [ebp + 4]
sete al
mov esi, eax
call fcn.0043e48d
lea ecx, [ebp - 0x13c]
call fcn.0043e48d
jmp 0x468686
push 0x103c
lea ecx, [ebp + 0xc]
call fcn.00444a55
mov esi, dword [ebp + 0xc]
mov ax, word [edi]
add esi, 0x2000
cmp ax, bx
mov dword [ebp + 0x34], 0x4c0fb0
je 0x468065
cmp word [edi + 2], 0x3a
jne 0x468065
movzx eax, ax
push eax
push 0x4c94f8
push esi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeW]
cmp eax, 2
jne 0x468057
cmp dword [ebp - 0x84], 0x10
jne 0x4680b4
mov dword [ebp + 0x34], 0x4c0f90
cmp eax, 5
jne 0x4680b4
mov dword [ebp + 0x34], 0x4c0fa0
jmp 0x4680b4
mov eax, dword [ebp - 0x14]
cmp eax, ebx
jl 0x4680b4
cmp dword [ebp - 0x84], 8
jne 0x46808b
push eax
push str..CDROM_d
push esi
call dword [sym.imp.user32.dll_wsprintfW]
mov dword [ebp + 0x34], 0x4c0fa0
jmp 0x4680b1
cmp dword [ebp - 0x84], 0x10
jne 0x4680a4
and eax, 0xfff
mov esi, eax
mov dword [ebp + 0x34], 0x4c0f90
jmp 0x4680b4
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
movzx eax, word [ebp - 0x88]
push dword [ebp + 0x34]
or eax, 0x20
push eax
push dword [ebp + 0xc]
push esi
call fcn.004529aa
mov ecx, dword [ebp - 0xb8]
add esp, 0x10
push dword [ebp + 0xc]
push dword [ebp - 0xbc]
call fcn.0044414b
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
jmp 0x468627
cmp byte [ebp - 0x25], 0
je 0x46810d
cmp dword [ebp - 0x24], ebx
jl 0x4689d9
mov al, byte [ebp - 0x26]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x24]
or eax, dword [ebp - 0x120]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0046285b
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp word [ecx], bx
sete al
mov dword [ebp - 0x10], eax
jmp 0x4689d9
cmp dword [ebp - 0x24], ebx
jl 0x4689d9
cmp byte [ebp - 0x1d], 0
je 0x468158
cmp ecx, ebx
jl 0x4689d9
push dword [ebp - 0x5c]
movsx eax, byte [ebp - 0x26]
or eax, dword [ebp - 0x18]
push ebx
push ebx
push eax
push ecx
push dword [ebp - 0x24]
lea eax, [ebp + 0xc]
push eax
call fcn.00463084
xor ecx, ecx
add esp, 0x1c
test eax, eax
setle cl
mov dword [ebp - 0x10], ecx
jmp 0x4689d9
cmp dword [ebp - 0x14], ebx
jge 0x4681e2
cmp word [edi], bx
je 0x4681e2
cmp word [edi + 2], 0x3a
jne 0x4681df
cmp word [edi + 4], bx
jne 0x4681df
mov word [ebp - 0x2cc], 0x5c
mov word [ebp - 0x2ca], 0x5c
mov word [ebp - 0x2c8], 0x2e
mov word [ebp - 0x2c6], 0x5c
mov ax, word [edi]
mov word [ebp - 0x2c4], ax
mov word [ebp - 0x2c2], 0x3a
mov word [ebp - 0x2c0], bx
lea edi, [ebp - 0x2cc]
mov dword [ebp - 0x24], edi
cmp dword [ebp - 0x24], ebx
jl 0x4689d9
cmp byte [ebp - 0x1d], 0
je 0x4681f9
cmp ecx, ebx
jl 0x4689d9
push dword [ebp - 0x84]
lea eax, [ebp + 0xc]
push dword [ebp - 0x24]
push eax
push dword [ebp - 0xb8]
call fcn.00453367
add esp, 0x10
jmp 0x468139
mov eax, dword [ebp - 0xcc]
movzx edi, word [eax]
and edi, 0xffffffdf
cmp dword [ebp - 0x84], ebx
lea esi, [edi - 0x41]
jle 0x4682a4
push 0x3b60
lea ecx, [ebp + 0x30]
call fcn.004448b9
mov eax, dword [ebp + 0x30]
mov edx, edi
shl edx, 0x10
or edx, dword [ebp - 0x84]
lea ecx, [eax + 0x200]
push edx
push eax
push ecx
mov dword [ebp - 0x198], ecx
call fcn.00452d5f
imul esi, esi, 0x220
mov eax, dword [ebp - 0x198]
add esi, eax
add esp, 0xc
cmp dword [esi + 8], ebx
jle 0x468297
push 0x64
lea ecx, [ebp + 0xc]
call fcn.00444a55
push edi
push dword [esi + 4]
push str._d__c:
push dword [ebp + 0xc]
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x10], ebx
lea ecx, [ebp + 0x30]
call fcn.0043e48d
jmp 0x4689d1
mov cx, word [eax]
mov edx, dword [ebp + 0xc]
mov word [edx], cx
cmp word [eax], 0x5c
jne 0x4682b6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
cmp word [eax], bx
je 0x4689d1
push dword [ebp - 0x5c]
mov eax, dword [ebp - 0x18]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 0xc]
push dword [ebp - 0x24]
push eax
call fcn.00463084
xor ecx, ecx
add esp, 0x1c
test eax, eax
setle cl
mov dword [ebp - 0x10], ecx
jmp 0x4689d1
cmp dword [ebp - 0x14], ebx
jge 0x468360
cmp word [edi], bx
je 0x46835e
cmp word [edi + 2], 0x3a
jne 0x468351
cmp word [edi + 4], 0x5c
jne 0x468314
cmp word [edi + 6], bx
jne 0x468314
mov word [edi + 4], bx
cmp word [edi + 4], bx
jne 0x468351
push 9
lea ecx, [ebp + 0x58]
call fcn.00444a55
mov eax, dword [ebp + 0x58]
mov word [eax], 0x5c
mov word [eax + 2], 0x5c
mov word [eax + 4], 0x2e
mov word [eax + 6], 0x5c
mov cx, word [edi]
mov word [eax + 8], cx
mov word [eax + 0xa], 0x3a
mov word [eax + 0xc], bx
jmp 0x46835e
push esi
push edi
lea ecx, [ebp + 0x58]
call fcn.00444b34
mov eax, dword [ebp + 0x58]
mov ecx, esi
cmp ecx, ebx
jg 0x468366
mov ecx, esi
push eax
mov eax, dword [ebp - 0x18]
shl eax, 0x10
and ecx, 0xf000ffff
or ecx, eax
push ecx
push dword [ebp - 0x14]
lea eax, [ebp + 0xc]
push eax
call fcn.00404ed7
add esp, 0x10
mov dword [ebp - 0x10], eax
jmp 0x4689d1
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x58]
mov esi, eax
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
jmp 0x46869d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
jmp 0x465257
lea ecx, [ebp - 0x40]
jmp 0x468603
lea ecx, [ebp - 0x40]
jmp 0x468477
lea ecx, [ebp - 0x40]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, esi
jmp 0x465f1d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
je 0x4651cf
push eax
jmp 0x4651c9
lea ecx, [ebp - 0x34]
call fcn.0043e48d
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
jmp 0x46574a
lea ecx, [ebp - 0x34]
call fcn.0043e48d
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
jmp 0x467ee7
push 0x28
lea ecx, [ebp + 0xc]
call fcn.00444a55
mov esi, dword [ebp + 0x60]
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
test esi, esi
push 4
mov dword [ebp - 0x88], 0x4bfa2c
pop eax
jl 0x4684bf
lea edx, [esi + 1]
cmp edx, eax
mov ecx, esi
jge 0x4684b7
mov eax, edx
cmp esi, eax
jge 0x4685cb
mov esi, dword [ebp + 0x18]
mov edi, dword [sym.imp.user32.dll_wsprintfW]
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], edx
mov edx, ecx
shl edx, 4
sub eax, ecx
lea esi, [edx + esi + 0x1c6]
mov dword [ebp + 0x30], eax
cmp dword [ebp + 0x60], 0
mov al, byte [esi - 4]
mov byte [ebp - 0x1e], al
jge 0x468531
cmp al, 5
je 0x4684f8
cmp al, 0xf
mov ecx, 0x4bfa2c
jne 0x4684fd
mov ecx, 0x4c94f4
xor edx, edx
test al, al
setne dl
lea edx, [edx + edx - 1]
imul edx, dword [ebp - 0x5c]
push edx
push ecx
push dword [ebp - 0x88]
push str._s_s_d
push ebx
call edi
add esp, 0x14
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x88], 0x4c04e4
jmp 0x4685bc
test al, al
je 0x4685bc
push dword [ebp - 0x5c]
push dword [ebp - 0x88]
push str._s_d
push ebx
call edi
add esp, 0x10
test byte [ebp - 0x18], 1
lea ebx, [ebx + eax*2]
mov eax, str._0x_X
jne 0x468560
mov eax, 0x4c94c4
movzx ecx, byte [ebp - 0x1e]
push ecx
push eax
push ebx
call edi
lea ebx, [ebx + eax*2]
movzx eax, byte [esi - 8]
shr eax, 7
push eax
push 0x4c94c4
push ebx
call edi
lea ebx, [ebx + eax*2]
mov eax, dword [esi]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.0049a87f
add esp, 0x28
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea ebx, [ebx + eax*2]
mov eax, dword [esi + 4]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.0049a87f
add esp, 0x10
inc dword [ebp - 0x5c]
add esi, 0x10
dec dword [ebp + 0x30]
jne 0x4684df
cmp dword [ebp - 0x64], 0
jle 0x4685e4
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00449930
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.0044414b
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
test eax, eax
je 0x464ac5
push eax
jmp 0x464abf
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
je 0x46513e
push eax
jmp 0x465138
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
test eax, eax
je 0x4686a6
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp - 0xc0]
call fcn.0043e48d
lea ecx, [ebp - 0xbc]
call fcn.0043e48d
lea ecx, [ebp - 0xcc]
call fcn.0043e48d
lea ecx, [ebp - 0x1cc]
call fcn.0043e48d
lea ecx, [ebp + 0xc]
call fcn.0043e48d
mov eax, esi
jmp 0x468a5c
lea eax, [eax + eax*4]
shl eax, 1
push eax
lea ecx, [ebp + 0xc]
call fcn.00444a55
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x38]
xor ecx, ecx
test edx, edx
mov dword [ebp - 0x88], 0x4bfa2c
jl 0x468711
mov ecx, edx
inc edx
cmp eax, edx
jle 0x468711
mov eax, edx
cmp ecx, eax
jge 0x468881
mov ebx, dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edx, [ecx + 1]
mov dword [ebp - 0x34], edx
mov edx, ecx
shl edx, 7
add edx, dword [ebp - 0xc]
sub eax, ecx
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne 0x46874b
mov ecx, dword [eax + 8]
or ecx, dword [eax + 0xc]
je 0x46886e
cmp dword [ebp + 0x60], 0
push dword [ebp - 0x34]
push dword [ebp - 0x88]
jge 0x468778
push str._s_d
push esi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x88], 0x4c04e4
jmp 0x46886b
push 0x4c94a8
push esi
call dword [sym.imp.user32.dll_wsprintfW]
mov ecx, dword [ebp - 0xc]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x60]
shl eax, 7
lea edi, [eax + ecx]
push 0
push edi
push esi
call fcn.00441f26
add esp, 0x1c
push esi
call ebx
lea esi, [esi + eax*2]
push str._GPT
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
push 0
push 0x200
push dword [edi + 0x24]
add esi, 0xa
push dword [edi + 0x20]
call fcn.004ad070
push edx
push eax
push esi
call fcn.0049a8ca
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
inc esi
inc esi
sub eax, dword [edi + 0x20]
push 0
sbb ecx, dword [edi + 0x24]
add eax, 1
push 0x200
adc ecx, 0
push ecx
push eax
call fcn.004ad070
push edx
push eax
push esi
call fcn.0049a8ca
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push str._016I64X
push dword [edi + 0x34]
inc esi
push dword [edi + 0x30]
inc esi
push esi
call fcn.0049a87f
add esp, 0x10
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push 0
inc esi
add edi, 0x10
inc esi
push edi
push esi
call fcn.00441f26
add esp, 0xc
test byte [ebp - 0x18], 0x10
je 0x46886e
push esi
call ebx
push dword [ebp - 0x34]
lea esi, [esi + eax*2]
mov word [esi], 0x20
inc esi
inc esi
push 0x4c023c
push esi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
lea esi, [esi + eax*2]
add dword [ebp - 0x30], 0x80
inc dword [ebp - 0x34]
dec dword [ebp + 0x30]
jne 0x468735
xor esi, esi
cmp dword [ebp - 0x64], esi
jle 0x46889b
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00449930
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.0044414b
lea ecx, [ebp + 0x14]
call fcn.0043e48d
lea ecx, [ebp - 4]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.0043e48d
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, esi
jmp 0x46869d
cmp bl, 0x10
je 0x4688eb
mov esi, dword [ebp - 0x10]
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, edi
jmp 0x46869d
call fcn.0043e48d
jmp 0x4685f8
push 0x1000
lea ecx, [ebp + 0xc]
call fcn.00444a55
cmp dword [ebp - 0x14], ebx
jl 0x4689a8
push 0x3b60
lea ecx, [ebp + 0x30]
call fcn.004448b9
mov edi, dword [ebp + 0x30]
push 0x3960
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.004acf60
push dword [ebp - 0x84]
push edi
push esi
call fcn.00452d5f
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x14]
cmp dword [eax], ecx
je 0x468972
inc edi
add eax, 0x220
cmp edi, 0x1a
jle 0x46895e
jmp 0x46899e
push 0x64
lea ecx, [ebp + 0xc]
call fcn.00444a55
imul edi, edi, 0x220
lea eax, [edi + esi]
movzx ecx, byte [eax + 0x10]
push ecx
push dword [eax + 4]
push str._d___c_
push dword [ebp + 0xc]
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x30]
call fcn.0043e48d
jmp 0x4689ce
cmp byte [ebp - 0x25], 0
jne 0x4689ce
cmp byte [ebp + 0x66], 4
mov eax, 0x4c0fa0
je 0x4689be
mov eax, 0x4c0f90
push eax
push ebx
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call fcn.004529aa
add esp, 0x10
mov dword [ebp - 0x10], ebx
lea ecx, [ebp + 0x58]
call fcn.0043e48d
cmp dword [ebp - 0x64], ebx
jle 0x4689f1
push dword [ebp - 0x64]
lea eax, [ebp + 0xc]
push dword [ebp - 0xb8]
call fcn.00449930
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0xb8]
push dword [ebp - 0xbc]
call fcn.0044414b
lea ecx, [ebp + 0x68]
call fcn.0044243b
lea ecx, [ebp + 0x6c]
call fcn.00402cb5
mov eax, 0x4db8b8
cmp eax, ebx
je 0x468a25
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp - 0xc0]
call fcn.0043e48d
lea ecx, [ebp - 0xbc]
call fcn.0043e48d
lea ecx, [ebp - 0xcc]
call fcn.0043e48d
lea ecx, [ebp - 0x1cc]
call fcn.0043e48d
lea ecx, [ebp + 0xc]
call fcn.0043e48d
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8