Function at 0x446e4c
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x53c
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp + 0x1c], ecx
call fcn.00426ff7
pop ecx
push 5
lea ecx, [ebp - 0x50]
call fcn.0042c415
push 0x14
lea ecx, [ebp - 0x108]
call fcn.0042c415
lea ecx, [ebp - 0xc0]
call fcn.0042c3f7
lea ecx, [ebp - 0xa0]
call fcn.0042c3f7
lea ecx, [ebp - 0x70]
call fcn.0042c3f7
mov eax, dword [ebp + 0x78]
or ebx, 0xffffffff
mov dword [ebp + 0x10], eax
push 0x2c
lea eax, [ebp - 0xa0]
push eax
xor esi, esi
lea eax, [ebp + 0x10]
push eax
mov dword [ebp + 0x24], 0xfffc0000
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x18], esi
mov dword [ebp + 4], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x17], 0
mov byte [ebp - 0x51], 0
mov byte [ebp + 0x58], 0
call fcn.0042e8ac
mov eax, dword [ebp - 0xa0]
mov word [eax], si
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x446f3f
mov word [eax], si
inc eax
inc eax
mov dword [ebp + 0x10], eax
push 0x2c
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0042e8ac
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], si
mov byte [ebp + 0x43], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp - 0x41], 0
mov byte [ebp + 0x39], 0
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x53], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x33], 0
mov byte [ebp + 0x59], 0
mov byte [ebp + 0x5a], 0
mov byte [ebp - 0x16], 0
mov byte [ebp + 0xf], 0
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x68], esi
mov byte [ebp - 0x38], 0
mov dword [ebp + 0x34], 0xfffff000
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x74], ebx
je 0x447639
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0042df66
add esp, 0xc
test al, al
je 0x446fc5
or byte [ebp + 0x43], 1
jmp 0x4475c7
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0042df66
add esp, 0xc
test al, al
je 0x446fe5
or byte [ebp + 0x43], 2
jmp 0x4475c7
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447005
or byte [ebp + 0x1a], 1
jmp 0x4475c7
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447025
or byte [ebp + 0x1a], 2
jmp 0x4475c7
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0042df66
add esp, 0xc
test al, al
jne 0x4475f3
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0042df66
add esp, 0xc
test al, al
jne 0x4475c7
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44707b
or dword [ebp + 0x68], 1
jmp 0x4475c7
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44709d
or dword [ebp + 0x68], 2
jmp 0x4475c7
push 5
lea eax, [ebp + 0x78]
push eax
push 0x48776c
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4470bd
or dword [ebp + 0x68], 0x10
jmp 0x4475c7
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4470dc
or dword [ebp + 0x68], edi
jmp 0x4475c7
push 3
lea eax, [ebp + 0x78]
push eax
push 0x487760
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4470fc
mov byte [ebp + 0x33], 1
jmp 0x4475c7
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44711b
mov byte [ebp + 0x59], 1
jmp 0x4475c7
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44713b
mov byte [ebp + 0x59], 0x21
jmp 0x4475c7
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44715a
mov byte [ebp + 0x5a], 1
jmp 0x4475c7
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447179
mov byte [ebp - 0x51], 1
jmp 0x4475c7
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447198
mov byte [ebp - 0x16], 1
jmp 0x4475c7
push 6
lea eax, [ebp + 0x78]
push eax
push 0x483ed8
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4471b8
mov byte [ebp + 0x17], 1
jmp 0x4475c7
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x487730
call fcn.00427f14
add esp, 0xc
test al, al
je 0x44723b
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x4471eb
cmp ax, 0x3d
je 0x4471eb
call fcn.00426fde
test al, al
je 0x44723b
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0x4c], esi
je 0x447200
mov dword [ebp + 0x3c], 0x487728
jmp 0x44722c
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
mov eax, dword [eax]
mov dword [ebp + 0x3c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00403c2d
mov eax, dword [ebp + 0x78]
cmp word [eax], si
pop ecx
pop ecx
je 0x44722c
mov word [eax], si
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
pop ecx
jmp 0x4475c7
push 4
push edi
push str._pbr
call fcn.00427f14
add esp, 0xc
test al, al
je 0x44729d
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x44726b
cmp ax, 0x3d
je 0x44726b
call fcn.00426fde
test al, al
je 0x44729d
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp + 0x3c], esi
push eax
je 0x44728a
mov dword [ebp + 0x4c], 0x48151a
call fcn.00403c2d
pop ecx
jmp 0x44722c
add dword [ebp + 0x78], 2
call fcn.00426ff7
mov eax, dword [eax]
mov dword [ebp + 0x4c], eax
jmp 0x447212
push 9
push edi
push str._alignend
call fcn.00427f14
add esp, 0xc
test al, al
je 0x447324
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x4472cd
cmp ax, 0x3d
je 0x4472cd
call fcn.00426fde
test al, al
je 0x447324
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x447315
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x4475ab
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x60], ecx
call fcn.0043066d
cmp dword [ebp - 0x58], esi
pop ecx
pop ecx
jg 0x4475ab
jl 0x447315
cmp dword [ebp - 0x5c], esi
ja 0x4475ab
mov dword [ebp - 0x5c], 0xfffffffe
mov dword [ebp - 0x58], ebx
jmp 0x4475ab
push 6
push edi
push str._align
call fcn.00427f14
add esp, 0xc
test al, al
je 0x4473c1
add edi, 0xc
xor eax, eax
mov ax, word [edi]
cmp ax, si
je 0x447358
cmp ax, 0x3d
je 0x447358
call fcn.00426fde
test al, al
je 0x4473c1
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.00403c2d
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x447380
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
jmp 0x4475c7
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x4475c7
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x60], ecx
call fcn.0043066d
cmp dword [ebp - 0x64], esi
pop ecx
pop ecx
jg 0x4475c7
jl 0x447375
cmp dword [ebp - 0x68], esi
ja 0x4475c7
jmp 0x447375
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4473e1
mov byte [ebp - 0x41], 1
jmp 0x4475c7
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4832d8
call fcn.0042df66
add esp, 0xc
test al, al
jne 0x4475c3
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0042df66
add esp, 0xc
test al, al
jne 0x4475c3
push edi
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44743c
or dword [ebp + 0x68], 0x20
mov byte [ebp - 0x18], 1
jmp 0x4475c7
push 6
push dword [ebp + 0x78]
push str._swap:
call fcn.00427f14
add esp, 0xc
test al, al
je 0x447482
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042ed5c
test eax, eax
pop ecx
pop ecx
jl 0x447478
cmp dword [ebp + 0x34], 1
jl 0x447478
cmp dword [ebp + 0x34], edi
jle 0x4475c7
mov esi, 0x80070057
jmp 0x448c4e
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00427f14
add esp, 0xc
test al, al
je 0x44751e
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x60], edi
call fcn.00403c51
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040ee76
add esp, 0xc
test al, al
je 0x4474dc
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043066d
pop ecx
pop ecx
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
jne 0x4474fb
add dword [ebp + 0x60], 2
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043066d
pop ecx
pop ecx
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
jne 0x4475c7
add dword [ebp + 0x60], 2
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.0043066d
jmp 0x4475bd
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00427f14
add esp, 0xc
test al, al
jne 0x4475d3
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.00427f14
add esp, 0xc
test al, al
je 0x44757a
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x6c], 0x42
call fcn.0042ed5c
mov al, byte [ebp - 0x6c]
add esp, 0xc
mov byte [ebp - 0x38], al
jmp 0x4475c7
push edi
push dword [ebp + 0x78]
push str._iv
call fcn.00427f14
add esp, 0xc
test al, al
je 0x4475a2
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042ed5c
jmp 0x4475bd
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x4475d3
lea eax, [ebp + 0x78]
push eax
call fcn.00403c2d
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
pop ecx
jmp 0x447235
mov byte [ebp + 0x39], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], si
jne 0x446fa5
cmp dword [ebp - 0x5c], 0xfffffffe
jne 0x44762e
cmp dword [ebp - 0x58], ebx
jne 0x44762e
mov eax, dword [ebp - 0x68]
cmp eax, 0xfffffff7
jne 0x447625
cmp dword [ebp - 0x64], ebx
jne 0x447625
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
jmp 0x447639
push str.21:INDATA
lea ecx, [ebp - 0x34]
call fcn.004361de
push dword [ebp + 0x78]
lea ecx, [ebp - 0x34]
call fcn.0042c465
push dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
call fcn.0041cfc7
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.0042704a
jmp 0x448c4e
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x68], 0xfffffff7
jne 0x447643
cmp dword [ebp - 0x64], ebx
jne 0x447643
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], esi
cmp dword [ebp - 0x5c], 0xfffffff7
jne 0x44765a
cmp dword [ebp - 0x58], ebx
jne 0x44765a
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str.list
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4476c6
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0042df66
add esp, 0xc
test al, al
je 0x44768f
mov byte [ebp + 0x6f], 1
jmp 0x4476c6
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4476ab
mov byte [ebp + 0x6f], 2
jmp 0x4476c6
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4876b0
call fcn.0042df66
add esp, 0xc
test al, al
je 0x4476c6
mov byte [ebp + 0x6f], 3
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x3a], 0
call fcn.0042df66
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x4476ea
mov byte [ebp + 0x58], 1
mov dword [ebp + 0x2c], edi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447708
mov byte [ebp + 0x3a], 1
mov dword [ebp + 0x2c], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0042df66
add esp, 0xc
test al, al
je 0x447726
mov byte [ebp + 0x3a], 0x10
mov dword [ebp + 0x2c], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00403c2d
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xc0]
call fcn.0042c51d
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x44776d
mov dword [ebp + 4], 0x80
jmp 0x447784
cmp ax, 0x2d
jne 0x44778e
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x44778e
mov dword [ebp + 4], esi
lea eax, [ebp + 0x78]
push eax
call fcn.00403c2d
pop ecx
xor eax, eax
mov dword [ebp - 0x118], esi
lea edi, [ebp - 0x114]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x4975fc
mov dword [ebp - 0x100], 0xebd0a0a2
mov word [ebp - 0xfc], 0xb9e5
mov word [ebp - 0xfa], 0x4433
mov byte [ebp - 0xf8], 0x87
mov byte [ebp - 0xf7], 0xc0
mov byte [ebp - 0xf6], 0x68
mov byte [ebp - 0xf5], 0xb6
mov byte [ebp - 0xf4], 0xb7
mov byte [ebp - 0xf3], 0x26
mov byte [ebp - 0xf2], 0x99
mov byte [ebp - 0xf1], 0xc7
stosd dword es:[edi], eax
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xe0], esi
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0x6c], str.MS_Basic_Data
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe8], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x5a], 0
jne 0x447873
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042ed5c
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x447899
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0040ee76
add esp, 4
test al, al
jne 0x447899
mov ecx, edx
mov byte [ebp - 0x53], 1
mov dword [ebp + 0x78], ecx
jmp 0x447899
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043b676
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0xdc], eax
jne 0x447896
xor esi, esi
jmp 0x448c43
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x4478a9
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp + 0x3b], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x4478ba
lea eax, [ebp + 0x78]
push eax
call fcn.00403c51
jmp 0x4478ce
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430754
pop ecx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x49], 1
jne 0x4478e5
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x49], 0
cmp word [eax], 0x2d
jne 0x4478f6
lea eax, [ebp + 0x78]
push eax
call fcn.00403c51
jmp 0x44790a
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430754
pop ecx
mov dword [ebp - 0xe8], eax
cmp byte [ebp + 0x5a], 0
pop ecx
je 0x447940
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043b676
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043066d
add esp, 0x10
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x104], esi
mov cx, word [eax]
cmp cx, 0x2d
je 0x44798e
cmp byte [ebp + 0x5a], 0
je 0x44798e
cmp cx, si
je 0x44798e
mov dword [ebp - 0x3c], eax
push esi
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00413513
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x104]
add esp, 0xc
mov dword [ebp - 0xd4], 1
mov dword [ebp - 0x6c], eax
mov word [eax + ecx*2], si
cmp byte [ebp + 0x6f], 1
je 0x447997
mov dword [ebp + 0x24], esi
mov edi, dword [ebp - 0xc0]
push 5
push edi
push str._img
mov dword [ebp + 0x78], edi
call fcn.00427f14
add esp, 0xc
test al, al
je 0x447a03
lea ecx, [edi + 0xa]
mov edi, ecx
xor edx, edx
jmp 0x4479d0
mov eax, edx
call fcn.00426fde
test al, al
jne 0x4479db
cmp dx, 0x23
je 0x4479db
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
cmp dx, si
jne 0x4479bd
sub ecx, edi
sar ecx, 1
cmp ecx, esi
jle 0x4479f4
push ecx
push edi
lea ecx, [ebp - 0x70]
call fcn.0042c51d
mov dword [ebp + 0x24], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00426ff7
pop ecx
push 2
pop ebx
jmp 0x447a40
push 2
pop ebx
push ebx
push edi
push 0x487670
call fcn.00427f14
add esp, 0xc
test al, al
je 0x447a1f
add edi, 4
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x447a43
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042ed5c
pop ecx
pop ecx
mov edi, dword [ebp + 0x78]
mov ax, word [edi]
cmp ax, 0x23
je 0x447a56
cmp ax, 0x3a
jne 0x447ae4
add edi, ebx
push ebx
push edi
push 0x48766c
mov dword [ebp + 0x78], edi
call fcn.00427f14
push ebx
push edi
push 0x487668
mov byte [ebp + 0x6e], al
call fcn.00427f14
add esp, 0x18
cmp byte [ebp + 0x6e], 0
mov byte [ebp + 0x5b], al
jne 0x447a91
cmp word [edi], 0x2b
jne 0x447a91
add edi, ebx
mov byte [ebp + 0xf], 1
mov dword [ebp + 0x78], edi
test al, al
jne 0x447ab2
mov ax, word [edi]
cmp ax, 0x40
je 0x447aaa
cmp ax, 0x2d
je 0x447aaa
cmp ax, 0x3d
jne 0x447ab2
or dword [ebp + 0x68], ebx
add edi, ebx
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040ee76
add esp, 4
test al, al
je 0x447ae4
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042ed5c
test eax, eax
pop ecx
pop ecx
jle 0x447ae4
cmp dword [ebp + 0x2c], esi
mov byte [ebp + 0x67], 1
jne 0x447ae4
mov byte [ebp + 0x6e], 1
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp + 0x24]
and word [ebp - 0x17c], 0
cmp word [eax], 0
lea edi, [ebp - 0x17c]
mov dword [ebp - 0x48], esi
mov dword [ebp + 0x10], edi
je 0x447b09
mov edi, eax
mov dword [ebp + 0x10], edi
push dword [ebp + 0x24]
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x17c]
push str..PhysicalDrive_d
push eax
call ebx
add esp, 0xc
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x447b4d
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x60]
add edi, 0x22
push eax
mov dword [ebp - 0x60], edi
call fcn.0042ed5c
mov esi, dword [ebp - 0x48]
pop ecx
pop ecx
cmp byte [ebp + 0x3a], 0
jne 0x447b59
cmp byte [ebp + 0x59], 0
je 0x447b6e
xor edi, edi
cmp dword [ebp + 0x24], edi
jge 0x447b70
cmp esi, edi
jge 0x447b70
mov esi, 0x80070057
jmp 0x448c43
xor edi, edi
or dword [ebp - 0x60], 0xffffffff
cmp dword [ebp + 0x34], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp - 0x34], edi
jle 0x447c5e
cmp byte [ebp + 0x5a], 0
jne 0x447c5e
cmp dword [ebp + 0x24], edi
jge 0x447b9e
mov eax, dword [ebp - 0x70]
cmp word [eax], di
je 0x447c54
mov eax, dword [ebp + 0x2c]
cmp dword [ebp + 0x34], eax
je 0x447c54
cmp eax, 1
jl 0x447c54
cmp eax, 4
jg 0x447c54
cmp byte [ebp + 0x43], 2
jl 0x447c54
push 6
pop ecx
push dword [ebp + 0x24]
mov esi, str.21:INDATA
lea edi, [ebp - 0x4cc]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov ecx, 0xae
lea edi, [ebp - 0x4b4]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x17c]
push 0x482fd4
push eax
call ebx
mov ecx, dword [ebp - 0x70]
add esp, 0xc
cmp word [ecx], 0
lea eax, [ebp - 0x17c]
je 0x447c0a
mov eax, ecx
movsx ecx, byte [ebp + 0x33]
push ecx
push dword [ebp + 0x34]
push dword [ebp + 0x2c]
push eax
lea eax, [ebp - 0x4b6]
push 0x487628
push eax
call ebx
mov ecx, dword [ebp + 0x1c]
add esp, 0x18
lea eax, [ebp - 0x4cc]
push eax
call fcn.0041cfc7
cmp byte [ebp + 0x59], 0
mov esi, eax
mov dword [ebp - 0x34], esi
je 0x448c3b
cmp dword [ebp + 0x24], 0
jge 0x449e6f
jmp 0x448c3b
mov esi, 0x80070057
jmp 0x448c3b
cmp byte [ebp + 0x3a], 0x10
jne 0x447c6e
test byte [ebp + 0x59], 0x20
jne 0x449e67
push 0x600
lea ecx, [ebp - 0x84]
call fcn.0042c29e
mov eax, dword [ebp - 0x84]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp + 0x3c], edi
mov dword [ebp - 0x40], eax
je 0x447f5d
cmp dword [ebp + 0x24], edi
jge 0x447cb1
mov eax, dword [ebp - 0x70]
cmp word [eax], di
jne 0x447cb1
mov esi, 0x80070057
jmp 0x448c30
mov esi, dword [ebp + 0x3c]
mov ebx, 0x1b8
mov dword [ebp + 0x34], ebx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], edi
cmp word [esi], di
je 0x447df3
push esi
push 0x487624
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x447df3
push esi
push 0x483cf8
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x447df3
push esi
push 0x487620
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x447d25
mov dword [ebp + 0x60], 0x4952d0
mov dword [ebp + 0x34], 0x190
jmp 0x447e0f
push esi
push 0x48761c
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x447d49
mov dword [ebp + 0x60], 0x495460
mov dword [ebp + 0x34], 0x180
jmp 0x447e0f
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x34], edi
cmp word [esi], 0x2a
jne 0x447d79
lea eax, [ebp - 0xc]
push eax
inc esi
lea eax, [ebp + 0x3c]
inc esi
push eax
mov dword [ebp + 0x3c], esi
call fcn.0043066d
mov esi, dword [ebp + 0x3c]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x447d79
inc esi
inc esi
cmp word [esi], 0x23
jne 0x447db7
push esi
lea ecx, [ebp - 0x3c]
call fcn.004361de
push edi
lea eax, [ebp - 0xbc]
push eax
push str.EXEDATA
push dword [ebp - 0x3c]
push edi
call fcn.0040f211
add esp, 0x14
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x60], eax
call fcn.0042704a
mov eax, dword [ebp - 0xb8]
mov dword [ebp + 0x34], eax
jmp 0x447dce
lea eax, [ebp + 0x34]
push eax
push edi
push esi
call fcn.0040a433
add esp, 0xc
mov dword [ebp + 0x60], eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 8], edi
jl 0x447dfd
jg 0x447dda
cmp dword [ebp - 0xc], edi
jb 0x447dfd
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x447dfd
jg 0x447deb
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0xc]
jbe 0x447dfd
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x34], eax
jmp 0x447dfd
mov dword [ebp + 0x60], 0x4955e0
mov dword [ebp + 0x34], ebx
cmp dword [ebp + 0x34], edi
jbe 0x447ead
cmp dword [ebp + 0x60], edi
je 0x447ead
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
lea ecx, [ebp + 0x5c]
call fcn.00403c6d
cmp dword [ebp + 0x5c], edi
je 0x447ead
mov esi, dword [ebp + 0x34]
add esi, 0x1ff
mov ebx, 0xfffffe00
and esi, ebx
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x10]
call fcn.0042c29e
mov edi, dword [ebp + 0x10]
push 0
lea eax, [ebp - 0x20]
push eax
add edi, 0x200
and edi, ebx
push esi
lea ebx, [edi + esi]
push ebx
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x447e88
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x447f4a
inc esi
jmp 0x447f4a
push esi
push ebx
push edi
call fcn.0046c720
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x447ec0
lea ecx, [ebp + 0x10]
call fcn.0042704a
lea ecx, [ebp - 0xbc]
call fcn.0042704a
xor esi, esi
inc esi
jmp 0x448c30
mov ecx, dword [ebp + 0x34]
mov eax, 0x1b8
cmp ecx, eax
jle 0x447ece
mov ecx, eax
push ecx
push dword [ebp + 0x60]
push ebx
call fcn.0046c720
mov byte [ebx + 0x1fe], 0x55
mov byte [ebx + 0x1ff], 0xaa
mov eax, dword [ebp + 0x34]
add esp, 0xc
cmp eax, 0x200
jbe 0x447f11
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x60]
add eax, 0x200
push eax
lea eax, [ebx + 0x200]
push eax
call fcn.0046c720
add esp, 0xc
push esi
push ebx
push edi
mov dword [ebp + 0x68], 1
call fcn.0042c6c7
add esp, 0xc
test eax, eax
jne 0x447f40
mov edi, dword [ebp + 0x5c]
push eax
lea eax, [ebp - 0x20]
push eax
push esi
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x68], eax
call fcn.00429cc2
xor eax, eax
cmp dword [ebp + 0x68], eax
sete al
mov esi, eax
lea ecx, [ebp + 0x10]
call fcn.0042704a
lea ecx, [ebp - 0xbc]
jmp 0x448c2b
mov ebx, dword [ebp + 0x4c]
cmp ebx, edi
je 0x4482d2
cmp dword [ebp + 0x2c], edi
jle 0x447ca7
cmp dword [ebp + 0x24], edi
jge 0x447f82
mov eax, dword [ebp - 0x70]
cmp word [eax], di
je 0x447ca7
push dword [ebp - 0x38]
or dword [ebp - 0x3c], 0xffffffff
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x68]
lea eax, [ebp - 0x50]
push dword [ebp + 0x2c]
mov dword [ebp - 4], edi
push dword [ebp + 0x24]
mov dword [ebp], edi
push eax
call fcn.0043af31
add esp, 0x1c
cmp dword [ebp - 0x3c], edi
jle 0x447eb8
mov dword [ebp + 0x20], 0x200
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], edi
cmp word [ebx], di
je 0x44812f
push ebx
push 0x487624
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x44812f
push ebx
push 0x483cf8
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x44812f
push ebx
push 0x48761c
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x448019
push 8
jmp 0x448131
push ebx
push str.nt6fat
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x44812b
push ebx
push str.winfat
call fcn.00427f44
test al, al
pop ecx
pop ecx
jne 0x44812b
push ebx
push 0x487620
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x44805b
push 6
jmp 0x448131
push ebx
push str.nt5fat
call fcn.00427f44
test al, al
pop ecx
pop ecx
je 0x448073
push 5
jmp 0x448131
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x20], edi
cmp word [ebx], 0x2a
jne 0x4480a3
lea eax, [ebp - 0xc]
push eax
inc ebx
lea eax, [ebp + 0x4c]
inc ebx
push eax
mov dword [ebp + 0x4c], ebx
call fcn.0043066d
mov ebx, dword [ebp + 0x4c]
cmp word [ebx], 0x2a
pop ecx
pop ecx
jne 0x4480a3
inc ebx
inc ebx
cmp word [ebx], 0x23
jne 0x4480e1
push ebx
lea ecx, [ebp - 0x3c]
call fcn.004361de
push edi
lea eax, [ebp - 0x90]
push eax
push str.EXEDATA
push dword [ebp - 0x3c]
push edi
call fcn.0040f211
add esp, 0x14
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x60], eax
call fcn.0042704a
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x20], eax
jmp 0x4480f8
lea eax, [ebp + 0x20]
push eax
push edi
push ebx
call fcn.0040a433
add esp, 0xc
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x90], eax
cmp dword [ebp - 8], edi
jl 0x44811b
jg 0x448104
cmp dword [ebp - 0xc], edi
jb 0x44811b
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x44811b
jg 0x448115
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0xc]
jbe 0x44811b
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x20], eax
cmp dword [ebp + 0x60], edi
jne 0x44815a
lea ecx, [ebp - 0x90]
jmp 0x447eb3
push 7
jmp 0x448131
push 9
pop eax
push edi
lea ecx, [ebp - 0x90]
push ecx
push str.INDATA
push eax
push edi
call fcn.0040f211
add esp, 0x14
cmp dword [ebp + 0x20], edi
mov dword [ebp + 0x60], eax
je 0x448120
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x20], eax
cmp dword [ebp + 0x20], edi
jbe 0x448120
cmp dword [ebp + 0x60], edi
je 0x448120
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
lea ecx, [ebp + 0x5c]
call fcn.00403c6d
cmp dword [ebp + 0x5c], edi
je 0x448120
push edi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
cmp eax, dword [ebp - 4]
jne 0x448120
cmp edx, dword [ebp]
jne 0x448120
mov esi, dword [ebp + 0x20]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x10]
call fcn.0042c29e
mov ebx, dword [ebp + 0x10]
push 0
lea eax, [ebp - 0x20]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x448208
push esi
push edi
push ebx
call fcn.0046c720
push 0
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x1c
cmp eax, dword [ebp - 4]
jne 0x448208
cmp edx, dword [ebp]
je 0x448215
lea ecx, [ebp + 0x10]
call fcn.0042704a
jmp 0x448120
mov eax, dword [ebp + 0x20]
push 3
push dword [ebp + 0x60]
mov dword [ebp - 0x34], eax
push edi
call fcn.0046c720
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x34], eax
jle 0x448236
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp + 0x60]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.0046c720
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x20]
add esp, 0xc
cmp eax, 0x200
jbe 0x448286
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x60]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.0046c720
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x68], 1
call fcn.0042c6c7
add esp, 0xc
test eax, eax
jne 0x4482b5
push eax
lea eax, [ebp - 0x20]
push eax
push esi
push edi
mov edi, dword [ebp + 0x5c]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x68], eax
call fcn.00429cc2
xor eax, eax
cmp dword [ebp + 0x68], eax
lea ecx, [ebp + 0x10]
sete al
mov esi, eax
call fcn.0042704a
lea ecx, [ebp - 0x90]
jmp 0x448c2b
cmp byte [ebp + 0x6f], 1
jne 0x4482e9
or esi, dword [ebp + 0x18]
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.0043abf1
pop ecx
pop ecx
jmp 0x448307
cmp byte [ebp + 0x6f], 2
jne 0x448337
push dword [ebp - 0x38]
lea eax, [ebp - 0x50]
push edi
push edi
push dword [ebp + 0x68]
push dword [ebp + 0x2c]
push esi
push eax
call fcn.0043af31
add esp, 0x1c
mov ecx, dword [ebp - 0x74]
cmp ecx, edi
jle 0x448370
mov eax, dword [ebp - 0x50]
dec ecx
mov dword [ebp - 0x60], ecx
push edi
lea ecx, [ebp - 0x50]
push ecx
mov ecx, dword [ebp + 0x1c]
push eax
mov dword [ebp + 8], eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x50], edi
call fcn.0042e76e
lea ecx, [ebp + 8]
call fcn.0042704a
jmp 0x448370
cmp byte [ebp + 0x6f], 3
jne 0x448388
mov eax, dword [ebp - 0xc0]
mov ax, word [eax]
cmp ax, di
mov ecx, dword [ebp - 0x50]
mov word [ecx], ax
je 0x448370
push dword [ebp - 0x38]
mov eax, dword [ebp + 0x68]
push edi
and eax, 0xfffffffd
push edi
or eax, 0xc
push eax
push dword [ebp + 0x2c]
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.0043af31
add esp, 0x1c
push dword [ebp - 0x50]
mov ecx, dword [ebp + 0x1c]
push dword [ebp - 0xa0]
call fcn.0042af0d
xor esi, esi
jmp 0x448c30
cmp byte [ebp + 0x5b], 0
je 0x4483a7
mov dword [ebp + 4], edi
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x2c], 5
cmp byte [ebp + 0x6e], 0
je 0x4483b4
mov dword [ebp + 0x2c], 5
cmp byte [ebp + 0x39], 0
je 0x4483cc
mov dword [ebp + 4], edi
mov dword [ebp + 0x20], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
dec dword [ebp + 0x2c]
or esi, 0xffffffff
cmp byte [ebp + 0x5a], 0
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], esi
mov byte [ebp - 0x4a], 0
mov byte [ebp - 0x52], 0
mov dword [ebp + 8], edi
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x38], edi
jne 0x448419
cmp dword [ebp + 0x20], edi
jne 0x448419
mov eax, dword [ebp + 0x50]
or eax, dword [ebp + 0x54]
jne 0x448419
mov eax, dword [ebp + 0x44]
or eax, dword [ebp + 0x48]
jne 0x448419
mov byte [ebp + 0x39], 1
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
lea ecx, [ebp + 0x5c]
call fcn.00403c6d
cmp dword [ebp + 0x5c], edi
jne 0x448448
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x448471
push 1
push edi
push dword [ebp + 0x5c]
call fcn.004305f0
add esp, 0xc
cmp byte [ebp + 0x3a], 0x10
mov dword [ebp - 0x60], eax
je 0x449e5c
cmp byte [ebp + 0x3a], 1
jne 0x448478
mov eax, dword [ebp + 0x5c]
call fcn.00429cd4
mov esi, eax
jmp 0x448c30
cmp dword [ebp + 0x20], 0xff
mov dword [ebp - 0x8c], edi
jg 0x447ca7
cmp byte [ebp + 0x6e], 0
jne 0x4484d6
cmp dword [ebp + 0x2c], edi
jge 0x4484d6
cmp dword [ebp + 0x54], edi
jg 0x447ca7
jl 0x4484aa
cmp dword [ebp + 0x50], edi
jae 0x447ca7
cmp dword [ebp + 0x48], edi
jg 0x447ca7
jl 0x4484be
cmp dword [ebp + 0x44], edi
jae 0x447ca7
cmp dword [ebp + 0x20], edi
jge 0x447ca7
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], esi
or eax, 0xffffffff
xor esi, esi
cmp byte [ebp + 0x6e], 0
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], esi
mov dword [ebp + 0x1c], eax
mov ebx, 0x200
jne 0x44851f
cmp byte [ebp + 0x5b], 0
jne 0x44851f
cmp eax, 4
jl 0x448a77
cmp byte [ebp + 0x5a], 0
jne 0x448a77
cmp byte [ebp + 0x58], 0
jne 0x448a77
cmp byte [ebp + 0x6e], 0
je 0x448540
mov dword [ebp + 0x2c], 4
cmp dword [ebp + 0x20], 5
je 0x447ca7
cmp dword [ebp + 0x20], 0xf
je 0x447ca7
xor edi, edi
push 0x100000
lea ecx, [ebp + 0x4c]
mov dword [ebp + 0x60], edi
call fcn.0042c29e
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x5c]
call fcn.00429b49
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x6e], 0
mov esi, eax
jne 0x4485b9
cmp ecx, dword [ebp + 0x2c]
jge 0x44859b
cmp dword [ebp + 0x2c], 4
jl 0x44859b
lea ecx, [ebp + 0x4c]
call fcn.0042704a
jmp 0x447ca7
cmp byte [ebp + 0x6e], 0
jne 0x4485b9
cmp byte [ebp + 0x5b], 0
jne 0x4485b9
mov edx, dword [ebp + 0x2c]
lea eax, [edx + 1]
cmp eax, 4
mov byte [ebp + 0x6f], 0
jg 0x4485f0
dec eax
jmp 0x4485f7
cmp byte [ebp + 0x5b], 0
mov byte [ebp + 0x6f], 1
jne 0x448606
cmp byte [ebp + 0x6e], 0
je 0x4485db
cmp dword [ebp + 0x20], edi
jl 0x44858e
cmp word [ebp + 4], di
jle 0x4485eb
mov dword [ebp + 4], 0x80
cmp ecx, 4
jle 0x44860d
lea eax, [ecx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x18], eax
jmp 0x448610
mov dword [ebp + 4], edi
jmp 0x4485db
lea eax, [eax*4 - 0x10]
cmp eax, edi
jle 0x44858e
cmp eax, ecx
jl 0x4485db
cmp edx, 4
jle 0x4485db
jmp 0x44858e
cmp ecx, 4
jg 0x4485e0
jmp 0x44858e
mov dword [ebp + 0x18], edi
or dword [ebp + 0x68], 0xffffffff
or dword [ebp + 0x1c], 0xffffffff
or dword [ebp + 0x3c], 0xffffffff
xor edx, edx
lea eax, [esi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x44862d
cmp cl, 0xf
jne 0x448630
mov dword [ebp + 0x3c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x448621
cmp byte [ebp + 0x6f], 0
je 0x44864a
cmp dword [ebp + 0x3c], edi
jl 0x44858e
mov eax, dword [ebp + 0x3c]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea edi, [eax + esi + 0x30]
push ebx
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0046d380
push 0
push ebx
push dword [edi + 0x14]
mov dword [ebp - 0x78], eax
push dword [edi + 0x10]
mov dword [ebp - 0x74], edx
mov dword [ebp - 4], eax
mov dword [ebp], edx
call fcn.0046d380
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x5b], 0
mov dword [ebp - 0x2c], edx
lea edi, [eax + esi + 0x30]
je 0x44874e
mov eax, dword [ebp + 0x60]
cmp eax, 8
jne 0x4486ae
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
xor esi, esi
jmp 0x448702
add eax, 0xfffffff8
and eax, 0xfffffffc
lea eax, [eax + eax*8]
xor edi, edi
shl eax, 4
lea esi, [eax + esi + 0x30]
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x4486df
cmp cl, 0xf
je 0x4486df
inc edi
add eax, 0x90
cmp edi, 4
jl 0x4486c3
jmp 0x44858e
push 0
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0046d380
mov ecx, eax
mov eax, dword [esi + 0x24]
xor esi, esi
sub ecx, eax
sbb edx, esi
test edi, edi
mov esi, edi
jl 0x44858e
and dword [ebp - 0x118], 0
xor eax, eax
lea edi, [ebp - 0x114]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x118]
push eax
push edx
push ecx
push dword [ebp + 0x5c]
call fcn.004309f5
add esp, 0x14
cmp byte [ebp + 0x33], 0
je 0x448737
mov eax, dword [ebp + 0x5c]
call fcn.00429cd4
lea ecx, [ebp + 0x4c]
call fcn.0042704a
cmp byte [ebp + 0x59], 0
jne 0x449e5c
jmp 0x448381
cmp dword [ebp + 0x60], 4
jg 0x44875c
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x68], eax
jmp 0x44877b
xor edx, edx
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x44876d
cmp cl, 0xf
jne 0x448770
mov dword [ebp + 0x68], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x448761
cmp dword [ebp + 0x68], 0
jge 0x44878b
cmp byte [ebp + 0x6e], 0
je 0x44858e
cmp byte [ebp + 0x6f], 0
je 0x448797
and dword [ebp + 0x1c], 0
jmp 0x4487c1
xor edx, edx
lea eax, [edi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x4487a9
test edx, edx
jne 0x4487b6
cmp cl, 5
je 0x4487b6
cmp cl, 0xf
je 0x4487b6
mov dword [ebp + 0x1c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x44879f
cmp byte [ebp + 0x6f], 0
jne 0x4487d1
cmp dword [ebp + 0x1c], 0
jl 0x44858e
cmp byte [ebp + 0x6e], 0
je 0x4489aa
mov eax, dword [ebp + 0x18]
test eax, eax
jg 0x4487e5
mov eax, dword [ebp + 0x3c]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + esi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp - 0x74], eax
mov eax, dword [eax + 0xc]
push ebx
push eax
push ecx
mov dword [ebp + 0x2c], eax
call fcn.0046d380
cmp dword [ebp + 0x60], 4
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jle 0x4488a9
cmp dword [ebp + 0x68], 0
jge 0x4488a9
cmp byte [edi + 0x20], 0
je 0x4488a1
mov eax, dword [ebp + 0x60]
cmp eax, 8
jle 0x448836
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x448839
mov eax, dword [ebp + 0x3c]
push 0
lea eax, [eax + eax*8]
push ebx
shl eax, 4
push dword [eax + esi + 0x3c]
push dword [eax + esi + 0x38]
call fcn.0046d380
mov ecx, dword [edi + 0x14]
mov dword [ebp - 0x80], eax
mov eax, dword [edi + 0x10]
add eax, dword [edi + 8]
push 0
adc ecx, dword [edi + 0xc]
push ebx
push ecx
push eax
mov dword [ebp - 0x7c], edx
call fcn.0046d380
mov ecx, dword [ebp - 0x2c]
mov esi, eax
sub eax, dword [ebp - 4]
mov edi, edx
mov dword [ebp - 0xf0], eax
mov eax, edi
sbb eax, dword [ebp]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x30]
sub eax, esi
sbb ecx, edi
add eax, dword [ebp - 4]
adc ecx, dword [ebp]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ecx
jmp 0x4488ea
lea ecx, [ebp + 0x4c]
jmp 0x447eb3
cmp dword [ebp + 0x18], 0
jle 0x4488c8
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp + 0x2c]
push 0
push ebx
push eax
push ecx
call fcn.0046d380
mov ecx, dword [ebp - 0x2c]
mov esi, eax
mov eax, dword [ebp - 0x30]
sub eax, esi
mov edi, edx
sbb ecx, edi
add eax, dword [ebp - 4]
adc ecx, dword [ebp]
and dword [ebp - 0xb0], 0
and dword [ebp - 0xac], 0
test ecx, ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
jg 0x448902
jl 0x44858e
test eax, eax
jbe 0x44858e
cmp byte [ebp + 0x3b], 0
je 0x44890e
add dword [ebp + 0x50], esi
adc dword [ebp + 0x54], edi
mov edx, esi
add edx, 1
mov dword [ebp - 0x30], edx
mov edx, edi
adc edx, 0
cmp dword [ebp + 0x54], edx
mov dword [ebp - 0x2c], edx
jg 0x448939
jl 0x44892d
mov edx, dword [ebp + 0x50]
cmp edx, dword [ebp - 0x30]
ja 0x448939
mov edx, dword [ebp - 0x30]
mov dword [ebp + 0x50], edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp + 0x54], edx
sub eax, dword [ebp + 0x50]
sbb ecx, dword [ebp + 0x54]
add eax, esi
adc ecx, edi
cmp dword [ebp + 0x48], ecx
jl 0x448955
jg 0x44894f
cmp dword [ebp + 0x44], eax
jbe 0x448955
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], ecx
xor eax, eax
cmp dword [ebp + 0x48], eax
jg 0x44896b
jl 0x44858e
cmp dword [ebp + 0x44], eax
jb 0x44858e
cmp dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x60]
jle 0x448989
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x44897f
inc eax
jmp 0x448991
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x448991
and eax, 0xfffffffc
cmp eax, 3
jg 0x448994
inc eax
jmp 0x44899c
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x2c], eax
mov dword [ebp - 0x8c], esi
jmp 0x448a6d
mov eax, dword [ebp + 0x68]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + esi + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
push 0
mov dword [ebp - 0x30], eax
add eax, ebx
mov dword [ebp - 0x2c], ecx
push ebx
adc ecx, 0
push ecx
push eax
call fcn.0046d380
mov ecx, dword [esi + 0x14]
mov edi, eax
mov eax, dword [esi + 0x10]
push 0
sub eax, ebx
push ebx
sbb ecx, 0
push ecx
push eax
mov dword [ebp], edx
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edx
call fcn.0046d380
cmp byte [ebp + 0x3b], 0
je 0x448a01
add dword [ebp + 0x50], edi
mov ecx, dword [ebp]
adc dword [ebp + 0x54], ecx
xor ecx, ecx
cmp dword [ebp + 0x54], ecx
jl 0x448a26
jg 0x448a0f
cmp dword [ebp + 0x50], ecx
jbe 0x448a26
mov ecx, dword [ebp]
cmp dword [ebp + 0x54], ecx
jg 0x448a24
jl 0x448a1e
cmp dword [ebp + 0x50], edi
ja 0x448a24
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ecx
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
jl 0x448a58
jg 0x448a32
cmp dword [ebp + 0x44], ecx
jbe 0x448a58
cmp dword [ebp + 0x48], edx
jl 0x448a44
jg 0x448a3e
cmp dword [ebp + 0x44], eax
jbe 0x448a44
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
cmp dword [ebp + 0x48], ecx
jg 0x448a58
jl 0x44858e
cmp dword [ebp + 0x44], ecx
jb 0x44858e
push ecx
push ebx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.0046d380
mov dword [ebp - 0x8c], eax
mov edi, edx
lea ecx, [ebp + 0x4c]
call fcn.0042704a
xor esi, esi
cmp dword [ebp + 0x2c], 4
push esi
push ebx
push edi
push dword [ebp - 0x8c]
setge byte [ebp - 0x19]
call fcn.0046d500
mov edi, dword [ebp - 0x40]
push ebx
push esi
add edi, 0x200
push edi
mov dword [ebp - 4], eax
mov dword [ebp], edx
call fcn.0046c4e0
push esi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x1c
cmp eax, dword [ebp - 4]
jne 0x447eb8
cmp edx, dword [ebp]
jne 0x447eb8
push esi
lea eax, [ebp - 0x20]
push eax
push ebx
push edi
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
push edi
push dword [ebp - 0x40]
mov dword [ebp + 0x68], eax
call fcn.0046c720
add esp, 0xc
cmp dword [ebp + 0x68], esi
je 0x447eb8
cmp byte [ebp + 0x58], 0
je 0x448b92
cmp byte [ebp + 0x5a], 0
jne 0x448b92
push edi
call fcn.00429d0d
push 0x40
lea eax, [edi + 0x1be]
push esi
push eax
call fcn.0046c4e0
push ebx
push edi
push dword [ebp - 0x40]
mov word [edi + 0x1fe], 0xaa55
call fcn.0042705d
add esp, 0x1c
test eax, eax
je 0x448b5c
push esi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
push esi
lea eax, [ebp - 0x20]
push eax
push ebx
push edi
push dword [ebp + 0x5c]
mov dword [ebp - 0x20], esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x34], eax
cmp byte [ebp + 0x33], 0
je 0x448b6f
cmp dword [ebp + 0x24], esi
jl 0x448b6f
mov eax, dword [ebp + 0x5c]
call fcn.00429cd4
cmp byte [ebp + 0x59], 0
je 0x448b8a
cmp dword [ebp + 0x24], esi
jl 0x448b8a
lea ecx, [ebp - 0x84]
call fcn.0042704a
jmp 0x449e6f
mov esi, dword [ebp - 0x34]
jmp 0x448c30
cmp byte [ebp + 0x43], 0
jne 0x448ba8
cmp byte [ebp + 0x67], 0
je 0x448bb7
cmp dword [ebp + 0x2c], 1
jle 0x447ca7
cmp byte [ebp + 0x67], 0
je 0x448bb7
cmp dword [ebp + 0x2c], esi
jl 0x447ca7
push dword [ebp + 0x5c]
call fcn.004297d2
lea ecx, [ebp + 0x24]
mov dword [ebp + 0x4c], eax
mov dword [esp], 0x100000
call fcn.0042c29e
cmp dword [ebp - 0x48], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
jl 0x448bff
push dword [ebp + 0x5c]
mov esi, dword [ebp + 0x24]
call fcn.004298e2
pop ecx
push 0
push dword [ebp + 0x4c]
push edx
push eax
call fcn.0046d380
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
xor esi, esi
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 0x24]
push dword [ebp + 0x5c]
call fcn.00429b49
mov ecx, dword [ebp - 0x70]
mov cx, word [ecx]
add esp, 0xc
cmp cx, si
mov dword [ebp - 0x74], eax
jne 0x448c8b
cmp eax, esi
jne 0x448c8f
mov esi, 0x80070057
lea ecx, [ebp + 0x24]
call fcn.0042704a
lea ecx, [ebp - 0x84]
call fcn.0042704a
lea ecx, [ebp + 0x5c]
call fcn.0040296e
push 0x4975fc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x70]
call fcn.0042704a
lea ecx, [ebp - 0xa0]
call fcn.0042704a
lea ecx, [ebp - 0xc0]
call fcn.0042704a
lea ecx, [ebp - 0x108]
call fcn.0042704a
lea ecx, [ebp - 0x50]
call fcn.0042704a
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
cmp eax, esi
je 0x448c93
mov eax, dword [eax]
jmp 0x448c95
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x67]
cmp byte [ebp + 0x67], 0
je 0x448cac
cmp byte [ebp - 0x51], 0
mov byte [ebp + 0x3b], 1
je 0x448cb0
mov byte [ebp + 0x3b], 0
cmp byte [ebp + 0x17], 0
jne 0x448cd8
cmp byte [ebp + 0x58], 0
jne 0x448cd8
cmp byte [ebp + 0x3b], 0
je 0x448cce
cmp byte [ebp + 0x5a], 0
je 0x448c23
jmp 0x448cd8
cmp byte [ebp + 0x5a], 0
jne 0x448c23
cmp cx, si
mov eax, dword [ebp - 0xc8]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x68], eax
jne 0x448d96
xor eax, eax
mov dword [ebp - 0x9c], esi
lea edi, [ebp - 0x98]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x20]
push eax
push 0x18
lea eax, [ebp - 0x9c]
push eax
push esi
push esi
push 0x70000
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0xc4], esi
jg 0x448d52
jl 0x448d3c
cmp dword [ebp - 0xc8], esi
ja 0x448d52
mov eax, dword [ebp - 0x90]
mov dword [ebp + 0x3c], eax
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xcc], esi
jg 0x448d7a
jl 0x448d64
cmp dword [ebp - 0xd0], esi
ja 0x448d7a
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x60], eax
cdq
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 8], esi
jg 0x448d96
jl 0x448d86
cmp dword [ebp - 0xc], esi
ja 0x448d96
mov eax, dword [ebp - 0x88]
mov dword [ebp + 0x68], eax
cdq
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 0xc4], esi
jg 0x448daf
jl 0x448da8
cmp dword [ebp - 0xc8], esi
ja 0x448daf
mov dword [ebp + 0x3c], 0xff
cmp dword [ebp - 0xcc], esi
jg 0x448dc8
jl 0x448dc1
cmp dword [ebp - 0xd0], esi
ja 0x448dc8
mov dword [ebp + 0x60], 0x3f
cmp dword [ebp - 8], esi
jg 0x448dd7
jl 0x448dd4
cmp dword [ebp - 0xc], esi
ja 0x448dd7
mov dword [ebp + 0x68], ebx
mov eax, dword [ebp + 0x68]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
cmp byte [ebp + 0x3b], 0
mov esi, dword [ebp + 0x4c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x24]
lea ebx, [eax + esi]
lea eax, [ebx + esi + 0x10000]
mov dword [ebp + 0x18], eax
jne 0x449644
cmp byte [ebp + 0x5a], 0
jne 0x449644
cmp byte [ebp + 0x39], 0
mov byte [ebp + 0x17], 0
jne 0x449246
mov esi, dword [ebp + 0x54]
xor eax, eax
cmp esi, eax
jg 0x448e40
jl 0x448e2c
cmp dword [ebp + 0x50], eax
jae 0x448e40
cmp dword [ebp + 0x48], eax
jl 0x449246
jg 0x448e40
cmp dword [ebp + 0x44], eax
jb 0x449246
mov ebx, dword [ebp + 0x2c]
cmp ebx, eax
jl 0x449246
push 0x100000
lea ecx, [ebp + 0x18]
call fcn.0042c29e
mov eax, dword [ebp + 0x68]
imul eax, dword [ebp + 0x60]
cdq
idiv edi
mov edi, eax
mov eax, dword [ebp + 0x3c]
imul eax, edi
cmp dword [ebp + 0x68], 0
cdq
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
jle 0x448eba
mov eax, dword [ebp - 0x70]
cmp word [eax], 0
jne 0x448ec7
and dword [ebp - 0x74], 0
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x5c]
call fcn.00429b49
add esp, 0xc
test eax, eax
jne 0x448eaa
lea ecx, [ebp + 0x18]
call fcn.0042704a
xor esi, esi
inc esi
jmp 0x448c28
cmp ebx, 4
jl 0x448ec7
cmp byte [ebp + 0x6e], 0
jne 0x448ec7
cmp ebx, dword [ebp - 0x74]
jl 0x448ec7
lea ecx, [ebp + 0x18]
call fcn.0042704a
jmp 0x448c23
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x448f4d
jg 0x448ed6
cmp dword [ebp + 0x50], edx
jbe 0x448f4d
mov ecx, dword [ebp - 0x68]
and ecx, dword [ebp - 0x64]
cmp ecx, 0xffffffff
jne 0x448f03
cmp esi, dword [ebp - 8]
jl 0x448efe
jg 0x448ef0
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp - 0xc]
jb 0x448efe
cmp byte [ebp - 0x19], 0
jne 0x448efe
push dword [ebp - 8]
push dword [ebp - 0xc]
jmp 0x448f39
mov eax, edi
cdq
jmp 0x448f37
cmp byte [ebp - 0x18], 0
jne 0x448f4d
mov eax, dword [ebp + 0x68]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x68]
mov edi, edx
adc edi, dword [ebp - 0x64]
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.0046d380
mov ecx, eax
mov eax, dword [ebp - 0x48]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.0046d500
push edx
push eax
push esi
push dword [ebp + 0x50]
call fcn.00429c1e
add esp, 0x10
add dword [ebp + 0x50], eax
adc esi, edx
mov dword [ebp + 0x54], esi
xor ecx, ecx
cmp dword [ebp + 0x48], ecx
jl 0x448f79
jg 0x448f5b
cmp dword [ebp + 0x44], ecx
jbe 0x448f79
cmp byte [ebp - 0x53], 0
jne 0x448f79
sub dword [ebp + 0x44], eax
sbb dword [ebp + 0x48], edx
cmp dword [ebp + 0x48], ecx
jg 0x448f79
jl 0x448f73
cmp dword [ebp + 0x44], ecx
jae 0x448f79
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x48], ecx
cmp esi, ecx
jl 0x448f8b
jg 0x448f84
cmp dword [ebp + 0x50], ecx
jbe 0x448f8b
mov edi, dword [ebp + 0x50]
mov ebx, esi
jmp 0x448f8f
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x48], 0
jl 0x44901e
jg 0x448fa1
cmp dword [ebp + 0x44], 0
jbe 0x44901e
mov eax, dword [ebp - 0x5c]
and eax, dword [ebp - 0x58]
cmp eax, 0xffffffff
jne 0x448fc1
push dword [ebp - 8]
add edi, dword [ebp + 0x44]
push dword [ebp - 0xc]
adc ebx, dword [ebp + 0x48]
push ebx
push edi
call fcn.0046e7f0
jmp 0x449018
cmp byte [ebp - 0x18], 0
jne 0x44901e
mov eax, dword [ebp + 0x68]
cdq
mov esi, eax
add eax, dword [ebp - 0x5c]
mov ecx, edx
adc ecx, dword [ebp - 0x58]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x88], edx
call fcn.0046d380
push dword [ebp - 0x88]
push esi
push edx
push eax
call fcn.0046d500
push 0
push 0x200
push edx
push eax
call fcn.0046d380
add edi, dword [ebp + 0x44]
push edx
adc ebx, dword [ebp + 0x48]
push eax
push ebx
push edi
call fcn.0046e7f0
mov esi, dword [ebp + 0x54]
sub dword [ebp + 0x44], eax
sbb dword [ebp + 0x48], edx
cmp dword [ebp - 0xac], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x5b], 0
jl 0x449148
jg 0x449046
cmp dword [ebp - 0xb0], 0
jbe 0x449148
mov ecx, dword [ebp + 0x44]
sub ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp + 0x48]
sbb edi, dword [ebp - 0x24]
add ecx, dword [ebp + 0x50]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.0046d380
and dword [ebp - 0x94], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x3c]
lea edi, [ebp - 0x90]
push dword [ebp + 0x60]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0xf0]
lea eax, [ebp + 0x5b]
push eax
lea eax, [ebp + 0x67]
push eax
lea eax, [ebp + 0x6f]
push eax
push dword [ebp - 0xec]
mov dword [ebp - 0xb0], ebx
push edi
mov dword [ebp - 0xac], edx
call fcn.00429c48
mov al, byte [ebp + 0x67]
add esp, 0x20
push 1
push dword [ebp + 0x3c]
mov byte [ebp - 0x93], al
mov al, byte [ebp + 0x5b]
push dword [ebp + 0x60]
mov byte [ebp - 0x92], al
mov al, byte [ebp + 0x6f]
mov byte [ebp - 0x91], al
lea eax, [ebp + 0x5b]
push eax
lea eax, [ebp + 0x67]
push eax
lea eax, [ebp + 0x6f]
push eax
push 0
push 2
push dword [ebp - 0xec]
mov byte [ebp - 0x94], 0
push edi
call fcn.0046d500
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00429c48
mov al, byte [ebp + 0x67]
mov byte [ebp - 0x8f], al
mov al, byte [ebp + 0x5b]
mov byte [ebp - 0x8e], al
mov al, byte [ebp + 0x6f]
push 1
mov byte [ebp - 0x8d], al
lea eax, [ebp - 0x94]
push eax
push dword [ebp - 0x7c]
mov byte [ebp - 0x90], 5
push dword [ebp - 0x80]
mov dword [ebp - 0x8c], edi
push dword [ebp + 0x5c]
mov dword [ebp - 0x88], ebx
call fcn.004309f5
add esp, 0x34
mov eax, dword [ebp - 0x48]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0046d380
test esi, esi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
jl 0x44918b
jg 0x449176
xor eax, eax
cmp dword [ebp + 0x50], eax
jb 0x44918d
push ebx
push edi
push esi
push dword [ebp + 0x50]
call fcn.0046d380
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
xor eax, eax
jmp 0x449193
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x48], eax
jl 0x4491b4
jg 0x44919f
cmp dword [ebp + 0x44], eax
jb 0x4491b4
push ebx
push edi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0046d380
mov dword [ebp - 0xa4], edx
jmp 0x4491ba
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa8], eax
xor eax, eax
cmp dword [ebp + 0x2c], 4
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
setge al
push eax
push dword [ebp + 0x3c]
lea eax, [ebp - 0x4a]
push dword [ebp + 0x60]
push eax
lea eax, [ebp - 0x52]
push eax
lea eax, [ebp + 8]
push eax
push ebx
push edi
call fcn.00429c48
add esp, 0x20
test esi, esi
jl 0x44920a
jg 0x4491f8
cmp dword [ebp + 0x50], 0
jbe 0x44920a
sub edi, dword [ebp - 0x8c]
sbb ebx, dword [ebp - 0x88]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
mov al, byte [ebp - 0x19]
mov ecx, dword [ebp - 0xa8]
mov byte [ebp + 0x17], al
movsx eax, al
push eax
push dword [ebp + 0x3c]
lea eax, [ebp - 0x17]
push dword [ebp + 0x60]
push eax
lea eax, [ebp - 0x15]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + ecx - 1]
push 0
push eax
call fcn.00429c48
add esp, 0x20
lea ecx, [ebp + 0x18]
call fcn.0042704a
mov ecx, dword [ebp - 0x40]
mov edi, dword [ebp + 0x1c]
mov esi, 0x200
lea eax, [ecx + 0x200]
push esi
push eax
shl edi, 4
push ecx
lea ebx, [eax + edi]
call fcn.0046c720
add esp, 0xc
cmp dword [ebp - 0xac], 0
jl 0x4492ad
jg 0x44927c
cmp dword [ebp - 0xb0], 0
jb 0x4492ad
cmp dword [ebp + 0x1c], 0
jle 0x449296
mov eax, dword [ebp - 0x40]
push edi
add eax, 0x3be
push 0
push eax
call fcn.0046c4e0
add esp, 0xc
push 0x30
pop eax
sub eax, edi
push eax
lea eax, [ebx + 0x1ce]
push 0
push eax
call fcn.0046c4e0
add esp, 0xc
cmp byte [ebp + 0x6e], 0
mov al, byte [ebx + 0x1c2]
jne 0x4492cf
cmp byte [ebp + 0x43], 2
jge 0x4492cf
cmp al, 5
je 0x448c23
cmp al, 0xf
je 0x448c23
cmp byte [ebp + 0x6e], 0
mov ecx, dword [ebx + 0x1c6]
mov edi, dword [ebx + 0x1ca]
jne 0x44933e
test al, al
je 0x44933e
xor eax, eax
cmp dword [ebp + 0x20], eax
je 0x449340
cmp byte [ebp + 0x43], 2
jge 0x449340
cmp byte [ebp - 0x19], al
jne 0x449340
cmp dword [ebp + 0x54], eax
jl 0x449317
jg 0x449303
cmp dword [ebp + 0x50], eax
jb 0x449317
cmp dword [ebp - 0x14], ecx
jne 0x448c23
cmp dword [ebp - 0x10], eax
jne 0x448c23
xor eax, eax
cmp dword [ebp + 0x48], eax
jl 0x449340
jg 0x449323
cmp dword [ebp + 0x44], eax
jb 0x449340
cmp dword [ebp - 0xa8], edi
jne 0x449333
cmp dword [ebp - 0xa4], eax
je 0x44933e
xor eax, eax
cmp edi, eax
je 0x449340
jmp 0x448c23
xor eax, eax
cmp byte [ebp + 0x39], 0
je 0x44935c
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov edx, dword [ebp + 0x20]
cmp edx, eax
jl 0x449369
mov byte [ebx + 0x1c2], dl
mov edx, dword [ebp + 4]
cmp dx, ax
jl 0x449377
mov byte [ebx + 0x1be], dl
cmp dword [ebp + 0x54], eax
jg 0x44939f
jl 0x449383
cmp dword [ebp + 0x50], eax
jae 0x44939f
cmp dword [ebp + 0x48], eax
jl 0x449412
jg 0x449393
cmp dword [ebp + 0x44], eax
jb 0x449412
mov eax, dword [ebp - 0xa8]
lea eax, [eax + ecx - 1]
jmp 0x4493b2
cmp dword [ebp + 0x48], eax
jg 0x4493d6
jl 0x4493ab
cmp dword [ebp + 0x44], eax
jae 0x4493d6
mov eax, dword [ebp - 0x14]
lea eax, [eax + edi - 1]
movsx ecx, byte [ebp + 0x17]
push ecx
push dword [ebp + 0x3c]
lea ecx, [ebp - 0x17]
push dword [ebp + 0x60]
push ecx
lea ecx, [ebp - 0x15]
push ecx
lea ecx, [ebp - 0x38]
push ecx
push 0
push eax
call fcn.00429c48
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x54], eax
jl 0x449406
jg 0x4493e2
cmp dword [ebp + 0x50], eax
jb 0x449406
mov cl, byte [ebp - 0x52]
mov byte [ebx + 0x1bf], cl
mov cl, byte [ebp - 0x4a]
mov byte [ebx + 0x1c0], cl
mov cl, byte [ebp + 8]
mov byte [ebx + 0x1c1], cl
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0x1c6], ecx
cmp dword [ebp + 0x48], eax
jg 0x44941e
jl 0x449412
cmp dword [ebp + 0x44], eax
jae 0x44941e
cmp dword [ebp + 0x54], eax
jl 0x449439
jg 0x44941e
cmp dword [ebp + 0x50], eax
jb 0x449439
mov cl, byte [ebp - 0x15]
mov byte [ebx + 0x1c3], cl
mov cl, byte [ebp - 0x17]
mov byte [ebx + 0x1c4], cl
mov cl, byte [ebp - 0x38]
mov byte [ebx + 0x1c5], cl
cmp dword [ebp + 0x48], eax
jl 0x449451
jg 0x449445
cmp dword [ebp + 0x44], eax
jb 0x449451
mov ecx, dword [ebp - 0xa8]
mov dword [ebx + 0x1ca], ecx
cmp dword [ebp + 0x20], eax
jge 0x449474
cmp word [ebp + 4], ax
jge 0x449474
cmp dword [ebp + 0x54], eax
jg 0x449474
jl 0x449468
cmp dword [ebp + 0x50], eax
jae 0x449474
cmp dword [ebp + 0x48], eax
jl 0x44948b
jg 0x449474
cmp dword [ebp + 0x44], eax
jb 0x44948b
mov ecx, dword [ebp - 0x40]
add ecx, 0x200
mov byte [ecx + 0x1fe], 0x55
mov byte [ecx + 0x1ff], 0xaa
cmp word [ebp + 4], ax
jge 0x4494c4
cmp dword [ebp + 0x20], eax
jge 0x4494c4
cmp dword [ebp + 0x54], eax
jg 0x4494c4
jl 0x4494a2
cmp dword [ebp + 0x50], eax
jae 0x4494c4
cmp dword [ebp + 0x48], eax
jg 0x4494c4
jl 0x4494ae
cmp dword [ebp + 0x44], eax
jae 0x4494c4
mov eax, dword [ebp - 0x40]
add eax, 0x200
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov edi, dword [ebp - 4]
xor ebx, ebx
push ebx
push dword [ebp]
push edi
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
cmp eax, edi
jne 0x448ea2
cmp edx, dword [ebp]
jne 0x448ea2
or edi, dword [ebp]
mov edi, dword [ebp - 0x40]
mov dword [ebp + 0x68], 1
jne 0x449506
lea eax, [edi + 0x200]
push eax
call fcn.00429d0d
pop ecx
push esi
lea eax, [edi + 0x200]
push eax
push edi
call fcn.0042c6c7
add esp, 0xc
test eax, eax
jne 0x449548
mov edi, dword [ebp + 0x5c]
push ebx
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x40]
push 0x200
add eax, 0x200
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x68], eax
call fcn.00429cc2
mov edi, dword [ebp - 0x40]
mov esi, 0x200
cmp dword [ebp + 0x54], ebx
jl 0x44961c
jg 0x44955c
cmp dword [ebp + 0x50], esi
jb 0x44961c
cmp dword [ebp + 0x48], ebx
jl 0x44961c
jg 0x449570
cmp dword [ebp + 0x44], esi
jbe 0x44961c
cmp byte [ebp - 0x41], 0
je 0x44961c
push esi
lea eax, [edi + 0x200]
push ebx
push eax
mov dword [ebp + 8], eax
call fcn.0046c4e0
add esp, 0xc
push ebx
push esi
push dword [ebp + 0x54]
push dword [ebp + 0x50]
call fcn.0046d500
push ebx
push edx
push eax
push dword [ebp + 0x5c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
call fcn.00427e7e
add esp, 0x10
cmp eax, dword [ebp - 0x80]
jne 0x449619
cmp edx, dword [ebp - 0x7c]
jne 0x449619
push ebx
lea eax, [ebp - 0x20]
push eax
push esi
push edi
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
mov dword [ebp + 0x68], eax
je 0x449619
cmp dword [ebp - 0x20], esi
jne 0x449619
push esi
push dword [ebp + 8]
push edi
call fcn.0042c6c7
add esp, 0xc
test eax, eax
jne 0x44961c
push ebx
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
cmp eax, dword [ebp - 0x80]
jne 0x449619
cmp edx, dword [ebp - 0x7c]
jne 0x449619
push ebx
lea eax, [ebp - 0x20]
push eax
push esi
push dword [ebp + 8]
push dword [ebp + 0x5c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x68], eax
jmp 0x44961c
mov dword [ebp + 0x68], ebx
cmp byte [ebp + 0x33], 0
je 0x44962a
mov eax, dword [ebp + 0x5c]
call fcn.00429cd4
cmp byte [ebp + 0x59], 0
jne 0x449e54
xor esi, esi
cmp dword [ebp + 0x68], ebx
jne 0x448c28
jmp 0x448ea4
cmp byte [ebp + 0x39], 0
je 0x44964e
mov byte [ebp + 0xf], 0
cmp byte [ebp + 0x67], 0
je 0x449665
cmp byte [ebp + 0x58], 0
jne 0x449665
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x68], eax
jmp 0x44966c
mov dword [ebp + 0x68], 0x80
cmp byte [ebp - 0x49], 0
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
je 0x449696
add eax, dword [ebp + 0x50]
push 0
adc ecx, dword [ebp + 0x54]
xor edi, edi
inc edi
sub eax, edi
pop edx
sbb ecx, edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
jmp 0x44969b
xor edi, edi
inc edi
xor edx, edx
cmp byte [ebp + 0x58], 0
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
je 0x4496e8
cmp dword [ebp + 0x54], edx
jg 0x4496b9
jl 0x4496b3
cmp dword [ebp + 0x50], edi
jae 0x4496b9
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
cmp eax, edx
mov dword [ebp - 0x24], eax
jg 0x4496e0
jl 0x4496d0
cmp dword [ebp - 0x14], edi
jae 0x4496e0
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
sub eax, edi
sbb ecx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
jmp 0x4496ec
xor eax, eax
xor ecx, ecx
lea edx, [ebp - 0x28]
push edx
push ecx
push eax
push esi
push dword [ebp + 0x68]
lea eax, [ebp + 0x5c]
push dword [ebp + 0x24]
push eax
call fcn.00430474
add esp, 0x1c
cmp byte [ebp + 0x67], 0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
jne 0x44971c
or eax, edx
jne 0x44971c
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], edi
mov eax, dword [ebp + 0x68]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp + 0x2c]
cmp edi, eax
jae 0x44974c
cmp dword [ebp + 0x34], eax
jge 0x44974c
mov ecx, edi
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x4848b0
push ecx
call fcn.0042705d
add esp, 0xc
test eax, eax
jne 0x449750
and dword [ebp - 0x38], 0
cmp byte [ebp + 0x58], 0
je 0x4498f4
cmp edi, dword [ebp + 0x68]
jae 0x448c23
lea eax, [ebx + esi]
mov edi, eax
mov eax, dword [ebp + 0x68]
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x4497a0
mov dword [ebp + 8], eax
push 0x1b3
push 0
push edi
call fcn.0046c4e0
push 0x4a
lea eax, [edi + 0x1b4]
push 0
push eax
call fcn.0046c4e0
add esp, 0x18
add edi, esi
dec dword [ebp + 8]
jne 0x449779
push 0x5c
pop edi
push edi
push 0
push ebx
call fcn.0046c4e0
push 8
push str.EFI_PART
push ebx
call fcn.0046c720
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x1c], edx
adc edx, 0
add ecx, 0xffffffe0
mov dword [ebx + 0x24], eax
adc eax, 0xffffffff
mov dword [ebx + 0x34], eax
lea eax, [ebx + 0x38]
mov dword [ebx + 0x30], ecx
mov ecx, dword [eax]
or ecx, dword [eax + 4]
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x2c], edx
jne 0x449813
push 0x10
push 0x4875e8
push eax
call fcn.0046c720
add esp, 0xc
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
add eax, 1
push edi
mov dword [ebx + 0x48], eax
mov eax, 0x80
push ebx
push dword [ebp + 0x18]
adc ecx, 0
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.0046c720
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebp + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x24], ecx
mov eax, dword [ebp + 0x24]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0046c4e0
add esp, 0x18
cmp dword [ebp - 0x10], 0
jg 0x449880
jl 0x449878
cmp dword [ebp - 0x14], 1
jae 0x449880
or dword [ebp - 0x14], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x24]
push 1
push dword [ebp + 0x3c]
shl eax, 4
push dword [ebp + 0x60]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x54]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x50]
call fcn.00429c48
push 1
push dword [ebp + 0x3c]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x60]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.00429c48
mov eax, dword [ebp + 0x50]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0x14]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x449c0f
cmp byte [ebp - 0x16], 0
je 0x449902
test edi, edi
jl 0x449c0f
cmp byte [ebp + 0x6e], 0
je 0x44995d
or dword [ebp + 0x2c], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x68], edi
mov byte [ebp + 0xf], 0
jbe 0x44995d
lea eax, [ebx + esi]
mov dword [ebp - 0x48], eax
push 0x10
push 0x4848b0
push dword [ebp - 0x48]
call fcn.0042705d
add esp, 0xc
test eax, eax
je 0x449942
add dword [ebp - 0x48], 0x80
inc edi
cmp edi, dword [ebp + 0x68]
jb 0x44991d
jmp 0x44995d
mov dword [ebp + 0x2c], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0046c4e0
add esp, 0xc
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x34]
cmp dword [ebp + 0x2c], eax
jae 0x448c23
cmp dword [ebp + 0x34], eax
jge 0x448c23
cmp byte [ebp + 0xf], 0
je 0x449a80
xor ecx, ecx
cmp byte [ebp + 0x67], cl
je 0x4499d5
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x68]
jae 0x4499d5
mov edx, dword [eax]
cmp edx, dword [ebp + 0x50]
jne 0x44999e
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x54]
je 0x4499a6
inc ecx
add eax, 0x80
jmp 0x44998a
mov eax, dword [ebp + 0x4c]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x2c]
mov esi, 0x4848b0
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 0x4499d2
push 0x80
push 0
push eax
call fcn.0046c4e0
add esp, 0xc
mov esi, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x2c]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x4848b0
push eax
mov dword [ebp + 8], eax
call fcn.0042705d
add esp, 0xc
test eax, eax
je 0x449a6a
mov esi, dword [ebp + 0x2c]
inc esi
cmp esi, dword [ebp + 0x68]
mov dword [ebp + 0x1c], esi
jae 0x448c23
shl esi, 7
add esi, edi
mov edi, dword [ebp + 0x1c]
push 0x10
push 0x4848b0
push esi
call fcn.0042705d
add esp, 0xc
test eax, eax
je 0x449a34
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x68]
mov dword [ebp + 0x1c], edi
jb 0x449a0f
jmp 0x449a5b
cmp edi, dword [ebp + 0x2c]
jle 0x449a5b
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x4c]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x1c]
sub eax, dword [ebp + 0x2c]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x449a4c
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x1c], eax
jae 0x448c23
mov esi, dword [ebp + 0x4c]
push 0x80
push 0
push dword [ebp + 8]
call fcn.0046c4e0
add esp, 0xc
and dword [ebp - 0x38], 0
mov eax, dword [ebp + 0x34]
xor ecx, ecx
cmp eax, ecx
jge 0x449ba0
cmp dword [ebp - 0x38], ecx
jne 0x449ab9
xor eax, eax
inc eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xdc], ecx
jle 0x449add
mov edi, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x4c]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x100]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x4c]
xor ecx, ecx
cmp dword [ebp - 0xd8], ecx
jle 0x449b03
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x4c]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x118]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x4c]
xor ecx, ecx
cmp dword [ebp - 0xe4], ecx
jle 0x449b22
mov edx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x50]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x20], edi
mov edi, dword [ebp + 0x54]
mov dword [edx + eax + 0x24], edi
cmp dword [ebp - 0xe8], ecx
jle 0x449b41
mov edx, dword [ebp + 0x2c]
mov edi, dword [ebp - 0x14]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0x10]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0xe0], ecx
jle 0x449b65
mov eax, dword [ebp + 0x2c]
mov edx, dword [ebp - 0xb8]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0xb4]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0xd4], ecx
jle 0x449be9
mov eax, dword [ebp - 0x6c]
cmp word [eax], 0
je 0x449be9
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x4c]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0046c4e0
add esp, 0xc
push 0x24
push dword [ebp - 0x6c]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x449be9
cmp eax, dword [ebp + 0x2c]
je 0x449be9
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x4c]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x1fc]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x34]
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 + 0x34]
cmp dword [ebp + 0x2c], eax
push 0x20
pop ecx
lea esi, [ebp - 0x1fc]
rep movsd dword es:[edi], dword [esi]
jge 0x449be9
mov dword [ebp + 0x2c], eax
cmp byte [ebp + 0x39], 0
je 0x449c0c
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x4c]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0046c4e0
add esp, 0xc
mov esi, dword [ebp + 0x4c]
xor edi, edi
cmp byte [ebp - 0x16], 0
mov dword [ebp - 0x74], edi
je 0x449d05
cmp byte [ebp + 0x58], 0
jne 0x449d05
cmp dword [ebp + 0x68], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x3c], edi
jle 0x449d05
lea eax, [ebx + esi]
mov dword [ebp + 0x60], eax
mov dword [ebp + 4], eax
push 0x10
push 0x4848b0
push dword [ebp + 0x60]
call fcn.0042705d
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x449c68
mov ecx, dword [ebp + 0x3c]
cmp ecx, dword [ebp + 0x1c]
jne 0x449c68
and dword [ebp + 8], 0
jmp 0x449c6f
mov dword [ebp + 8], 1
and dword [ebp - 0x6c], 0
test al, al
jne 0x449ca9
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x1c]
je 0x449c9f
mov esi, dword [ebp + 0x60]
push 0x10
push esi
push esi
call fcn.0042c6c7
mov edi, dword [ebp + 4]
add esp, 0xc
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x6c], eax
inc dword [ebp + 0x1c]
add dword [ebp + 4], 0x80
cmp dword [ebp + 8], 0
je 0x449ce2
mov eax, dword [ebp + 0x60]
lea ecx, [eax + 0x80]
jmp 0x449cc3
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x449cc9
cmp eax, ecx
jb 0x449cba
jmp 0x449cd0
mov dword [ebp - 0x6c], 1
push 0x80
push 0
push dword [ebp + 0x60]
call fcn.0046c4e0
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x449cef
mov edi, dword [ebp + 0x3c]
inc edi
mov dword [ebp - 0x74], edi
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
add dword [ebp + 0x60], 0x80
cmp eax, dword [ebp + 0x68]
jl 0x449c40
push dword [ebp + 0x24]
call fcn.00429d0d
lea eax, [ebx - 0x174]
push eax
call fcn.00429d0d
mov eax, dword [ebp + 0x2c]
cmp edi, eax
pop ecx
pop ecx
jg 0x449d25
lea edi, [eax + 1]
cmp byte [ebp + 0x58], 0
je 0x449d2e
mov edi, dword [ebp + 0x68]
mov eax, dword [ebp + 0x68]
shl eax, 7
push 0
push eax
lea eax, [ebx + esi]
shl edi, 7
push eax
mov dword [ebp + 8], edi
call fcn.00435492
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x58], eax
mov dword [ecx + 0x58], eax
mov edi, dword [ebx + 0xc]
and dword [ebx + 0x10], 0
add esp, 0xc
cmp edi, 0x20000
ja 0x448c23
push 0
push edi
push ebx
call fcn.00435492
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 0x18]
and dword [eax + 0x10], 0
push 0
push edi
push eax
call fcn.00435492
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp + 8]
xor edx, edx
lea eax, [esi + eax - 1]
div esi
add esp, 0x18
mov edi, eax
imul edi, esi
cmp byte [ebp + 0x58], 0
je 0x449dbc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
push esi
push dword [ebp + 0x24]
lea ecx, [ebp + 0x5c]
call fcn.00426f69
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.0046d500
push edx
push eax
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
lea eax, [esi + edi]
push eax
push ebx
lea ecx, [ebp + 0x5c]
call fcn.00426f69
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.0046d500
push edx
push eax
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x5c]
call fcn.00426f69
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0046d500
push edx
push eax
push dword [ebp + 0x5c]
call fcn.00427e7e
add esp, 0x10
push esi
push dword [ebp + 0x18]
lea ecx, [ebp + 0x5c]
call fcn.00426f69
cmp byte [ebp + 0x33], 0
je 0x449e4e
mov eax, dword [ebp + 0x5c]
call fcn.00429cd4
cmp byte [ebp + 0x59], 0
je 0x449ea5
lea ecx, [ebp + 0x24]
call fcn.0042704a
lea ecx, [ebp - 0x84]
call fcn.0042704a
lea ecx, [ebp + 0x5c]
call fcn.0040296e
xor eax, eax
test byte [ebp + 0x59], 0x20
jne 0x449e7d
cmp dword [ebp - 0x60], 0xc
je 0x449e91
push 1
push eax
push dword [ebp + 0x10]
call fcn.0042fe3f
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x3a], 0x10
mov esi, eax
je 0x448c3b
mov esi, dword [ebp - 0x34]
jmp 0x448c3b
xor esi, esi
jmp 0x448c28