Function at 0x44720a
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.00427312
pop ecx
push 5
lea ecx, [ebp - 0x50]
call fcn.0042c827
push 0x14
lea ecx, [ebp - 0x108]
call fcn.0042c827
lea ecx, [ebp - 0xc0]
call fcn.0042c809
lea ecx, [ebp - 0xa0]
call fcn.0042c809
lea ecx, [ebp - 0x70]
call fcn.0042c809
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 + 0x20], 0xfffc0000
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x18], esi
mov dword [ebp + 4], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], 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 + 0x37], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x17], 0
mov byte [ebp - 0x51], 0
mov byte [ebp + 0x4f], 0
call fcn.0042ec20
mov eax, dword [ebp - 0xa0]
mov word [eax], si
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x4472fd
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.0042ec20
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 + 0x3f], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp - 0x41], 0
mov byte [ebp + 0x36], 0
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x53], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x59], 0
mov byte [ebp + 0x4e], 0
mov byte [ebp + 0x5a], 0
mov byte [ebp - 0x16], 0
mov byte [ebp + 0xf], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x68], esi
mov byte [ebp - 0x38], 0
mov dword [ebp + 0x30], 0xfffff000
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x74], ebx
je 0x4479f7
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447383
or byte [ebp + 0x3f], 1
jmp 0x447985
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4473a3
or byte [ebp + 0x3f], 2
jmp 0x447985
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4473c3
or byte [ebp + 0x1a], 1
jmp 0x447985
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4473e3
or byte [ebp + 0x1a], 2
jmp 0x447985
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.0042e2da
add esp, 0xc
test al, al
jne 0x4479b1
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0042e2da
add esp, 0xc
test al, al
jne 0x447985
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447439
or dword [ebp + 0x68], 1
jmp 0x447985
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x44745b
or dword [ebp + 0x68], 2
jmp 0x447985
push 5
lea eax, [ebp + 0x78]
push eax
push 0x487774
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x44747b
or dword [ebp + 0x68], 0x10
jmp 0x447985
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x44749a
or dword [ebp + 0x68], edi
jmp 0x447985
push 3
lea eax, [ebp + 0x78]
push eax
push 0x487768
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4474ba
mov byte [ebp + 0x59], 1
jmp 0x447985
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4474d9
mov byte [ebp + 0x4e], 1
jmp 0x447985
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4474f9
mov byte [ebp + 0x4e], 0x21
jmp 0x447985
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447518
mov byte [ebp + 0x5a], 1
jmp 0x447985
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447537
mov byte [ebp - 0x51], 1
jmp 0x447985
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447556
mov byte [ebp - 0x16], 1
jmp 0x447985
push 6
lea eax, [ebp + 0x78]
push eax
push 0x483ee0
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447576
mov byte [ebp + 0x17], 1
jmp 0x447985
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x487738
call fcn.00428263
add esp, 0xc
test al, al
je 0x4475f9
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x4475a9
cmp ax, 0x3d
je 0x4475a9
call fcn.00402a89
test al, al
je 0x4475f9
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0x48], esi
je 0x4475be
mov dword [ebp + 0x38], 0x487730
jmp 0x4475ea
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
mov eax, dword [eax]
mov dword [ebp + 0x38], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00403c83
mov eax, dword [ebp + 0x78]
cmp word [eax], si
pop ecx
pop ecx
je 0x4475ea
mov word [eax], si
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
pop ecx
jmp 0x447985
push 4
push edi
push str._pbr
call fcn.00428263
add esp, 0xc
test al, al
je 0x44765b
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x447629
cmp ax, 0x3d
je 0x447629
call fcn.00402a89
test al, al
je 0x44765b
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp + 0x38], esi
push eax
je 0x447648
mov dword [ebp + 0x48], 0x481512
call fcn.00403c83
pop ecx
jmp 0x4475ea
add dword [ebp + 0x78], 2
call fcn.00427312
mov eax, dword [eax]
mov dword [ebp + 0x48], eax
jmp 0x4475d0
push 9
push edi
push str._alignend
call fcn.00428263
add esp, 0xc
test al, al
je 0x4476e2
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, si
je 0x44768b
cmp ax, 0x3d
je 0x44768b
call fcn.00402a89
test al, al
je 0x4476e2
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x4476d3
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x447969
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x60], ecx
call fcn.004309e1
cmp dword [ebp - 0x58], esi
pop ecx
pop ecx
jg 0x447969
jl 0x4476d3
cmp dword [ebp - 0x5c], esi
ja 0x447969
mov dword [ebp - 0x5c], 0xfffffffe
mov dword [ebp - 0x58], ebx
jmp 0x447969
push 6
push edi
push str._align
call fcn.00428263
add esp, 0xc
test al, al
je 0x44777f
add edi, 0xc
xor eax, eax
mov ax, word [edi]
cmp ax, si
je 0x447716
cmp ax, 0x3d
je 0x447716
call fcn.00402a89
test al, al
je 0x44777f
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], edi
call fcn.00403c83
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x44773e
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
jmp 0x447985
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x447985
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x60], ecx
call fcn.004309e1
cmp dword [ebp - 0x64], esi
pop ecx
pop ecx
jg 0x447985
jl 0x447733
cmp dword [ebp - 0x68], esi
ja 0x447985
jmp 0x447733
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x44779f
mov byte [ebp - 0x41], 1
jmp 0x447985
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4832e0
call fcn.0042e2da
add esp, 0xc
test al, al
jne 0x447981
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0042e2da
add esp, 0xc
test al, al
jne 0x447981
push edi
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x4477fa
or dword [ebp + 0x68], 0x20
mov byte [ebp - 0x18], 1
jmp 0x447985
push 6
push dword [ebp + 0x78]
push 0x487704
call fcn.00428263
add esp, 0xc
test al, al
je 0x447840
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f0d0
test eax, eax
pop ecx
pop ecx
jl 0x447836
cmp dword [ebp + 0x30], 1
jl 0x447836
cmp dword [ebp + 0x30], edi
jle 0x447985
mov esi, 0x80070057
jmp 0x449010
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.00428263
add esp, 0xc
test al, al
je 0x4478dc
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x60], edi
call fcn.00403cc8
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040efef
add esp, 0xc
test al, al
je 0x44789a
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004309e1
pop ecx
pop ecx
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
jne 0x4478b9
add dword [ebp + 0x60], 2
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004309e1
pop ecx
pop ecx
mov eax, dword [ebp + 0x60]
cmp word [eax], 0x3a
jne 0x447985
add dword [ebp + 0x60], 2
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x60]
push eax
call fcn.004309e1
jmp 0x44797b
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.00428263
add esp, 0xc
test al, al
jne 0x447991
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.00428263
add esp, 0xc
test al, al
je 0x447938
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x6c], 0x42
call fcn.0042f0d0
mov al, byte [ebp - 0x6c]
add esp, 0xc
mov byte [ebp - 0x38], al
jmp 0x447985
push edi
push dword [ebp + 0x78]
push str._iv
call fcn.00428263
add esp, 0xc
test al, al
je 0x447960
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f0d0
jmp 0x44797b
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x447991
lea eax, [ebp + 0x78]
push eax
call fcn.00403c83
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
pop ecx
jmp 0x4475f3
mov byte [ebp + 0x36], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], si
jne 0x447363
cmp dword [ebp - 0x5c], 0xfffffffe
jne 0x4479ec
cmp dword [ebp - 0x58], ebx
jne 0x4479ec
mov eax, dword [ebp - 0x68]
cmp eax, 0xfffffff7
jne 0x4479e3
cmp dword [ebp - 0x64], ebx
jne 0x4479e3
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
jmp 0x4479f7
push str.21:INDATA
lea ecx, [ebp - 0x34]
call fcn.004365ba
push dword [ebp + 0x78]
lea ecx, [ebp - 0x34]
call fcn.0042c877
push dword [ebp - 0x34]
mov ecx, dword [ebp + 0x1c]
call fcn.0041d2d9
lea ecx, [ebp - 0x34]
mov esi, eax
call fcn.00427365
jmp 0x449010
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x68], 0xfffffff7
jne 0x447a01
cmp dword [ebp - 0x64], ebx
jne 0x447a01
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x64], esi
cmp dword [ebp - 0x5c], 0xfffffff7
jne 0x447a18
cmp dword [ebp - 0x58], ebx
jne 0x447a18
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.0042e2da
add esp, 0xc
test al, al
je 0x447a84
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4876c4
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447a4d
mov byte [ebp + 0x6f], 1
jmp 0x447a84
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447a69
mov byte [ebp + 0x6f], 2
jmp 0x447a84
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4876b8
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447a84
mov byte [ebp + 0x6f], 3
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4876b0
mov byte [ebp + 0x35], 0
call fcn.0042e2da
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x447aa8
mov byte [ebp + 0x4f], 1
mov dword [ebp + 0x28], edi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447ac6
mov byte [ebp + 0x35], 1
mov dword [ebp + 0x28], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0042e2da
add esp, 0xc
test al, al
je 0x447ae4
mov byte [ebp + 0x35], 0x10
mov dword [ebp + 0x28], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00403c83
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xc0]
call fcn.0042c92f
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x447b2b
mov dword [ebp + 4], 0x80
jmp 0x447b42
cmp ax, 0x2d
jne 0x447b4c
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x447b4c
mov dword [ebp + 4], esi
lea eax, [ebp + 0x78]
push eax
call fcn.00403c83
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 0x447c31
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f0d0
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x447c57
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0040efef
add esp, 4
test al, al
jne 0x447c57
mov ecx, edx
mov byte [ebp - 0x53], 1
mov dword [ebp + 0x78], ecx
jmp 0x447c57
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043ba6e
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0xdc], eax
jne 0x447c54
xor esi, esi
jmp 0x449005
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x447c67
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp + 0x37], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x447c78
lea eax, [ebp + 0x78]
push eax
call fcn.00403cc8
jmp 0x447c8c
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ac8
pop ecx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x49], 1
jne 0x447ca3
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x49], 0
cmp word [eax], 0x2d
jne 0x447cb4
lea eax, [ebp + 0x78]
push eax
call fcn.00403cc8
jmp 0x447cc8
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ac8
pop ecx
mov dword [ebp - 0xe8], eax
cmp byte [ebp + 0x5a], 0
pop ecx
je 0x447cfe
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043ba6e
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004309e1
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 0x447d4c
cmp byte [ebp + 0x5a], 0
je 0x447d4c
cmp cx, si
je 0x447d4c
mov dword [ebp - 0x3c], eax
push esi
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00413796
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 0x447d55
mov dword [ebp + 0x20], esi
mov edi, dword [ebp - 0xc0]
push 5
push edi
push str._img
mov dword [ebp + 0x78], edi
call fcn.00428263
add esp, 0xc
test al, al
je 0x447dc1
lea ecx, [edi + 0xa]
mov edi, ecx
xor edx, edx
jmp 0x447d8e
mov eax, edx
call fcn.00402a89
test al, al
jne 0x447d99
cmp dx, 0x23
je 0x447d99
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
cmp dx, si
jne 0x447d7b
sub ecx, edi
sar ecx, 1
cmp ecx, esi
jle 0x447db2
push ecx
push edi
lea ecx, [ebp - 0x70]
call fcn.0042c92f
mov dword [ebp + 0x20], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00427312
pop ecx
push 2
pop ebx
jmp 0x447dfe
push 2
pop ebx
push ebx
push edi
push 0x487678
call fcn.00428263
add esp, 0xc
test al, al
je 0x447ddd
add edi, 4
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x447e01
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f0d0
pop ecx
pop ecx
mov edi, dword [ebp + 0x78]
mov ax, word [edi]
cmp ax, 0x23
je 0x447e14
cmp ax, 0x3a
jne 0x447ea2
add edi, ebx
push ebx
push edi
push 0x487674
mov dword [ebp + 0x78], edi
call fcn.00428263
push ebx
push edi
push 0x487670
mov byte [ebp + 0x6e], al
call fcn.00428263
add esp, 0x18
cmp byte [ebp + 0x6e], 0
mov byte [ebp + 0x5b], al
jne 0x447e4f
cmp word [edi], 0x2b
jne 0x447e4f
add edi, ebx
mov byte [ebp + 0xf], 1
mov dword [ebp + 0x78], edi
test al, al
jne 0x447e70
mov ax, word [edi]
cmp ax, 0x40
je 0x447e68
cmp ax, 0x2d
je 0x447e68
cmp ax, 0x3d
jne 0x447e70
or dword [ebp + 0x68], ebx
add edi, ebx
mov dword [ebp + 0x78], edi
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0040efef
add esp, 4
test al, al
je 0x447ea2
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f0d0
test eax, eax
pop ecx
pop ecx
jle 0x447ea2
cmp dword [ebp + 0x28], esi
mov byte [ebp + 0x67], 1
jne 0x447ea2
mov byte [ebp + 0x6e], 1
mov eax, dword [ebp - 0x70]
mov esi, dword [ebp + 0x20]
and word [ebp - 0x17c], 0
cmp word [eax], 0
lea edi, [ebp - 0x17c]
mov dword [ebp - 0x48], esi
mov dword [ebp + 0x10], edi
je 0x447ec7
mov edi, eax
mov dword [ebp + 0x10], edi
push dword [ebp + 0x20]
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 0x447f0b
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x60]
add edi, 0x22
push eax
mov dword [ebp - 0x60], edi
call fcn.0042f0d0
mov esi, dword [ebp - 0x48]
pop ecx
pop ecx
cmp byte [ebp + 0x35], 0
jne 0x447f17
cmp byte [ebp + 0x4e], 0
je 0x447f2c
xor edi, edi
cmp dword [ebp + 0x20], edi
jge 0x447f2e
cmp esi, edi
jge 0x447f2e
mov esi, 0x80070057
jmp 0x449005
xor edi, edi
or dword [ebp - 0x60], 0xffffffff
cmp dword [ebp + 0x30], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp - 0x34], edi
jle 0x44801c
cmp byte [ebp + 0x5a], 0
jne 0x44801c
cmp dword [ebp + 0x20], edi
jge 0x447f5c
mov eax, dword [ebp - 0x70]
cmp word [eax], di
je 0x448012
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x30], eax
je 0x448012
cmp eax, 1
jl 0x448012
cmp eax, 4
jg 0x448012
cmp byte [ebp + 0x3f], 2
jl 0x448012
push 6
pop ecx
push dword [ebp + 0x20]
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 0x447fc8
mov eax, ecx
movsx ecx, byte [ebp + 0x59]
push ecx
push dword [ebp + 0x30]
push dword [ebp + 0x28]
push eax
lea eax, [ebp - 0x4b6]
push 0x487630
push eax
call ebx
mov ecx, dword [ebp + 0x1c]
add esp, 0x18
lea eax, [ebp - 0x4cc]
push eax
call fcn.0041d2d9
cmp byte [ebp + 0x4e], 0
mov esi, eax
mov dword [ebp - 0x34], esi
je 0x448ffd
cmp dword [ebp + 0x20], 0
jge 0x44a247
jmp 0x448ffd
mov esi, 0x80070057
jmp 0x448ffd
cmp byte [ebp + 0x35], 0x10
jne 0x44802c
test byte [ebp + 0x4e], 0x20
jne 0x44a231
push 0x600
lea ecx, [ebp - 0x84]
call fcn.0042c6b0
mov eax, dword [ebp - 0x84]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp + 0x38], edi
mov dword [ebp - 0x40], eax
je 0x44831b
cmp dword [ebp + 0x20], edi
jge 0x44806f
mov eax, dword [ebp - 0x70]
cmp word [eax], di
jne 0x44806f
mov esi, 0x80070057
jmp 0x448ff2
mov esi, dword [ebp + 0x38]
mov ebx, 0x1b8
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], edi
cmp word [esi], di
je 0x4481b1
push esi
push 0x48762c
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4481b1
push esi
push 0x483d00
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4481b1
push esi
push 0x487628
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x4480e3
mov dword [ebp + 0x60], 0x4952d0
mov dword [ebp + 0x30], 0x190
jmp 0x4481cd
push esi
push 0x487624
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x448107
mov dword [ebp + 0x60], 0x495460
mov dword [ebp + 0x30], 0x180
jmp 0x4481cd
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x30], edi
cmp word [esi], 0x2a
jne 0x448137
lea eax, [ebp - 0xc]
push eax
inc esi
lea eax, [ebp + 0x38]
inc esi
push eax
mov dword [ebp + 0x38], esi
call fcn.004309e1
mov esi, dword [ebp + 0x38]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x448137
inc esi
inc esi
cmp word [esi], 0x23
jne 0x448175
push esi
lea ecx, [ebp - 0x3c]
call fcn.004365ba
push edi
lea eax, [ebp - 0xbc]
push eax
push 0x483c48
push dword [ebp - 0x3c]
push edi
call fcn.0040f3dc
add esp, 0x14
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x60], eax
call fcn.00427365
mov eax, dword [ebp - 0xb8]
mov dword [ebp + 0x30], eax
jmp 0x44818c
lea eax, [ebp + 0x30]
push eax
push edi
push esi
call fcn.0040a641
add esp, 0xc
mov dword [ebp + 0x60], eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 8], edi
jl 0x4481bb
jg 0x448198
cmp dword [ebp - 0xc], edi
jb 0x4481bb
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x4481bb
jg 0x4481a9
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0xc]
jbe 0x4481bb
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x30], eax
jmp 0x4481bb
mov dword [ebp + 0x60], 0x4955e0
mov dword [ebp + 0x30], ebx
cmp dword [ebp + 0x30], edi
jbe 0x44826b
cmp dword [ebp + 0x60], edi
je 0x44826b
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
lea ecx, [ebp + 0x5c]
call fcn.00403ce4
cmp dword [ebp + 0x5c], edi
je 0x44826b
mov esi, dword [ebp + 0x30]
add esi, 0x1ff
mov ebx, 0xfffffe00
and esi, ebx
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x10]
call fcn.0042c6b0
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 0x448246
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x448308
inc esi
jmp 0x448308
push esi
push ebx
push edi
call fcn.0046cbf0
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 0x44827e
lea ecx, [ebp + 0x10]
call fcn.00427365
lea ecx, [ebp - 0xbc]
call fcn.00427365
xor esi, esi
inc esi
jmp 0x448ff2
mov ecx, dword [ebp + 0x30]
mov eax, 0x1b8
cmp ecx, eax
jle 0x44828c
mov ecx, eax
push ecx
push dword [ebp + 0x60]
push ebx
call fcn.0046cbf0
mov byte [ebx + 0x1fe], 0x55
mov byte [ebx + 0x1ff], 0xaa
mov eax, dword [ebp + 0x30]
add esp, 0xc
cmp eax, 0x200
jbe 0x4482cf
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x60]
add eax, 0x200
push eax
lea eax, [ebx + 0x200]
push eax
call fcn.0046cbf0
add esp, 0xc
push esi
push ebx
push edi
mov dword [ebp + 0x68], 1
call fcn.0042cad9
add esp, 0xc
test eax, eax
jne 0x4482fe
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.0042a014
xor eax, eax
cmp dword [ebp + 0x68], eax
sete al
mov esi, eax
lea ecx, [ebp + 0x10]
call fcn.00427365
lea ecx, [ebp - 0xbc]
jmp 0x448fed
mov ebx, dword [ebp + 0x48]
cmp ebx, edi
je 0x448690
cmp dword [ebp + 0x28], edi
jle 0x448065
cmp dword [ebp + 0x20], edi
jge 0x448340
mov eax, dword [ebp - 0x70]
cmp word [eax], di
je 0x448065
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 + 0x28]
mov dword [ebp - 4], edi
push dword [ebp + 0x20]
mov dword [ebp], edi
push eax
call fcn.0043b329
add esp, 0x1c
cmp dword [ebp - 0x3c], edi
jle 0x448276
mov dword [ebp + 0x2c], 0x200
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], edi
cmp word [ebx], di
je 0x4484ed
push ebx
push 0x48762c
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4484ed
push ebx
push 0x483d00
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4484ed
push ebx
push 0x487624
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x4483d7
push 8
jmp 0x4484ef
push ebx
push str.nt6fat
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4484e9
push ebx
push str.winfat
call fcn.00428293
test al, al
pop ecx
pop ecx
jne 0x4484e9
push ebx
push 0x487628
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x448419
push 6
jmp 0x4484ef
push ebx
push str.nt5fat
call fcn.00428293
test al, al
pop ecx
pop ecx
je 0x448431
push 5
jmp 0x4484ef
or dword [ebp - 0xc], 0xffffffff
or dword [ebp - 8], 0xffffffff
mov dword [ebp + 0x2c], edi
cmp word [ebx], 0x2a
jne 0x448461
lea eax, [ebp - 0xc]
push eax
inc ebx
lea eax, [ebp + 0x48]
inc ebx
push eax
mov dword [ebp + 0x48], ebx
call fcn.004309e1
mov ebx, dword [ebp + 0x48]
cmp word [ebx], 0x2a
pop ecx
pop ecx
jne 0x448461
inc ebx
inc ebx
cmp word [ebx], 0x23
jne 0x44849f
push ebx
lea ecx, [ebp - 0x3c]
call fcn.004365ba
push edi
lea eax, [ebp - 0x90]
push eax
push 0x483c48
push dword [ebp - 0x3c]
push edi
call fcn.0040f3dc
add esp, 0x14
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x60], eax
call fcn.00427365
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x2c], eax
jmp 0x4484b6
lea eax, [ebp + 0x2c]
push eax
push edi
push ebx
call fcn.0040a641
add esp, 0xc
mov dword [ebp + 0x60], eax
mov dword [ebp - 0x90], eax
cmp dword [ebp - 8], edi
jl 0x4484d9
jg 0x4484c2
cmp dword [ebp - 0xc], edi
jb 0x4484d9
xor eax, eax
cmp eax, dword [ebp - 8]
jl 0x4484d9
jg 0x4484d3
mov eax, dword [ebp + 0x2c]
cmp eax, dword [ebp - 0xc]
jbe 0x4484d9
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x60], edi
jne 0x448518
lea ecx, [ebp - 0x90]
jmp 0x448271
push 7
jmp 0x4484ef
push 9
pop eax
push edi
lea ecx, [ebp - 0x90]
push ecx
push str.INDATA
push eax
push edi
call fcn.0040f3dc
add esp, 0x14
cmp dword [ebp + 0x2c], edi
mov dword [ebp + 0x60], eax
je 0x4484de
mov eax, dword [ebp - 0x8c]
mov dword [ebp + 0x2c], eax
cmp dword [ebp + 0x2c], edi
jbe 0x4484de
cmp dword [ebp + 0x60], edi
je 0x4484de
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x10]
lea ecx, [ebp + 0x5c]
call fcn.00403ce4
cmp dword [ebp + 0x5c], edi
je 0x4484de
push edi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
cmp eax, dword [ebp - 4]
jne 0x4484de
cmp edx, dword [ebp]
jne 0x4484de
mov esi, dword [ebp + 0x2c]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x10]
call fcn.0042c6b0
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 0x4485c6
push esi
push edi
push ebx
call fcn.0046cbf0
push 0
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x1c
cmp eax, dword [ebp - 4]
jne 0x4485c6
cmp edx, dword [ebp]
je 0x4485d3
lea ecx, [ebp + 0x10]
call fcn.00427365
jmp 0x4484de
mov eax, dword [ebp + 0x2c]
push 3
push dword [ebp + 0x60]
mov dword [ebp - 0x34], eax
push edi
call fcn.0046cbf0
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x34], eax
jle 0x4485f4
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.0046cbf0
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x2c]
add esp, 0xc
cmp eax, 0x200
jbe 0x448644
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x60]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.0046cbf0
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x68], 1
call fcn.0042cad9
add esp, 0xc
test eax, eax
jne 0x448673
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.0042a014
xor eax, eax
cmp dword [ebp + 0x68], eax
lea ecx, [ebp + 0x10]
sete al
mov esi, eax
call fcn.00427365
lea ecx, [ebp - 0x90]
jmp 0x448fed
cmp byte [ebp + 0x6f], 1
jne 0x4486a7
or esi, dword [ebp + 0x18]
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.0043afe9
pop ecx
pop ecx
jmp 0x4486c5
cmp byte [ebp + 0x6f], 2
jne 0x4486f5
push dword [ebp - 0x38]
lea eax, [ebp - 0x50]
push edi
push edi
push dword [ebp + 0x68]
push dword [ebp + 0x28]
push esi
push eax
call fcn.0043b329
add esp, 0x1c
mov ecx, dword [ebp - 0x74]
cmp ecx, edi
jle 0x44872e
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.0042eae2
lea ecx, [ebp + 8]
call fcn.00427365
jmp 0x44872e
cmp byte [ebp + 0x6f], 3
jne 0x448746
mov eax, dword [ebp - 0xc0]
mov ax, word [eax]
cmp ax, di
mov ecx, dword [ebp - 0x50]
mov word [ecx], ax
je 0x44872e
push dword [ebp - 0x38]
mov eax, dword [ebp + 0x68]
push edi
and eax, 0xfffffffd
push edi
or eax, 0xc
push eax
push dword [ebp + 0x28]
lea eax, [ebp - 0x50]
push esi
push eax
call fcn.0043b329
add esp, 0x1c
push dword [ebp - 0x50]
mov ecx, dword [ebp + 0x1c]
push dword [ebp - 0xa0]
call fcn.0042b2cd
xor esi, esi
jmp 0x448ff2
cmp byte [ebp + 0x5b], 0
je 0x448765
mov dword [ebp + 4], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x28], 5
cmp byte [ebp + 0x6e], 0
je 0x448772
mov dword [ebp + 0x28], 5
cmp byte [ebp + 0x36], 0
je 0x44878a
mov dword [ebp + 4], edi
mov dword [ebp + 0x2c], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
dec dword [ebp + 0x28]
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 0x4487d7
cmp dword [ebp + 0x2c], edi
jne 0x4487d7
mov eax, dword [ebp + 0x50]
or eax, dword [ebp + 0x54]
jne 0x4487d7
mov eax, dword [ebp + 0x40]
or eax, dword [ebp + 0x44]
jne 0x4487d7
mov byte [ebp + 0x36], 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.00403ce4
cmp dword [ebp + 0x5c], edi
jne 0x448806
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x44882f
push 1
push edi
push dword [ebp + 0x5c]
call fcn.00430964
add esp, 0xc
cmp byte [ebp + 0x35], 0x10
mov dword [ebp - 0x60], eax
je 0x44a226
cmp byte [ebp + 0x35], 1
jne 0x448836
mov eax, dword [ebp + 0x5c]
call fcn.0042a026
mov esi, eax
jmp 0x448ff2
cmp dword [ebp + 0x2c], 0xff
mov dword [ebp - 0x8c], edi
jg 0x448065
cmp byte [ebp + 0x6e], 0
jne 0x448894
cmp dword [ebp + 0x28], edi
jge 0x448894
cmp dword [ebp + 0x54], edi
jg 0x448065
jl 0x448868
cmp dword [ebp + 0x50], edi
jae 0x448065
cmp dword [ebp + 0x44], edi
jg 0x448065
jl 0x44887c
cmp dword [ebp + 0x40], edi
jae 0x448065
cmp dword [ebp + 0x2c], edi
jge 0x448065
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x44], 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 + 0x28]
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 0x4488dd
cmp byte [ebp + 0x5b], 0
jne 0x4488dd
cmp eax, 4
jl 0x448e39
cmp byte [ebp + 0x5a], 0
jne 0x448e39
cmp byte [ebp + 0x4f], 0
jne 0x448e39
cmp byte [ebp + 0x6e], 0
je 0x4488fe
mov dword [ebp + 0x28], 4
cmp dword [ebp + 0x2c], 5
je 0x448065
cmp dword [ebp + 0x2c], 0xf
je 0x448065
xor edi, edi
push 0x100000
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x60], edi
call fcn.0042c6b0
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x48]
push dword [ebp + 0x5c]
call fcn.00429e9b
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x6e], 0
mov esi, eax
jne 0x448977
cmp ecx, dword [ebp + 0x28]
jge 0x448959
cmp dword [ebp + 0x28], 4
jl 0x448959
lea ecx, [ebp + 0x48]
call fcn.00427365
jmp 0x448065
cmp byte [ebp + 0x6e], 0
jne 0x448977
cmp byte [ebp + 0x5b], 0
jne 0x448977
mov edx, dword [ebp + 0x28]
lea eax, [edx + 1]
cmp eax, 4
mov byte [ebp + 0x6f], 0
jg 0x4489ae
dec eax
jmp 0x4489b5
cmp byte [ebp + 0x5b], 0
mov byte [ebp + 0x6f], 1
jne 0x4489c4
cmp byte [ebp + 0x6e], 0
je 0x448999
cmp dword [ebp + 0x2c], edi
jl 0x44894c
cmp word [ebp + 4], di
jle 0x4489a9
mov dword [ebp + 4], 0x80
cmp ecx, 4
jle 0x4489cb
lea eax, [ecx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x18], eax
jmp 0x4489ce
mov dword [ebp + 4], edi
jmp 0x448999
lea eax, [eax*4 - 0x10]
cmp eax, edi
jle 0x44894c
cmp eax, ecx
jl 0x448999
cmp edx, 4
jle 0x448999
jmp 0x44894c
cmp ecx, 4
jg 0x44899e
jmp 0x44894c
mov dword [ebp + 0x18], edi
or dword [ebp + 0x68], 0xffffffff
or dword [ebp + 0x1c], 0xffffffff
or dword [ebp + 0x38], 0xffffffff
xor edx, edx
lea eax, [esi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x4489eb
cmp cl, 0xf
jne 0x4489ee
mov dword [ebp + 0x38], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x4489df
cmp byte [ebp + 0x6f], 0
je 0x448a08
cmp dword [ebp + 0x38], edi
jl 0x44894c
mov eax, dword [ebp + 0x38]
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.0046d850
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.0046d850
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 0x448b10
mov eax, dword [ebp + 0x60]
cmp eax, 8
jne 0x448a6c
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
xor esi, esi
jmp 0x448ac0
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 0x448a9d
cmp cl, 0xf
je 0x448a9d
inc edi
add eax, 0x90
cmp edi, 4
jl 0x448a81
jmp 0x44894c
push 0
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0046d850
mov ecx, eax
mov eax, dword [esi + 0x24]
xor esi, esi
sub ecx, eax
sbb edx, esi
test edi, edi
mov esi, edi
jl 0x44894c
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.00430d69
add esp, 0x14
cmp byte [ebp + 0x59], 0
je 0x448af9
mov eax, dword [ebp + 0x5c]
mov byte [ebp + 0x59], 0
call fcn.0042a026
lea ecx, [ebp + 0x48]
call fcn.00427365
cmp byte [ebp + 0x4e], 0
jne 0x44a226
jmp 0x44873f
cmp dword [ebp + 0x60], 4
jg 0x448b1e
mov eax, dword [ebp + 0x38]
mov dword [ebp + 0x68], eax
jmp 0x448b3d
xor edx, edx
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x448b2f
cmp cl, 0xf
jne 0x448b32
mov dword [ebp + 0x68], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x448b23
cmp dword [ebp + 0x68], 0
jge 0x448b4d
cmp byte [ebp + 0x6e], 0
je 0x44894c
cmp byte [ebp + 0x6f], 0
je 0x448b59
and dword [ebp + 0x1c], 0
jmp 0x448b83
xor edx, edx
lea eax, [edi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x448b6b
test edx, edx
jne 0x448b78
cmp cl, 5
je 0x448b78
cmp cl, 0xf
je 0x448b78
mov dword [ebp + 0x1c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x448b61
cmp byte [ebp + 0x6f], 0
jne 0x448b93
cmp dword [ebp + 0x1c], 0
jl 0x44894c
cmp byte [ebp + 0x6e], 0
je 0x448d6c
mov eax, dword [ebp + 0x18]
test eax, eax
jg 0x448ba7
mov eax, dword [ebp + 0x38]
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 + 0x28], eax
call fcn.0046d850
cmp dword [ebp + 0x60], 4
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jle 0x448c6b
cmp dword [ebp + 0x68], 0
jge 0x448c6b
cmp byte [edi + 0x20], 0
je 0x448c63
mov eax, dword [ebp + 0x60]
cmp eax, 8
jle 0x448bf8
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x448bfb
mov eax, dword [ebp + 0x38]
push 0
lea eax, [eax + eax*8]
push ebx
shl eax, 4
push dword [eax + esi + 0x3c]
push dword [eax + esi + 0x38]
call fcn.0046d850
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.0046d850
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 0x448cac
lea ecx, [ebp + 0x48]
jmp 0x448271
cmp dword [ebp + 0x18], 0
jle 0x448c8a
mov eax, dword [ebp - 0x74]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp + 0x28]
push 0
push ebx
push eax
push ecx
call fcn.0046d850
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 0x448cc4
jl 0x44894c
test eax, eax
jbe 0x44894c
cmp byte [ebp + 0x37], 0
je 0x448cd0
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 0x448cfb
jl 0x448cef
mov edx, dword [ebp + 0x50]
cmp edx, dword [ebp - 0x30]
ja 0x448cfb
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 + 0x44], ecx
jl 0x448d17
jg 0x448d11
cmp dword [ebp + 0x40], eax
jbe 0x448d17
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], ecx
xor eax, eax
cmp dword [ebp + 0x44], eax
jg 0x448d2d
jl 0x44894c
cmp dword [ebp + 0x40], eax
jb 0x44894c
cmp dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x60]
jle 0x448d4b
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x448d41
inc eax
jmp 0x448d53
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x448d53
and eax, 0xfffffffc
cmp eax, 3
jg 0x448d56
inc eax
jmp 0x448d5e
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x8c], esi
jmp 0x448e2f
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.0046d850
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.0046d850
cmp byte [ebp + 0x37], 0
je 0x448dc3
add dword [ebp + 0x50], edi
mov ecx, dword [ebp]
adc dword [ebp + 0x54], ecx
xor ecx, ecx
cmp dword [ebp + 0x54], ecx
jl 0x448de8
jg 0x448dd1
cmp dword [ebp + 0x50], ecx
jbe 0x448de8
mov ecx, dword [ebp]
cmp dword [ebp + 0x54], ecx
jg 0x448de6
jl 0x448de0
cmp dword [ebp + 0x50], edi
ja 0x448de6
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], ecx
xor ecx, ecx
cmp dword [ebp + 0x44], ecx
jl 0x448e1a
jg 0x448df4
cmp dword [ebp + 0x40], ecx
jbe 0x448e1a
cmp dword [ebp + 0x44], edx
jl 0x448e06
jg 0x448e00
cmp dword [ebp + 0x40], eax
jbe 0x448e06
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
cmp dword [ebp + 0x44], ecx
jg 0x448e1a
jl 0x44894c
cmp dword [ebp + 0x40], ecx
jb 0x44894c
push ecx
push ebx
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.0046d850
mov dword [ebp - 0x8c], eax
mov edi, edx
lea ecx, [ebp + 0x48]
call fcn.00427365
xor esi, esi
cmp dword [ebp + 0x28], 4
push esi
push ebx
push edi
push dword [ebp - 0x8c]
setge byte [ebp - 0x19]
call fcn.0046d9d0
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.0046c9b0
push esi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x1c
cmp eax, dword [ebp - 4]
jne 0x448276
cmp edx, dword [ebp]
jne 0x448276
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.0046cbf0
add esp, 0xc
cmp dword [ebp + 0x68], esi
je 0x448276
cmp byte [ebp + 0x4f], 0
je 0x448f54
cmp byte [ebp + 0x5a], 0
jne 0x448f54
push edi
call fcn.0042a05f
push 0x40
lea eax, [edi + 0x1be]
push esi
push eax
call fcn.0046c9b0
push ebx
push edi
push dword [ebp - 0x40]
mov word [edi + 0x1fe], 0xaa55
call fcn.004273ac
add esp, 0x1c
test eax, eax
je 0x448f1e
push esi
push dword [ebp]
push dword [ebp - 4]
push dword [ebp + 0x5c]
call fcn.004281cd
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 + 0x59], 0
je 0x448f31
cmp dword [ebp + 0x20], esi
jl 0x448f31
mov eax, dword [ebp + 0x5c]
call fcn.0042a026
cmp byte [ebp + 0x4e], 0
je 0x448f4c
cmp dword [ebp + 0x20], esi
jl 0x448f4c
lea ecx, [ebp - 0x84]
call fcn.00427365
jmp 0x44a247
mov esi, dword [ebp - 0x34]
jmp 0x448ff2
cmp byte [ebp + 0x3f], 0
jne 0x448f6a
cmp byte [ebp + 0x67], 0
je 0x448f79
cmp dword [ebp + 0x28], 1
jle 0x448065
cmp byte [ebp + 0x67], 0
je 0x448f79
cmp dword [ebp + 0x28], esi
jl 0x448065
push dword [ebp + 0x5c]
call fcn.00429b24
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x48], eax
mov dword [esp], 0x100000
call fcn.0042c6b0
cmp dword [ebp - 0x48], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
jl 0x448fc1
push dword [ebp + 0x5c]
mov esi, dword [ebp + 0x20]
call fcn.00429c34
pop ecx
push 0
push dword [ebp + 0x48]
push edx
push eax
call fcn.0046d850
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
xor esi, esi
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 0x20]
push dword [ebp + 0x5c]
call fcn.00429e9b
mov ecx, dword [ebp - 0x70]
mov cx, word [ecx]
add esp, 0xc
cmp cx, si
mov dword [ebp - 0x74], eax
jne 0x44904d
cmp eax, esi
jne 0x449051
mov esi, 0x80070057
lea ecx, [ebp + 0x20]
call fcn.00427365
lea ecx, [ebp - 0x84]
call fcn.00427365
lea ecx, [ebp + 0x5c]
call fcn.00402a26
push 0x4975fc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp - 0x70]
call fcn.00427365
lea ecx, [ebp - 0xa0]
call fcn.00427365
lea ecx, [ebp - 0xc0]
call fcn.00427365
lea ecx, [ebp - 0x108]
call fcn.00427365
lea ecx, [ebp - 0x50]
call fcn.00427365
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
cmp eax, esi
je 0x449055
mov eax, dword [eax]
jmp 0x449057
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x67]
cmp byte [ebp + 0x67], 0
je 0x44906e
cmp byte [ebp - 0x51], 0
mov byte [ebp + 0x37], 1
je 0x449072
mov byte [ebp + 0x37], 0
cmp byte [ebp + 0x17], 0
jne 0x44909a
cmp byte [ebp + 0x4f], 0
jne 0x44909a
cmp byte [ebp + 0x37], 0
je 0x449090
cmp byte [ebp + 0x5a], 0
je 0x448fe5
jmp 0x44909a
cmp byte [ebp + 0x5a], 0
jne 0x448fe5
cmp cx, si
mov eax, dword [ebp - 0xc8]
mov dword [ebp + 0x38], eax
mov eax, dword [ebp - 0xd0]
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x68], eax
jne 0x449158
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 0x449114
jl 0x4490fe
cmp dword [ebp - 0xc8], esi
ja 0x449114
mov eax, dword [ebp - 0x90]
mov dword [ebp + 0x38], eax
cdq
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xcc], esi
jg 0x44913c
jl 0x449126
cmp dword [ebp - 0xd0], esi
ja 0x44913c
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 0x449158
jl 0x449148
cmp dword [ebp - 0xc], esi
ja 0x449158
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 0x449171
jl 0x44916a
cmp dword [ebp - 0xc8], esi
ja 0x449171
mov dword [ebp + 0x38], 0xff
cmp dword [ebp - 0xcc], esi
jg 0x44918a
jl 0x449183
cmp dword [ebp - 0xd0], esi
ja 0x44918a
mov dword [ebp + 0x60], 0x3f
cmp dword [ebp - 8], esi
jg 0x449199
jl 0x449196
cmp dword [ebp - 0xc], esi
ja 0x449199
mov dword [ebp + 0x68], ebx
mov eax, dword [ebp + 0x68]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
cmp byte [ebp + 0x37], 0
mov esi, dword [ebp + 0x48]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x20]
lea ebx, [eax + esi]
lea eax, [ebx + esi + 0x10000]
mov dword [ebp + 0x18], eax
jne 0x449a0a
cmp byte [ebp + 0x5a], 0
jne 0x449a0a
cmp byte [ebp + 0x36], 0
mov byte [ebp + 0x17], 0
jne 0x449608
mov esi, dword [ebp + 0x54]
xor eax, eax
cmp esi, eax
jg 0x449202
jl 0x4491ee
cmp dword [ebp + 0x50], eax
jae 0x449202
cmp dword [ebp + 0x44], eax
jl 0x449608
jg 0x449202
cmp dword [ebp + 0x40], eax
jb 0x449608
mov ebx, dword [ebp + 0x28]
cmp ebx, eax
jl 0x449608
push 0x100000
lea ecx, [ebp + 0x18]
call fcn.0042c6b0
mov eax, dword [ebp + 0x68]
imul eax, dword [ebp + 0x60]
cdq
idiv edi
mov edi, eax
mov eax, dword [ebp + 0x38]
imul eax, edi
cmp dword [ebp + 0x68], 0
cdq
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
jle 0x44927c
mov eax, dword [ebp - 0x70]
cmp word [eax], 0
jne 0x449289
and dword [ebp - 0x74], 0
lea eax, [ebp - 0x74]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x5c]
call fcn.00429e9b
add esp, 0xc
test eax, eax
jne 0x44926c
lea ecx, [ebp + 0x18]
call fcn.00427365
xor esi, esi
inc esi
jmp 0x448fea
cmp ebx, 4
jl 0x449289
cmp byte [ebp + 0x6e], 0
jne 0x449289
cmp ebx, dword [ebp - 0x74]
jl 0x449289
lea ecx, [ebp + 0x18]
call fcn.00427365
jmp 0x448fe5
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x44930f
jg 0x449298
cmp dword [ebp + 0x50], edx
jbe 0x44930f
mov ecx, dword [ebp - 0x68]
and ecx, dword [ebp - 0x64]
cmp ecx, 0xffffffff
jne 0x4492c5
cmp esi, dword [ebp - 8]
jl 0x4492c0
jg 0x4492b2
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp - 0xc]
jb 0x4492c0
cmp byte [ebp - 0x19], 0
jne 0x4492c0
push dword [ebp - 8]
push dword [ebp - 0xc]
jmp 0x4492fb
mov eax, edi
cdq
jmp 0x4492f9
cmp byte [ebp - 0x18], 0
jne 0x44930f
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.0046d850
mov ecx, eax
mov eax, dword [ebp - 0x48]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.0046d9d0
push edx
push eax
push esi
push dword [ebp + 0x50]
call fcn.00429f70
add esp, 0x10
add dword [ebp + 0x50], eax
adc esi, edx
mov dword [ebp + 0x54], esi
xor ecx, ecx
cmp dword [ebp + 0x44], ecx
jl 0x44933b
jg 0x44931d
cmp dword [ebp + 0x40], ecx
jbe 0x44933b
cmp byte [ebp - 0x53], 0
jne 0x44933b
sub dword [ebp + 0x40], eax
sbb dword [ebp + 0x44], edx
cmp dword [ebp + 0x44], ecx
jg 0x44933b
jl 0x449335
cmp dword [ebp + 0x40], ecx
jae 0x44933b
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], ecx
cmp esi, ecx
jl 0x44934d
jg 0x449346
cmp dword [ebp + 0x50], ecx
jbe 0x44934d
mov edi, dword [ebp + 0x50]
mov ebx, esi
jmp 0x449351
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x44], 0
jl 0x4493e0
jg 0x449363
cmp dword [ebp + 0x40], 0
jbe 0x4493e0
mov eax, dword [ebp - 0x5c]
and eax, dword [ebp - 0x58]
cmp eax, 0xffffffff
jne 0x449383
push dword [ebp - 8]
add edi, dword [ebp + 0x40]
push dword [ebp - 0xc]
adc ebx, dword [ebp + 0x44]
push ebx
push edi
call fcn.0046ecc0
jmp 0x4493da
cmp byte [ebp - 0x18], 0
jne 0x4493e0
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.0046d850
push dword [ebp - 0x88]
push esi
push edx
push eax
call fcn.0046d9d0
push 0
push 0x200
push edx
push eax
call fcn.0046d850
add edi, dword [ebp + 0x40]
push edx
adc ebx, dword [ebp + 0x44]
push eax
push ebx
push edi
call fcn.0046ecc0
mov esi, dword [ebp + 0x54]
sub dword [ebp + 0x40], eax
sbb dword [ebp + 0x44], edx
cmp dword [ebp - 0xac], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x5b], 0
jl 0x44950a
jg 0x449408
cmp dword [ebp - 0xb0], 0
jbe 0x44950a
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp + 0x44]
sbb edi, dword [ebp - 0x24]
add ecx, dword [ebp + 0x50]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.0046d850
and dword [ebp - 0x94], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x38]
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.00429f9a
mov al, byte [ebp + 0x67]
add esp, 0x20
push 1
push dword [ebp + 0x38]
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.0046d9d0
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.00429f9a
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.00430d69
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.0046d850
test esi, esi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], edx
jl 0x44954d
jg 0x449538
xor eax, eax
cmp dword [ebp + 0x50], eax
jb 0x44954f
push ebx
push edi
push esi
push dword [ebp + 0x50]
call fcn.0046d850
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
xor eax, eax
jmp 0x449555
xor eax, eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x44], eax
jl 0x449576
jg 0x449561
cmp dword [ebp + 0x40], eax
jb 0x449576
push ebx
push edi
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.0046d850
mov dword [ebp - 0xa4], edx
jmp 0x44957c
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa8], eax
xor eax, eax
cmp dword [ebp + 0x28], 4
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
setge al
push eax
push dword [ebp + 0x38]
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.00429f9a
add esp, 0x20
test esi, esi
jl 0x4495cc
jg 0x4495ba
cmp dword [ebp + 0x50], 0
jbe 0x4495cc
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 + 0x38]
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.00429f9a
add esp, 0x20
lea ecx, [ebp + 0x18]
call fcn.00427365
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.0046cbf0
add esp, 0xc
cmp dword [ebp - 0xac], 0
jl 0x44966f
jg 0x44963e
cmp dword [ebp - 0xb0], 0
jb 0x44966f
cmp dword [ebp + 0x1c], 0
jle 0x449658
mov eax, dword [ebp - 0x40]
push edi
add eax, 0x3be
push 0
push eax
call fcn.0046c9b0
add esp, 0xc
push 0x30
pop eax
sub eax, edi
push eax
lea eax, [ebx + 0x1ce]
push 0
push eax
call fcn.0046c9b0
add esp, 0xc
cmp byte [ebp + 0x6e], 0
mov al, byte [ebx + 0x1c2]
jne 0x449691
cmp byte [ebp + 0x3f], 2
jge 0x449691
cmp al, 5
je 0x448fe5
cmp al, 0xf
je 0x448fe5
cmp byte [ebp + 0x6e], 0
mov ecx, dword [ebx + 0x1c6]
mov edi, dword [ebx + 0x1ca]
jne 0x449700
test al, al
je 0x449700
xor eax, eax
cmp dword [ebp + 0x2c], eax
je 0x449702
cmp byte [ebp + 0x3f], 2
jge 0x449702
cmp byte [ebp - 0x19], al
jne 0x449702
cmp dword [ebp + 0x54], eax
jl 0x4496d9
jg 0x4496c5
cmp dword [ebp + 0x50], eax
jb 0x4496d9
cmp dword [ebp - 0x14], ecx
jne 0x448fe5
cmp dword [ebp - 0x10], eax
jne 0x448fe5
xor eax, eax
cmp dword [ebp + 0x44], eax
jl 0x449702
jg 0x4496e5
cmp dword [ebp + 0x40], eax
jb 0x449702
cmp dword [ebp - 0xa8], edi
jne 0x4496f5
cmp dword [ebp - 0xa4], eax
je 0x449700
xor eax, eax
cmp edi, eax
je 0x449702
jmp 0x448fe5
xor eax, eax
cmp byte [ebp + 0x36], 0
je 0x44971e
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 + 0x2c]
cmp edx, eax
jl 0x44972b
mov byte [ebx + 0x1c2], dl
mov edx, dword [ebp + 4]
cmp dx, ax
jl 0x449739
mov byte [ebx + 0x1be], dl
cmp dword [ebp + 0x54], eax
jg 0x449761
jl 0x449745
cmp dword [ebp + 0x50], eax
jae 0x449761
cmp dword [ebp + 0x44], eax
jl 0x4497d4
jg 0x449755
cmp dword [ebp + 0x40], eax
jb 0x4497d4
mov eax, dword [ebp - 0xa8]
lea eax, [eax + ecx - 1]
jmp 0x449774
cmp dword [ebp + 0x44], eax
jg 0x449798
jl 0x44976d
cmp dword [ebp + 0x40], eax
jae 0x449798
mov eax, dword [ebp - 0x14]
lea eax, [eax + edi - 1]
movsx ecx, byte [ebp + 0x17]
push ecx
push dword [ebp + 0x38]
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.00429f9a
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x54], eax
jl 0x4497c8
jg 0x4497a4
cmp dword [ebp + 0x50], eax
jb 0x4497c8
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 + 0x44], eax
jg 0x4497e0
jl 0x4497d4
cmp dword [ebp + 0x40], eax
jae 0x4497e0
cmp dword [ebp + 0x54], eax
jl 0x4497fb
jg 0x4497e0
cmp dword [ebp + 0x50], eax
jb 0x4497fb
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 + 0x44], eax
jl 0x449813
jg 0x449807
cmp dword [ebp + 0x40], eax
jb 0x449813
mov ecx, dword [ebp - 0xa8]
mov dword [ebx + 0x1ca], ecx
cmp dword [ebp + 0x2c], eax
jge 0x449836
cmp word [ebp + 4], ax
jge 0x449836
cmp dword [ebp + 0x54], eax
jg 0x449836
jl 0x44982a
cmp dword [ebp + 0x50], eax
jae 0x449836
cmp dword [ebp + 0x44], eax
jl 0x44984d
jg 0x449836
cmp dword [ebp + 0x40], eax
jb 0x44984d
mov ecx, dword [ebp - 0x40]
add ecx, 0x200
mov byte [ecx + 0x1fe], 0x55
mov byte [ecx + 0x1ff], 0xaa
cmp word [ebp + 4], ax
jge 0x449886
cmp dword [ebp + 0x2c], eax
jge 0x449886
cmp dword [ebp + 0x54], eax
jg 0x449886
jl 0x449864
cmp dword [ebp + 0x50], eax
jae 0x449886
cmp dword [ebp + 0x44], eax
jg 0x449886
jl 0x449870
cmp dword [ebp + 0x40], eax
jae 0x449886
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.004281cd
add esp, 0x10
cmp eax, edi
jne 0x449264
cmp edx, dword [ebp]
jne 0x449264
or edi, dword [ebp]
mov edi, dword [ebp - 0x40]
mov dword [ebp + 0x68], 1
jne 0x4498c8
lea eax, [edi + 0x200]
push eax
call fcn.0042a05f
pop ecx
push esi
lea eax, [edi + 0x200]
push eax
push edi
call fcn.0042cad9
add esp, 0xc
test eax, eax
jne 0x44990a
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.0042a014
mov edi, dword [ebp - 0x40]
mov esi, 0x200
cmp dword [ebp + 0x54], ebx
jl 0x4499de
jg 0x44991e
cmp dword [ebp + 0x50], esi
jb 0x4499de
cmp dword [ebp + 0x44], ebx
jl 0x4499de
jg 0x449932
cmp dword [ebp + 0x40], esi
jbe 0x4499de
cmp byte [ebp - 0x41], 0
je 0x4499de
push esi
lea eax, [edi + 0x200]
push ebx
push eax
mov dword [ebp + 8], eax
call fcn.0046c9b0
add esp, 0xc
push ebx
push esi
push dword [ebp + 0x54]
push dword [ebp + 0x50]
call fcn.0046d9d0
push ebx
push edx
push eax
push dword [ebp + 0x5c]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
call fcn.004281cd
add esp, 0x10
cmp eax, dword [ebp - 0x80]
jne 0x4499db
cmp edx, dword [ebp - 0x7c]
jne 0x4499db
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 0x4499db
cmp dword [ebp - 0x20], esi
jne 0x4499db
push esi
push dword [ebp + 8]
push edi
call fcn.0042cad9
add esp, 0xc
test eax, eax
jne 0x4499de
push ebx
push dword [ebp - 0x7c]
push dword [ebp - 0x80]
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
cmp eax, dword [ebp - 0x80]
jne 0x4499db
cmp edx, dword [ebp - 0x7c]
jne 0x4499db
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 0x4499de
mov dword [ebp + 0x68], ebx
cmp byte [ebp + 0x59], 0
je 0x4499f0
mov eax, dword [ebp + 0x5c]
mov byte [ebp + 0x59], 0
call fcn.0042a026
cmp byte [ebp + 0x4e], 0
jne 0x44a21e
xor esi, esi
cmp dword [ebp + 0x68], ebx
jne 0x448fea
jmp 0x449266
cmp byte [ebp + 0x36], 0
je 0x449a14
mov byte [ebp + 0xf], 0
cmp byte [ebp + 0x67], 0
je 0x449a2b
cmp byte [ebp + 0x4f], 0
jne 0x449a2b
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x68], eax
jmp 0x449a32
mov dword [ebp + 0x68], 0x80
cmp byte [ebp - 0x49], 0
mov eax, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x44]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
je 0x449a5c
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 0x449a61
xor edi, edi
inc edi
xor edx, edx
cmp byte [ebp + 0x4f], 0
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
je 0x449aae
cmp dword [ebp + 0x54], edx
jg 0x449a7f
jl 0x449a79
cmp dword [ebp + 0x50], edi
jae 0x449a7f
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 0x449aa6
jl 0x449a96
cmp dword [ebp - 0x14], edi
jae 0x449aa6
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 0x449ab2
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 + 0x20]
push eax
call fcn.004307e8
add esp, 0x1c
cmp byte [ebp + 0x67], 0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
jne 0x449ae2
or eax, edx
jne 0x449ae2
and dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], edi
mov eax, dword [ebp + 0x68]
mov dword [ebp - 0x38], edi
mov edi, dword [ebp + 0x28]
cmp edi, eax
jae 0x449b12
cmp dword [ebp + 0x30], eax
jge 0x449b12
mov ecx, edi
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x4848b8
push ecx
call fcn.004273ac
add esp, 0xc
test eax, eax
jne 0x449b16
and dword [ebp - 0x38], 0
cmp byte [ebp + 0x4f], 0
je 0x449cba
cmp edi, dword [ebp + 0x68]
jae 0x448fe5
lea eax, [ebx + esi]
mov edi, eax
mov eax, dword [ebp + 0x68]
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x449b66
mov dword [ebp + 8], eax
push 0x1b3
push 0
push edi
call fcn.0046c9b0
push 0x4a
lea eax, [edi + 0x1b4]
push 0
push eax
call fcn.0046c9b0
add esp, 0x18
add edi, esi
dec dword [ebp + 8]
jne 0x449b3f
push 0x5c
pop edi
push edi
push 0
push ebx
call fcn.0046c9b0
push 8
push str.EFI_PART
push ebx
call fcn.0046cbf0
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 0x449bd9
push 0x10
push 0x4875f0
push eax
call fcn.0046cbf0
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.0046cbf0
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 + 0x20]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0046c9b0
add esp, 0x18
cmp dword [ebp - 0x10], 0
jg 0x449c46
jl 0x449c3e
cmp dword [ebp - 0x14], 1
jae 0x449c46
or dword [ebp - 0x14], 0xffffffff
or dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x20]
push 1
push dword [ebp + 0x38]
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.00429f9a
push 1
push dword [ebp + 0x38]
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.00429f9a
mov eax, dword [ebp + 0x50]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0x14]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x449fd5
cmp byte [ebp - 0x16], 0
je 0x449cc8
test edi, edi
jl 0x449fd5
cmp byte [ebp + 0x6e], 0
je 0x449d23
or dword [ebp + 0x28], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x68], edi
mov byte [ebp + 0xf], 0
jbe 0x449d23
lea eax, [ebx + esi]
mov dword [ebp - 0x48], eax
push 0x10
push 0x4848b8
push dword [ebp - 0x48]
call fcn.004273ac
add esp, 0xc
test eax, eax
je 0x449d08
add dword [ebp - 0x48], 0x80
inc edi
cmp edi, dword [ebp + 0x68]
jb 0x449ce3
jmp 0x449d23
mov dword [ebp + 0x28], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.0046c9b0
add esp, 0xc
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x30]
cmp dword [ebp + 0x28], eax
jae 0x448fe5
cmp dword [ebp + 0x30], eax
jge 0x448fe5
cmp byte [ebp + 0xf], 0
je 0x449e46
xor ecx, ecx
cmp byte [ebp + 0x67], cl
je 0x449d9b
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x68]
jae 0x449d9b
mov edx, dword [eax]
cmp edx, dword [ebp + 0x50]
jne 0x449d64
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x54]
je 0x449d6c
inc ecx
add eax, 0x80
jmp 0x449d50
mov eax, dword [ebp + 0x48]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x28]
mov esi, 0x4848b8
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 0x449d98
push 0x80
push 0
push eax
call fcn.0046c9b0
add esp, 0xc
mov esi, dword [ebp + 0x48]
mov eax, dword [ebp + 0x28]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x4848b8
push eax
mov dword [ebp + 8], eax
call fcn.004273ac
add esp, 0xc
test eax, eax
je 0x449e30
mov esi, dword [ebp + 0x28]
inc esi
cmp esi, dword [ebp + 0x68]
mov dword [ebp + 0x1c], esi
jae 0x448fe5
shl esi, 7
add esi, edi
mov edi, dword [ebp + 0x1c]
push 0x10
push 0x4848b8
push esi
call fcn.004273ac
add esp, 0xc
test eax, eax
je 0x449dfa
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x68]
mov dword [ebp + 0x1c], edi
jb 0x449dd5
jmp 0x449e21
cmp edi, dword [ebp + 0x28]
jle 0x449e21
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x48]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x1c]
sub eax, dword [ebp + 0x28]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x449e12
mov eax, dword [ebp + 0x68]
cmp dword [ebp + 0x1c], eax
jae 0x448fe5
mov esi, dword [ebp + 0x48]
push 0x80
push 0
push dword [ebp + 8]
call fcn.0046c9b0
add esp, 0xc
and dword [ebp - 0x38], 0
mov eax, dword [ebp + 0x30]
xor ecx, ecx
cmp eax, ecx
jge 0x449f66
cmp dword [ebp - 0x38], ecx
jne 0x449e7f
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 0x449ea3
mov edi, dword [ebp + 0x28]
mov eax, dword [ebp + 0x48]
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 + 0x48]
xor ecx, ecx
cmp dword [ebp - 0xd8], ecx
jle 0x449ec9
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x48]
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 + 0x48]
xor ecx, ecx
cmp dword [ebp - 0xe4], ecx
jle 0x449ee8
mov edx, dword [ebp + 0x28]
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 0x449f07
mov edx, dword [ebp + 0x28]
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 0x449f2b
mov eax, dword [ebp + 0x28]
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 0x449faf
mov eax, dword [ebp - 0x6c]
cmp word [eax], 0
je 0x449faf
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x48]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.0046c9b0
add esp, 0xc
push 0x24
push dword [ebp - 0x6c]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x449faf
cmp eax, dword [ebp + 0x28]
je 0x449faf
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x48]
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 + 0x30]
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 + 0x30]
cmp dword [ebp + 0x28], eax
push 0x20
pop ecx
lea esi, [ebp - 0x1fc]
rep movsd dword es:[edi], dword [esi]
jge 0x449faf
mov dword [ebp + 0x28], eax
cmp byte [ebp + 0x36], 0
je 0x449fd2
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp + 0x48]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.0046c9b0
add esp, 0xc
mov esi, dword [ebp + 0x48]
xor edi, edi
cmp byte [ebp - 0x16], 0
mov dword [ebp - 0x74], edi
je 0x44a0cb
cmp byte [ebp + 0x4f], 0
jne 0x44a0cb
cmp dword [ebp + 0x68], edi
mov dword [ebp + 0x1c], edi
mov dword [ebp + 0x38], edi
jle 0x44a0cb
lea eax, [ebx + esi]
mov dword [ebp + 0x60], eax
mov dword [ebp + 4], eax
push 0x10
push 0x4848b8
push dword [ebp + 0x60]
call fcn.004273ac
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x44a02e
mov ecx, dword [ebp + 0x38]
cmp ecx, dword [ebp + 0x1c]
jne 0x44a02e
and dword [ebp + 8], 0
jmp 0x44a035
mov dword [ebp + 8], 1
and dword [ebp - 0x6c], 0
test al, al
jne 0x44a06f
mov eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x1c]
je 0x44a065
mov esi, dword [ebp + 0x60]
push 0x10
push esi
push esi
call fcn.0042cad9
mov edi, dword [ebp + 4]
add esp, 0xc
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x48]
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 0x44a0a8
mov eax, dword [ebp + 0x60]
lea ecx, [eax + 0x80]
jmp 0x44a089
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x44a08f
cmp eax, ecx
jb 0x44a080
jmp 0x44a096
mov dword [ebp - 0x6c], 1
push 0x80
push 0
push dword [ebp + 0x60]
call fcn.0046c9b0
add esp, 0xc
cmp dword [ebp - 0x6c], 0
je 0x44a0b5
mov edi, dword [ebp + 0x38]
inc edi
mov dword [ebp - 0x74], edi
inc dword [ebp + 0x38]
mov eax, dword [ebp + 0x38]
add dword [ebp + 0x60], 0x80
cmp eax, dword [ebp + 0x68]
jl 0x44a006
push dword [ebp + 0x20]
call fcn.0042a05f
lea eax, [ebx - 0x174]
push eax
call fcn.0042a05f
mov eax, dword [ebp + 0x28]
cmp edi, eax
pop ecx
pop ecx
jg 0x44a0eb
lea edi, [eax + 1]
cmp byte [ebp + 0x4f], 0
je 0x44a0f4
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.0043586e
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 0x448fe5
push 0
push edi
push ebx
call fcn.0043586e
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 0x18]
and dword [eax + 0x10], 0
push 0
push edi
push eax
call fcn.0043586e
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 + 0x4f], 0
je 0x44a182
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
push esi
push dword [ebp + 0x20]
lea ecx, [ebp + 0x5c]
call fcn.00427285
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
call fcn.0046d9d0
push edx
push eax
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
lea eax, [esi + edi]
push eax
push ebx
lea ecx, [ebp + 0x5c]
call fcn.00427285
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.0046d9d0
push edx
push eax
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x5c]
call fcn.00427285
push 0
xor eax, eax
push eax
push esi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0046d9d0
push edx
push eax
push dword [ebp + 0x5c]
call fcn.004281cd
add esp, 0x10
push esi
push dword [ebp + 0x18]
lea ecx, [ebp + 0x5c]
call fcn.00427285
cmp byte [ebp + 0x59], 0
je 0x44a218
mov eax, dword [ebp + 0x5c]
mov byte [ebp + 0x59], 0
call fcn.0042a026
cmp byte [ebp + 0x4e], 0
je 0x44a27d
lea ecx, [ebp + 0x20]
call fcn.00427365
lea ecx, [ebp - 0x84]
call fcn.00427365
cmp byte [ebp + 0x59], 0
je 0x44a23f
mov eax, dword [ebp + 0x5c]
call fcn.0042a026
lea ecx, [ebp + 0x5c]
call fcn.00402a26
xor eax, eax
test byte [ebp + 0x4e], 0x20
jne 0x44a255
cmp dword [ebp - 0x60], 0xc
je 0x44a269
push 1
push eax
push dword [ebp + 0x10]
call fcn.004301b3
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x35], 0x10
mov esi, eax
je 0x448ffd
mov esi, dword [ebp - 0x34]
jmp 0x448ffd
xor esi, esi
jmp 0x448fea