Function at 0x44a907
Capabilities:
Encode data using base64
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x618
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0xa0], ecx
call fcn.00428a5b
pop ecx
push 5
lea ecx, [ebp - 0x28]
call fcn.0042e1e2
push 0x14
lea ecx, [ebp - 0x170]
call fcn.0042e1e2
lea ecx, [ebp - 0xc4]
call fcn.0042e1c4
lea ecx, [ebp - 0x7c]
call fcn.0042e1c4
lea ecx, [ebp - 0x5c]
call fcn.0042e1c4
mov eax, dword [ebp + 0x78]
or ebx, 0xffffffff
mov dword [ebp + 0x18], eax
push 0x2c
lea eax, [ebp - 0x7c]
push eax
xor edi, edi
lea eax, [ebp + 0x18]
push eax
mov dword [ebp + 0x30], 0xfffc0000
mov dword [ebp + 0x60], edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xb0], ebx
mov byte [ebp - 6], 0
mov byte [ebp + 0x16], 0
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp + 0x4b], 0
mov byte [ebp + 0x2f], 0
call fcn.0043060a
mov eax, dword [ebp - 0x7c]
mov word [eax], di
mov eax, dword [ebp + 0x18]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x44a9fe
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x18], eax
push 0x2c
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0043060a
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], di
mov byte [ebp + 0x3d], 0
mov byte [ebp + 0x3f], 0
mov byte [ebp - 0x33], 0
mov byte [ebp + 0x3a], 0
mov byte [ebp + 2], 0
mov byte [ebp - 0x29], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x6b], 0
mov byte [ebp + 0x5e], 0
mov byte [ebp + 0x5c], 0
mov byte [ebp + 0x5d], 0
mov byte [ebp - 5], 0
mov byte [ebp + 0x17], 0
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 4], edi
mov byte [ebp - 0x68], 0
mov dword [ebp - 0xc], 0xfffff000
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0xd4], ebx
je 0x44b14f
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aa87
or byte [ebp + 0x3d], 1
jmp 0x44b0da
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aaa7
or byte [ebp + 0x3d], 2
jmp 0x44b0da
push 6
lea eax, [ebp + 0x78]
push eax
push 0x48bbb8
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aaca
or byte [ebp - 0xb6], 1
jmp 0x44b0da
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aaed
or byte [ebp - 0xb6], 2
jmp 0x44b0da
push 4
lea eax, [ebp + 0x78]
push eax
push 0x48bba8
call fcn.0042fc5f
add esp, 0xc
test al, al
jne 0x44b106
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.0042fc5f
add esp, 0xc
test al, al
jne 0x44b0da
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ab43
or dword [ebp - 4], 1
jmp 0x44b0da
push 4
pop esi
push esi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ab65
or dword [ebp - 4], 2
jmp 0x44b0da
push 5
lea eax, [ebp + 0x78]
push eax
push 0x48bb88
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ab85
or dword [ebp - 4], 0x10
jmp 0x44b0da
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aba4
or dword [ebp - 4], esi
jmp 0x44b0da
push 3
lea eax, [ebp + 0x78]
push eax
push 0x48bb7c
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44abc4
mov byte [ebp + 0x5e], 1
jmp 0x44b0da
push esi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44abe3
mov byte [ebp + 0x5c], 1
jmp 0x44b0da
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ac03
mov byte [ebp + 0x5c], 0x21
jmp 0x44b0da
push esi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ac22
mov byte [ebp + 0x5d], 1
jmp 0x44b0da
push esi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ac41
mov byte [ebp - 0x2a], 1
jmp 0x44b0da
push esi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ac60
mov byte [ebp - 5], 1
jmp 0x44b0da
push 6
lea eax, [ebp + 0x78]
push eax
push 0x487fc8
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44ac80
mov byte [ebp - 0x21], 1
jmp 0x44b0da
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aca0
mov byte [ebp + 0x2f], 1
jmp 0x44b0da
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44acc0
mov byte [ebp + 0x2f], 0xff
jmp 0x44b0da
mov esi, dword [ebp + 0x78]
push 4
push esi
push 0x48bb3c
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44ad43
lea ecx, [esi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x44acf3
cmp ax, 0x3d
je 0x44acf3
call fcn.0040ac1b
test al, al
je 0x44ad43
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0x58], edi
je 0x44ad08
mov dword [ebp - 0x54], 0x48bb34
jmp 0x44ad34
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00403ff2
mov eax, dword [ebp + 0x78]
cmp word [eax], di
pop ecx
pop ecx
je 0x44ad34
mov word [eax], di
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
pop ecx
jmp 0x44b0da
push 4
push esi
push str._pbr
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44ada5
lea ecx, [esi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x44ad73
cmp ax, 0x3d
je 0x44ad73
call fcn.0040ac1b
test al, al
je 0x44ada5
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0x54], edi
push eax
je 0x44ad92
mov dword [ebp - 0x58], 0x4855be
call fcn.00403ff2
pop ecx
jmp 0x44ad34
add dword [ebp + 0x78], 2
call fcn.00428a5b
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
jmp 0x44ad1a
push 9
push esi
push str._alignend
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44ae2c
lea ecx, [esi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x44add5
cmp ax, 0x3d
je 0x44add5
call fcn.0040ac1b
test al, al
je 0x44ae2c
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x44ae1d
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0040fd8a
add esp, 4
test al, al
je 0x44b0be
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0xc]
push eax
mov dword [ebp + 0xc], ecx
call fcn.00432f9a
cmp dword [ebp - 0x1c], edi
pop ecx
pop ecx
jg 0x44b0be
jl 0x44ae1d
cmp dword [ebp - 0x20], edi
ja 0x44b0be
mov dword [ebp - 0x20], 0xfffffffe
mov dword [ebp - 0x1c], ebx
jmp 0x44b0be
push 6
push esi
push str._align
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44aecb
lea ecx, [esi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x44ae60
cmp ax, 0x3d
je 0x44ae60
call fcn.0040ac1b
test al, al
je 0x44aecb
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], ecx
mov esi, ecx
call fcn.00403ff2
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
cmp word [esi], 0x3d
pop ecx
pop ecx
je 0x44ae8a
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
jmp 0x44b0da
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0040fd8a
add esp, 4
test al, al
je 0x44b0da
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp + 0xc]
push eax
mov dword [ebp + 0xc], ecx
call fcn.00432f9a
cmp dword [ebp - 0x38], edi
pop ecx
pop ecx
jg 0x44b0da
jl 0x44ae7f
cmp dword [ebp - 0x3c], edi
ja 0x44b0da
jmp 0x44ae7f
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44aeeb
mov byte [ebp - 0x33], 1
jmp 0x44b0da
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4874c8
call fcn.0042fc5f
add esp, 0xc
test al, al
jne 0x44b0d6
push 4
pop esi
push esi
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0042fc5f
add esp, 0xc
test al, al
jne 0x44b0d6
push esi
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44af46
or dword [ebp - 4], 0x20
mov byte [ebp + 2], 1
jmp 0x44b0da
push 6
push dword [ebp + 0x78]
push str._swap:
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44af8f
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
test eax, eax
pop ecx
pop ecx
jl 0x44dd45
cmp dword [ebp - 0xc], 1
jl 0x44dd45
cmp dword [ebp - 0xc], esi
jg 0x44dd45
jmp 0x44b0da
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44b02e
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov esi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x4c], esi
call fcn.00404037
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040fd8a
add esp, 0xc
test al, al
je 0x44afe9
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00432f9a
pop ecx
pop ecx
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0x3a
jne 0x44b008
add dword [ebp + 0x4c], 2
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00432f9a
pop ecx
pop ecx
mov eax, dword [ebp + 0x4c]
cmp word [eax], 0x3a
jne 0x44b0da
add dword [ebp + 0x4c], 2
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.00432f9a
jmp 0x44b0d0
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0042996a
add esp, 0xc
test al, al
jne 0x44b0e6
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44b08a
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x50], 0x42
call fcn.00430ad7
mov al, byte [ebp - 0x50]
add esp, 0xc
mov byte [ebp - 0x68], al
jmp 0x44b0da
push esi
push dword [ebp + 0x78]
push str._iv
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44b0b5
add dword [ebp + 0x78], 8
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
jmp 0x44b0d0
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x44b0e6
lea eax, [ebp + 0x78]
push eax
call fcn.00403ff2
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
pop ecx
jmp 0x44ad3d
mov byte [ebp + 0x3a], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], di
jne 0x44aa67
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x44b144
cmp dword [ebp - 0x1c], ebx
jne 0x44b144
mov eax, dword [ebp - 0x3c]
cmp eax, 0xfffffff7
jne 0x44b13b
cmp dword [ebp - 0x38], ebx
jne 0x44b13b
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x44b14f
push str.21:INDATA
lea ecx, [ebp - 0x68]
call fcn.0043a4ba
push dword [ebp + 0x78]
lea ecx, [ebp - 0x68]
call fcn.0042e232
push dword [ebp - 0x68]
mov ecx, dword [ebp - 0xa0]
call fcn.0041e615
lea ecx, [ebp - 0x68]
mov esi, eax
call fcn.00428a48
jmp 0x44dd4a
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x3c], 0xfffffff7
jne 0x44b159
cmp dword [ebp - 0x38], ebx
jne 0x44b159
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], edi
cmp dword [ebp - 0x20], 0xfffffff7
jne 0x44b170
cmp dword [ebp - 0x1c], ebx
jne 0x44b170
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
push 4
pop esi
push esi
lea eax, [ebp + 0x78]
push eax
push 0x48bad0
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b1dc
push esi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b1a5
mov byte [ebp + 0x3f], 1
jmp 0x44b1dc
push esi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b1c1
mov byte [ebp + 0x3f], 2
jmp 0x44b1dc
push 3
lea eax, [ebp + 0x78]
push eax
push 0x48babc
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b1dc
mov byte [ebp + 0x3f], 3
push esi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x3c], 0
call fcn.0042fc5f
xor esi, esi
add esp, 0xc
inc esi
test al, al
je 0x44b200
mov byte [ebp + 0x4b], 1
mov dword [ebp + 0x60], esi
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b21e
mov byte [ebp + 0x3c], 1
mov dword [ebp + 0x60], esi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.0042fc5f
add esp, 0xc
test al, al
je 0x44b23c
mov byte [ebp + 0x3c], 0x10
mov dword [ebp + 0x60], esi
mov esi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00403ff2
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0xc4]
call fcn.0042e2ea
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x44b283
mov dword [ebp - 0x64], 0x80
jmp 0x44b29a
cmp ax, 0x2d
jne 0x44b2a4
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x44b2a4
mov dword [ebp - 0x64], edi
lea eax, [ebp + 0x78]
push eax
call fcn.00403ff2
pop ecx
xor esi, esi
xor eax, eax
mov dword [ebp - 0x1a8], esi
lea edi, [ebp - 0x1a4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x49b61c
mov dword [ebp - 0x134], 0xebd0a0a2
mov word [ebp - 0x130], 0xb9e5
mov word [ebp - 0x12e], 0x4433
mov byte [ebp - 0x12c], 0x87
mov byte [ebp - 0x12b], 0xc0
mov byte [ebp - 0x12a], 0x68
mov byte [ebp - 0x129], 0xb6
mov byte [ebp - 0x128], 0xb7
mov byte [ebp - 0x127], 0x26
mov byte [ebp - 0x126], 0x99
mov byte [ebp - 0x125], 0xc7
stosd dword es:[edi], eax
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x160], esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x100], str.MS_Basic_Data
mov dword [ebp - 0x118], esi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0x11c], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp + 0x5d], 0
jne 0x44b38e
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x44b3bf
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0040fd8a
add esp, 4
test al, al
jne 0x44b3bf
mov ecx, edx
mov byte [ebp - 0x29], 1
mov dword [ebp + 0x78], ecx
jmp 0x44b3bf
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043f4b5
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x118], eax
jne 0x44b3bc
push 0x49b61c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
jmp 0x44dd4a
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x44b3cf
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 6], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x44b3e0
lea eax, [ebp + 0x78]
push eax
call fcn.00404037
jmp 0x44b3f4
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00433037
pop ecx
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x32], 1
jne 0x44b40b
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x32], 0
cmp word [eax], 0x2d
jne 0x44b41c
lea eax, [ebp + 0x78]
push eax
call fcn.00404037
jmp 0x44b430
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00433037
pop ecx
mov dword [ebp - 0x11c], eax
cmp byte [ebp + 0x5d], 0
pop ecx
je 0x44b466
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043f4b5
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00432f9a
add esp, 0x10
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x148], esi
mov di, word [eax]
cmp di, 0x2d
je 0x44b4c0
cmp byte [ebp + 0x5d], 0
je 0x44b4c0
cmp di, si
je 0x44b4c0
mov dword [ebp - 0x14c], eax
push esi
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.004149d8
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
add esp, 0xc
mov dword [ebp - 0x10c], 1
mov dword [ebp - 0x100], eax
mov word [eax + ecx*2], si
cmp byte [ebp + 0x3f], 1
je 0x44b4c9
mov dword [ebp + 0x30], esi
mov esi, dword [ebp - 0xc4]
push 5
push esi
push str._img
mov dword [ebp + 0x78], esi
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44b539
mov ecx, esi
add ecx, 0xa
xor edx, edx
mov esi, ecx
xor edi, edi
jmp 0x44b506
mov eax, edx
call fcn.0040ac1b
test al, al
jne 0x44b511
cmp dx, 0x23
je 0x44b511
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
cmp dx, di
jne 0x44b4f3
sub ecx, esi
sar ecx, 1
cmp ecx, edi
jle 0x44b52a
push ecx
push esi
lea ecx, [ebp - 0x5c]
call fcn.0042e2ea
mov dword [ebp + 0x30], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00428a5b
mov esi, dword [ebp + 0x78]
pop ecx
jmp 0x44b579
push 2
push esi
push 0x48ba7c
call fcn.0042996a
add esp, 0xc
test al, al
je 0x44b553
add esi, 4
mov dword [ebp + 0x78], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040fd8a
add esp, 4
test al, al
je 0x44b577
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
mov esi, dword [ebp + 0x78]
pop ecx
pop ecx
xor edi, edi
mov ax, word [esi]
cmp ax, 0x23
je 0x44b58c
cmp ax, 0x3a
jne 0x44b61f
inc esi
inc esi
push 2
push esi
push 0x48ba78
mov dword [ebp + 0x78], esi
call fcn.0042996a
push 2
push esi
push 0x48ba74
mov byte [ebp + 0x6b], al
call fcn.0042996a
add esp, 0x18
cmp byte [ebp + 0x6b], 0
mov byte [ebp + 0x3b], al
jne 0x44b5c9
cmp word [esi], 0x2b
jne 0x44b5c9
inc esi
inc esi
mov byte [ebp + 0x17], 1
mov dword [ebp + 0x78], esi
cmp byte [ebp + 0x3b], 0
jne 0x44b5ed
mov ax, word [esi]
cmp ax, 0x40
je 0x44b5e4
cmp ax, 0x2d
je 0x44b5e4
cmp ax, 0x3d
jne 0x44b5ed
or dword [ebp - 4], 2
inc esi
inc esi
mov dword [ebp + 0x78], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040fd8a
add esp, 4
test al, al
je 0x44b61f
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00430ad7
test eax, eax
pop ecx
pop ecx
jle 0x44b61f
cmp dword [ebp + 0x60], edi
mov byte [ebp + 0x16], 1
jne 0x44b61f
mov byte [ebp + 0x6b], 1
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x20], eax
mov eax, dword [ebp - 0x5c]
lea esi, [ebp - 0x258]
mov word [ebp - 0x258], di
cmp word [eax], di
mov dword [ebp - 0x80], esi
je 0x44b642
mov esi, eax
mov dword [ebp - 0x80], esi
push dword [ebp + 0x30]
lea eax, [ebp - 0x258]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x11
push esi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x44b681
lea eax, [ebp + 0x20]
push eax
lea eax, [ebp + 0xc]
add esi, 0x22
push eax
mov dword [ebp + 0xc], esi
call fcn.00430ad7
pop ecx
pop ecx
cmp byte [ebp + 0x3c], 0
jne 0x44b68d
cmp byte [ebp + 0x5c], 0
je 0x44b69b
cmp dword [ebp + 0x30], edi
jge 0x44b69b
cmp dword [ebp + 0x20], edi
jl 0x44b7d7
mov esi, dword [ebp + 0x60]
cmp esi, edi
mov dword [ebp + 0x6c], edi
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x18], edi
jg 0x44b6be
cmp byte [ebp + 0x3f], 0
jg 0x44b6be
cmp dword [ebp - 0x54], edi
jne 0x44b6be
cmp dword [ebp - 0x58], edi
mov dword [ebp - 0x50], edi
je 0x44b6c5
mov dword [ebp - 0x50], 1
cmp byte [ebp + 0x2f], 0
je 0x44b6df
cmp dword [ebp + 0x20], edi
jl 0x44b6df
movsx eax, byte [ebp + 0x2f]
push eax
push dword [ebp + 0x20]
call fcn.00403dde
pop ecx
pop ecx
cmp dword [ebp - 0xc], edi
jle 0x44b7e1
cmp byte [ebp + 0x5d], 0
jne 0x44b7e1
cmp dword [ebp + 0x30], edi
jge 0x44b703
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x44b7cf
cmp dword [ebp - 0xc], esi
je 0x44b7cf
cmp esi, 1
jl 0x44b7cf
cmp esi, 4
jg 0x44b7cf
cmp byte [ebp + 0x3d], 2
jl 0x44b7cf
push 6
pop ecx
push dword [ebp + 0x30]
mov esi, str.21:INDATA
lea edi, [ebp - 0x5a8]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
mov ecx, 0xae
lea edi, [ebp - 0x590]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x258]
push 0x4870bc
push eax
call esi
mov ecx, dword [ebp - 0x5c]
add esp, 0xc
cmp word [ecx], 0
lea eax, [ebp - 0x258]
je 0x44b772
mov eax, ecx
movsx ecx, byte [ebp + 0x5e]
push ecx
push dword [ebp - 0xc]
push dword [ebp + 0x60]
push eax
lea eax, [ebp - 0x592]
push str.__SwapPhyID___.300s___d__d__d
push eax
call esi
mov ecx, dword [ebp - 0xa0]
add esp, 0x18
lea eax, [ebp - 0x5a8]
push eax
call fcn.0041e615
cmp byte [ebp + 0x5c], 0
mov dword [ebp + 0x18], eax
je 0x44b7b4
cmp dword [ebp + 0x30], 0
jge 0x44d508
lea ecx, [ebp + 0x6c]
call fcn.00402abc
push 0x49b61c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp + 0x18]
jmp 0x44dd4a
lea ecx, [ebp + 0x6c]
call fcn.00402abc
push 0x49b61c
jmp 0x44dd3f
cmp byte [ebp + 0x3c], 0x10
jne 0x44b7f1
test byte [ebp + 0x5c], 0x20
jne 0x44d4f2
cmp byte [ebp + 0x2f], 0
mov esi, dword [ebp - 4]
je 0x44b827
cmp dword [ebp - 0x50], edi
jne 0x44b827
cmp byte [ebp + 0x5e], 0
jne 0x44d4f8
cmp byte [ebp + 0x5c], 0
jne 0x44d500
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, edi
jmp 0x44ddf1
push 0x600
lea ecx, [ebp + 0x64]
call fcn.0042e06b
mov eax, dword [ebp + 0x64]
add eax, 0x200
and eax, 0xfffffe00
cmp dword [ebp - 0x54], edi
mov dword [ebp + 0x34], eax
jne 0x44d549
cmp dword [ebp - 0x58], edi
jne 0x44d832
cmp byte [ebp + 0x3f], 1
je 0x44dbab
cmp byte [ebp + 0x3f], 2
je 0x44dbc2
cmp byte [ebp + 0x3f], 3
je 0x44dc1c
cmp byte [ebp + 0x3b], 0
je 0x44b893
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x6b], 0
je 0x44b8a0
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x3a], 0
je 0x44b8b8
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x40], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edi
dec dword [ebp + 0x60]
cmp byte [ebp + 0x5d], 0
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x94], ebx
mov dword [ebp - 0x90], ebx
mov byte [ebp - 0x31], 0
mov byte [ebp - 0x34], 0
mov dword [ebp + 4], edi
mov byte [ebp + 1], 0
mov byte [ebp + 3], 0
mov dword [ebp - 0x30], edi
jne 0x44b902
cmp dword [ebp - 0x10], edi
jne 0x44b902
mov eax, dword [ebp + 0x50]
or eax, dword [ebp + 0x54]
jne 0x44b902
mov eax, dword [ebp + 0x40]
or eax, dword [ebp + 0x44]
jne 0x44b902
mov byte [ebp + 0x3a], 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 - 0x80]
lea ecx, [ebp + 0x6c]
call fcn.00404073
cmp dword [ebp + 0x6c], edi
je 0x44dc6c
push 1
push edi
push dword [ebp + 0x6c]
call fcn.00432498
add esp, 0xc
cmp byte [ebp + 0x3c], 0x10
mov dword [ebp + 0xc], eax
je 0x44d4ea
cmp byte [ebp + 0x3c], 1
je 0x44dc74
cmp dword [ebp - 0x10], 0xff
mov dword [ebp - 0x174], edi
jg 0x44dca7
cmp byte [ebp + 0x6b], 0
jne 0x44b9b0
cmp dword [ebp + 0x60], edi
jge 0x44b9b0
cmp dword [ebp + 0x54], edi
jg 0x44dca7
jl 0x44b984
cmp dword [ebp + 0x50], edi
jae 0x44dca7
cmp dword [ebp + 0x44], edi
jg 0x44dca7
jl 0x44b998
cmp dword [ebp + 0x40], edi
jae 0x44dca7
cmp dword [ebp - 0x10], edi
jge 0x44dca7
mov dword [ebp - 0x10], ebx
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ebx
cmp byte [ebp + 0x6b], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x124], ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x14], eax
jne 0x44b9f5
cmp byte [ebp + 0x3b], 0
jne 0x44b9f5
cmp eax, 4
jl 0x44bfbf
cmp byte [ebp + 0x5d], 0
jne 0x44bfbf
cmp byte [ebp + 0x4b], 0
jne 0x44bfbf
cmp byte [ebp + 0x6b], 0
je 0x44ba16
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x10], 5
je 0x44dca7
cmp dword [ebp - 0x10], 0xf
je 0x44dca7
xor esi, esi
push 0x100000
lea ecx, [ebp + 8]
mov dword [ebp + 0x4c], esi
call fcn.0042e06b
lea eax, [ebp + 0x4c]
push eax
push dword [ebp + 8]
push dword [ebp + 0x6c]
call fcn.0042b613
mov ecx, dword [ebp + 0x4c]
add esp, 0xc
cmp byte [ebp + 0x6b], 0
mov edi, eax
jne 0x44ba82
cmp ecx, dword [ebp + 0x60]
jge 0x44ba64
cmp dword [ebp + 0x60], 4
jge 0x44babf
cmp byte [ebp + 0x6b], 0
jne 0x44ba82
cmp byte [ebp + 0x3b], 0
jne 0x44ba82
mov edx, dword [ebp + 0x60]
lea eax, [edx + 1]
cmp eax, 4
mov byte [ebp + 0x4a], 0
jg 0x44baab
dec eax
jmp 0x44bab2
cmp byte [ebp + 0x3b], 0
mov byte [ebp + 0x4a], 1
jne 0x44bae3
cmp byte [ebp + 0x6b], 0
je 0x44bae8
cmp dword [ebp - 0x10], esi
jl 0x44babf
cmp word [ebp - 0x64], si
jle 0x44baa6
mov dword [ebp - 0x64], 0x80
jmp 0x44bae8
mov dword [ebp - 0x64], esi
jmp 0x44bae8
lea eax, [eax*4 - 0x10]
cmp eax, esi
jle 0x44babf
cmp eax, ecx
jl 0x44bae8
cmp edx, 4
jle 0x44bae8
lea ecx, [ebp + 8]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, esi
jmp 0x44dd3c
cmp ecx, 4
jle 0x44babf
cmp ecx, 4
jle 0x44baf8
lea eax, [ecx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0x58], eax
jmp 0x44bafb
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp + 0x24], ebx
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x44bb15
cmp cl, 0xf
jne 0x44bb18
mov dword [ebp + 0x24], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x44bb09
cmp byte [ebp + 0x4a], 0
je 0x44bb2e
cmp dword [ebp + 0x24], esi
jl 0x44babf
mov eax, dword [ebp + 0x24]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea esi, [eax + edi + 0x30]
mov ebx, 0x200
push ebx
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.004711e0
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0x16c], eax
push dword [esi + 0x10]
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], edx
call fcn.004711e0
mov ebx, eax
mov eax, dword [ebp + 0x58]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x3b], 0
mov dword [ebp - 0x194], edx
lea esi, [eax + edi + 0x30]
je 0x44bc5b
mov eax, dword [ebp + 0x4c]
xor esi, esi
cmp eax, 8
jne 0x44bbab
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x168]
jmp 0x44bc03
add eax, 0xfffffff8
and eax, 0xfffffffc
lea eax, [eax + eax*8]
shl eax, 4
lea edi, [eax + edi + 0x30]
lea eax, [edi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x44bbdd
cmp cl, 0xf
je 0x44bbdd
inc esi
add eax, 0x90
cmp esi, 4
jl 0x44bbbe
lea ecx, [ebp + 8]
jmp 0x44dd20
mov ebx, dword [edi + 0x24]
xor eax, eax
push eax
push 0x200
push dword [edi + 0xc]
mov dword [ebp + 4], eax
push dword [edi + 8]
call fcn.004711e0
mov ecx, eax
sub ecx, ebx
mov ebx, dword [ebp + 4]
sbb edx, ebx
test esi, esi
jl 0x44bbd5
and dword [ebp - 0x1d0], 0
xor eax, eax
lea edi, [ebp - 0x1cc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x1d0]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.004332d8
add esp, 0x14
cmp byte [ebp + 0x5e], 0
je 0x44bc3c
mov eax, dword [ebp + 0x6c]
mov byte [ebp + 0x5e], 0
call fcn.0042b79e
lea ecx, [ebp + 8]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
cmp byte [ebp + 0x5c], 0
je 0x44dde2
jmp 0x44d4f2
cmp dword [ebp + 0x4c], 4
jg 0x44bc69
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x1c], eax
jmp 0x44bc88
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x44bc7a
cmp cl, 0xf
jne 0x44bc7d
mov dword [ebp + 0x1c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x44bc6e
cmp dword [ebp + 0x1c], 0
jge 0x44bc98
cmp byte [ebp + 0x6b], 0
je 0x44bbd5
cmp byte [ebp + 0x4a], 0
je 0x44bca4
and dword [ebp - 0x14], 0
jmp 0x44bcce
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x44bcb6
test edx, edx
jne 0x44bcc3
cmp cl, 5
je 0x44bcc3
cmp cl, 0xf
je 0x44bcc3
mov dword [ebp - 0x14], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x44bcac
cmp byte [ebp + 0x4a], 0
jne 0x44bcde
cmp dword [ebp - 0x14], 0
jl 0x44bbd5
cmp byte [ebp + 0x6b], 0
je 0x44bed4
mov eax, dword [ebp + 0x58]
test eax, eax
jg 0x44bcf2
mov eax, dword [ebp + 0x24]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + edi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp - 0x60], eax
mov eax, dword [eax + 0xc]
push 0x200
push eax
push ecx
mov dword [ebp - 0xd8], eax
call fcn.004711e0
cmp dword [ebp + 0x4c], 4
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], edx
jle 0x44bdd3
cmp dword [ebp + 0x1c], 0
jge 0x44bdd3
cmp byte [esi + 0x20], 0
je 0x44dc9a
mov eax, dword [ebp + 0x4c]
cmp eax, 8
jle 0x44bd54
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x44bd57
mov eax, dword [ebp + 0x24]
push 0
lea eax, [eax + eax*8]
push 0x200
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.004711e0
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0xec], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push 0x200
push ecx
push eax
mov dword [ebp - 0xe8], edx
call fcn.004711e0
mov ecx, eax
sub eax, dword [ebp - 0x108]
mov esi, edx
mov dword [ebp - 0x124], eax
mov eax, esi
sbb eax, dword [ebp - 0x104]
sub ebx, ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x194]
sbb eax, esi
add ebx, dword [ebp - 0x108]
adc eax, dword [ebp - 0x104]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], eax
jmp 0x44be1b
cmp dword [ebp + 0x58], 0
jle 0x44bdf9
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp - 0xd8]
push 0
push 0x200
push eax
push ecx
call fcn.004711e0
mov ecx, eax
mov eax, dword [ebp - 0x194]
sub ebx, ecx
mov esi, edx
sbb eax, esi
add ebx, dword [ebp - 0x108]
adc eax, dword [ebp - 0x104]
and dword [ebp - 0x4c], 0
and dword [ebp - 0x48], 0
test eax, eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], esi
jl 0x44bbd5
jg 0x44be39
test ebx, ebx
jbe 0x44bbd5
cmp byte [ebp - 6], 0
je 0x44be45
add dword [ebp + 0x50], ecx
adc dword [ebp + 0x54], esi
mov edi, ecx
add edi, 1
mov edx, esi
adc edx, 0
cmp dword [ebp + 0x54], edx
jg 0x44be61
jl 0x44be5b
cmp dword [ebp + 0x50], edi
ja 0x44be61
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x54], edx
sub ebx, dword [ebp + 0x50]
sbb eax, dword [ebp + 0x54]
add ebx, ecx
adc eax, esi
cmp dword [ebp + 0x44], eax
jl 0x44be7d
jg 0x44be77
cmp dword [ebp + 0x40], ebx
jbe 0x44be7d
mov dword [ebp + 0x40], ebx
mov dword [ebp + 0x44], eax
xor edi, edi
cmp dword [ebp + 0x44], edi
jl 0x44dc9f
jg 0x44be93
cmp dword [ebp + 0x40], edi
jb 0x44dc9f
cmp dword [ebp + 0x58], edi
mov eax, dword [ebp + 0x4c]
jle 0x44beb1
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x44bea7
inc eax
jmp 0x44beb9
cdq
push 4
pop edi
idiv edi
add eax, edi
jmp 0x44beb9
and eax, 0xfffffffc
cmp eax, 3
jg 0x44bebc
inc eax
jmp 0x44bec4
cdq
push 4
pop edi
idiv edi
add eax, edi
mov dword [ebp + 0x60], eax
mov edi, ecx
mov dword [ebp - 0x174], esi
jmp 0x44bfb7
mov eax, dword [ebp + 0x1c]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edi, 0x200
push 0
mov dword [ebp - 0x188], eax
add eax, edi
mov dword [ebp - 0x184], ecx
push edi
adc ecx, 0
push ecx
push eax
call fcn.004711e0
mov ecx, dword [esi + 0x14]
mov ebx, eax
mov eax, dword [esi + 0x10]
push 0
sub eax, edi
push edi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], edx
call fcn.004711e0
cmp byte [ebp - 6], 0
je 0x44bf42
add dword [ebp + 0x50], ebx
mov ecx, dword [ebp - 0x18c]
adc dword [ebp + 0x54], ecx
xor esi, esi
cmp dword [ebp + 0x54], esi
jl 0x44bf6a
jg 0x44bf50
cmp dword [ebp + 0x50], esi
jbe 0x44bf6a
mov ecx, dword [ebp - 0x18c]
cmp dword [ebp + 0x54], ecx
jg 0x44bf68
jl 0x44bf62
cmp dword [ebp + 0x50], ebx
ja 0x44bf68
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x54], ecx
xor esi, esi
cmp dword [ebp + 0x44], esi
jl 0x44bf9c
jg 0x44bf76
cmp dword [ebp + 0x40], esi
jbe 0x44bf9c
cmp dword [ebp + 0x44], edx
jl 0x44bf88
jg 0x44bf82
cmp dword [ebp + 0x40], eax
jbe 0x44bf88
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], edx
cmp dword [ebp + 0x44], esi
jl 0x44babf
jg 0x44bf9c
cmp dword [ebp + 0x40], esi
jb 0x44babf
push esi
push edi
push dword [ebp - 0x184]
push dword [ebp - 0x188]
call fcn.004711e0
mov edi, eax
mov dword [ebp - 0x174], edx
lea ecx, [ebp + 8]
call fcn.00428a48
cmp dword [ebp + 0x60], 4
push 0
mov esi, 0x200
push esi
push dword [ebp - 0x174]
setge byte [ebp - 7]
push edi
call fcn.00471360
push esi
mov esi, dword [ebp + 0x34]
mov edi, eax
mov ebx, edx
push 0
add esi, 0x200
push esi
mov dword [ebp - 0x154], edi
mov dword [ebp - 0x150], ebx
call fcn.00470340
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x1c
cmp eax, edi
jne 0x44dcf6
cmp edx, ebx
jne 0x44dcf6
push 0
lea eax, [ebp - 0x18]
push eax
push 0x200
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0x200
push esi
push dword [ebp + 0x34]
mov dword [ebp + 0x58], eax
call fcn.00470580
add esp, 0xc
cmp dword [ebp + 0x58], 0
je 0x44dcf6
cmp byte [ebp + 0x4b], 0
je 0x44c100
cmp byte [ebp + 0x5d], 0
jne 0x44c100
push esi
call fcn.0042b7d7
push 0x40
lea eax, [esi + 0x1be]
push 0
push eax
call fcn.00470340
push 0x200
push esi
push dword [ebp + 0x34]
mov word [esi + 0x1fe], 0xaa55
call fcn.00428aae
add esp, 0x1c
test eax, eax
je 0x44c0c7
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.004298d4
and dword [ebp - 0x18], 0
add esp, 0x10
push 0
lea eax, [ebp - 0x18]
push eax
push 0x200
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
inc eax
mov dword [ebp + 0x18], eax
cmp byte [ebp + 0x5e], 0
je 0x44c0df
cmp dword [ebp + 0x30], 0
jl 0x44c0df
mov eax, dword [ebp + 0x6c]
mov byte [ebp + 0x5e], 0
call fcn.0042b79e
cmp byte [ebp + 0x5c], 0
je 0x44dcc0
cmp dword [ebp + 0x30], 0
jl 0x44dcc0
lea ecx, [ebp + 0x64]
call fcn.00428a48
jmp 0x44d508
cmp byte [ebp + 0x3d], 0
jne 0x44c116
cmp byte [ebp + 0x16], 0
je 0x44c126
cmp dword [ebp + 0x60], 1
jle 0x44dd25
cmp byte [ebp + 0x16], 0
je 0x44c126
cmp dword [ebp + 0x60], 0
jl 0x44dd25
push dword [ebp + 0x6c]
call fcn.0042b29c
lea ecx, [ebp + 0x28]
mov dword [ebp + 0x1c], eax
mov dword [esp], 0x100000
call fcn.0042e06b
mov esi, dword [ebp + 0x28]
xor ebx, ebx
cmp dword [ebp + 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
jl 0x44c16c
push dword [ebp + 0x6c]
call fcn.0042b3ac
pop ecx
push ebx
push dword [ebp + 0x1c]
push edx
push eax
call fcn.004711e0
mov dword [ebp - 0x40], edx
jmp 0x44c1b0
lea eax, [ebp - 0x1f4]
push eax
push ebx
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x44c1b3
test byte [ebp - 0x1f4], 0x10
jne 0x44c1b3
mov eax, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1d4]
and eax, 0xfffffe00
xor ecx, ecx
shld ecx, eax, 0x17
shl eax, 0x17
shr edx, 9
xor edi, edi
or eax, edx
or ecx, edi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x84]
push eax
push esi
push dword [ebp + 0x6c]
call fcn.0042b613
mov ecx, dword [ebp - 0x5c]
mov cx, word [ecx]
add esp, 0xc
cmp cx, bx
mov dword [ebp - 0x84], eax
jne 0x44c1db
cmp eax, ebx
je 0x44c218
cmp eax, ebx
je 0x44c1e3
mov eax, dword [eax]
jmp 0x44c1e5
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x5f]
cmp byte [ebp + 0x5f], 0
je 0x44c1fc
cmp byte [ebp - 0x2a], 0
mov byte [ebp + 0x3e], 1
je 0x44c200
mov byte [ebp + 0x3e], 0
cmp byte [ebp - 0x21], 0
jne 0x44c242
cmp byte [ebp + 0x4b], 0
jne 0x44c242
cmp byte [ebp + 0x3e], 0
je 0x44c23c
cmp byte [ebp + 0x5d], 0
jne 0x44c242
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, ebx
jmp 0x44dd3c
cmp byte [ebp + 0x5d], 0
jne 0x44c218
cmp cx, bx
mov eax, dword [ebp - 0xc0]
mov dword [ebp + 0x24], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp + 0x58], eax
jne 0x44c30f
xor eax, eax
mov dword [ebp - 0x1c0], ebx
lea edi, [ebp - 0x1bc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0x18]
push eax
push 0x18
lea eax, [ebp - 0x1c0]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0xbc], ebx
jg 0x44c2bf
jl 0x44c2a9
cmp dword [ebp - 0xc0], ebx
ja 0x44c2bf
mov eax, dword [ebp - 0x1b4]
mov dword [ebp + 0x24], eax
cdq
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
cmp dword [ebp - 0xa4], ebx
jg 0x44c2e7
jl 0x44c2d1
cmp dword [ebp - 0xa8], ebx
ja 0x44c2e7
mov eax, dword [ebp - 0x1b0]
mov dword [ebp + 0x4c], eax
cdq
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xb0], ebx
jg 0x44c30f
jl 0x44c2f9
cmp dword [ebp - 0xb4], ebx
ja 0x44c30f
mov eax, dword [ebp - 0x1ac]
mov dword [ebp + 0x58], eax
cdq
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
cmp dword [ebp - 0xbc], ebx
jg 0x44c335
jl 0x44c321
cmp dword [ebp - 0xc0], ebx
ja 0x44c335
mov eax, 0xff
mov dword [ebp + 0x24], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], ebx
cmp dword [ebp - 0xa4], ebx
jg 0x44c359
jl 0x44c347
cmp dword [ebp - 0xa8], ebx
ja 0x44c359
push 0x3f
pop eax
mov dword [ebp + 0x4c], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], ebx
cmp dword [ebp - 0xb0], ebx
jg 0x44c37f
jl 0x44c36b
cmp dword [ebp - 0xb4], ebx
ja 0x44c37f
mov eax, 0x200
mov dword [ebp + 0x58], eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], ebx
mov eax, dword [ebp + 0x58]
cdq
mov ecx, 0x200
idiv ecx
cmp byte [ebp + 0x3e], 0
mov esi, dword [ebp + 0x1c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x28]
lea ebx, [eax + esi]
lea edi, [ebx + esi + 0x10000]
mov dword [ebp - 0x60], edi
jne 0x44cc6f
cmp byte [ebp + 0x5d], 0
jne 0x44cc6f
cmp byte [ebp + 0x3a], 0
mov byte [ebp + 0x5f], 0
jne 0x44c836
mov ebx, dword [ebp + 0x54]
xor eax, eax
cmp ebx, eax
jg 0x44c3e6
jl 0x44c3d2
cmp dword [ebp + 0x50], eax
jae 0x44c3e6
cmp dword [ebp + 0x44], eax
jl 0x44c836
jg 0x44c3e6
cmp dword [ebp + 0x40], eax
jb 0x44c836
mov edi, dword [ebp + 0x60]
cmp edi, eax
jl 0x44c836
push 0x100000
lea ecx, [ebp - 0xac]
call fcn.0042e06b
mov eax, dword [ebp + 0x58]
imul eax, dword [ebp + 0x4c]
cdq
mov ecx, 0x200
idiv ecx
mov esi, eax
mov eax, dword [ebp + 0x24]
imul eax, esi
cmp dword [ebp + 0x58], 0
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
jle 0x44dd12
mov eax, dword [ebp - 0x5c]
cmp word [eax], 0
jne 0x44c46d
and dword [ebp - 0x60], 0
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0xac]
push dword [ebp + 0x6c]
call fcn.0042b613
add esp, 0xc
test eax, eax
je 0x44dce3
cmp edi, 4
jl 0x44c46d
cmp byte [ebp + 0x6b], 0
jne 0x44c46d
cmp edi, dword [ebp - 0x60]
jge 0x44dd12
xor ecx, ecx
xor eax, eax
xor edx, edx
cmp ebx, ecx
jl 0x44c511
jg 0x44c486
cmp dword [ebp + 0x50], ecx
jbe 0x44c511
mov edi, dword [ebp - 0x3c]
and edi, dword [ebp - 0x38]
cmp edi, 0xffffffff
jne 0x44c4bf
cmp ebx, dword [ebp - 0x110]
jl 0x44c4ba
jg 0x44c4a6
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp - 0x114]
jb 0x44c4ba
cmp byte [ebp - 7], 0
jne 0x44c4ba
push dword [ebp - 0x110]
push dword [ebp - 0x114]
jmp 0x44c4fb
mov eax, esi
cdq
jmp 0x44c4f9
cmp byte [ebp + 2], 0
jne 0x44c511
mov eax, dword [ebp + 0x58]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x3c]
mov esi, edx
adc esi, dword [ebp - 0x38]
push edx
sub ecx, 1
push eax
sbb esi, 0
push esi
push ecx
call fcn.004711e0
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov esi, edx
cdq
push edx
push eax
push esi
push ecx
call fcn.00471360
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
push edx
push eax
push ebx
push dword [ebp + 0x50]
call fcn.0042b6e8
add esp, 0x10
add dword [ebp + 0x50], eax
adc ebx, edx
mov dword [ebp + 0x54], ebx
xor ecx, ecx
cmp dword [ebp + 0x44], ecx
jl 0x44c53b
jg 0x44c51d
cmp dword [ebp + 0x40], ecx
jbe 0x44c53b
cmp byte [ebp - 0x29], 0
jne 0x44c53b
sub dword [ebp + 0x40], eax
sbb dword [ebp + 0x44], edx
cmp dword [ebp + 0x44], ecx
jg 0x44c53b
jl 0x44c535
cmp dword [ebp + 0x40], ecx
jae 0x44c53b
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x44], ecx
cmp ebx, ecx
jl 0x44c54b
jg 0x44c546
cmp dword [ebp + 0x50], ecx
jbe 0x44c54b
mov edi, dword [ebp + 0x50]
jmp 0x44c54f
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x44], ecx
jl 0x44c589
jg 0x44c55b
cmp dword [ebp + 0x40], ecx
jbe 0x44c589
mov eax, dword [ebp - 0x20]
and eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
jne 0x44c70e
push dword [ebp - 0x110]
add edi, dword [ebp + 0x40]
push dword [ebp - 0x114]
adc ebx, dword [ebp + 0x44]
push ebx
push edi
call fcn.004725e0
sub dword [ebp + 0x40], eax
sbb dword [ebp + 0x44], edx
mov esi, 0x200
cmp dword [ebp - 0x48], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x4a], 0
mov byte [ebp + 0x3e], 0
jl 0x44c6b9
jg 0x44c5b0
cmp dword [ebp - 0x4c], 0
jbe 0x44c6b9
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp - 0x8c]
mov edi, dword [ebp + 0x44]
sbb edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0x10]
add ecx, dword [ebp + 0x50]
cdq
adc edi, dword [ebp + 0x54]
push edx
push eax
push edi
push ecx
call fcn.004711e0
and dword [ebp - 0x144], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x24]
lea edi, [ebp - 0x140]
push dword [ebp + 0x4c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x124]
lea eax, [ebp + 0x3e]
push eax
lea eax, [ebp + 0x4a]
push eax
lea eax, [ebp + 0x5f]
push eax
push dword [ebp - 0x120]
mov dword [ebp - 0x4c], ebx
push edi
mov dword [ebp - 0x48], edx
call fcn.0042b712
mov al, byte [ebp + 0x4a]
add esp, 0x20
push 1
push dword [ebp + 0x24]
mov byte [ebp - 0x143], al
mov al, byte [ebp + 0x3e]
push dword [ebp + 0x4c]
mov byte [ebp - 0x142], al
mov al, byte [ebp + 0x5f]
mov byte [ebp - 0x141], al
lea eax, [ebp + 0x3e]
push eax
lea eax, [ebp + 0x4a]
push eax
lea eax, [ebp + 0x5f]
push eax
push 0
push 2
push dword [ebp - 0x120]
mov byte [ebp - 0x144], 0
push edi
call fcn.00471360
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0042b712
mov al, byte [ebp + 0x4a]
mov byte [ebp - 0x13f], al
mov al, byte [ebp + 0x3e]
mov byte [ebp - 0x13e], al
mov al, byte [ebp + 0x5f]
push 1
mov byte [ebp - 0x13d], al
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0xe8]
mov byte [ebp - 0x140], 5
push dword [ebp - 0xec]
mov dword [ebp - 0x13c], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x138], ebx
call fcn.004332d8
add esp, 0x34
mov eax, dword [ebp + 0x10]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
call fcn.004711e0
cmp dword [ebp + 0x54], 0
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], edx
jl 0x44c778
jg 0x44c6f7
xor eax, eax
cmp dword [ebp + 0x50], eax
jb 0x44c77a
push ebx
push edi
push dword [ebp + 0x54]
push dword [ebp + 0x50]
call fcn.004711e0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
xor eax, eax
jmp 0x44c780
cmp byte [ebp + 2], 0
jne 0x44c589
mov eax, dword [ebp + 0x58]
cdq
mov esi, eax
add eax, dword [ebp - 0x20]
mov ecx, edx
adc ecx, dword [ebp - 0x1c]
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0xc8], edx
call fcn.004711e0
push dword [ebp - 0xc8]
push esi
push edx
push eax
call fcn.00471360
push 0
mov esi, 0x200
push esi
push edx
push eax
call fcn.004711e0
add edi, dword [ebp + 0x40]
push edx
adc ebx, dword [ebp + 0x44]
push eax
push ebx
push edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call fcn.004725e0
sub dword [ebp + 0x40], eax
sbb dword [ebp + 0x44], edx
jmp 0x44c58e
xor eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
cmp dword [ebp + 0x44], eax
jl 0x44c7a1
jg 0x44c78c
cmp dword [ebp + 0x40], eax
jb 0x44c7a1
push ebx
push edi
push dword [ebp + 0x44]
push dword [ebp + 0x40]
call fcn.004711e0
mov dword [ebp - 0x90], edx
jmp 0x44c7a7
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x94], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x70]
setge al
push eax
push dword [ebp + 0x24]
lea eax, [ebp - 0x31]
push dword [ebp + 0x4c]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp + 4]
push eax
push ebx
push edi
call fcn.0042b712
xor ecx, ecx
add esp, 0x20
cmp dword [ebp + 0x54], ecx
jl 0x44c7f9
jg 0x44c7e7
cmp dword [ebp + 0x50], ecx
jbe 0x44c7f9
sub edi, dword [ebp - 0x180]
sbb ebx, dword [ebp - 0x17c]
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], ebx
mov al, byte [ebp - 7]
mov byte [ebp + 0x5f], al
movsx eax, al
push eax
push dword [ebp + 0x24]
lea eax, [ebp + 1]
push dword [ebp + 0x4c]
push eax
lea eax, [ebp + 3]
push eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x94]
lea eax, [edi + eax - 1]
push ecx
push eax
call fcn.0042b712
add esp, 0x20
lea ecx, [ebp - 0xac]
call fcn.00428a48
jmp 0x44c83b
mov esi, 0x200
mov ecx, dword [ebp + 0x34]
mov ebx, dword [ebp - 0x14]
lea eax, [ecx + 0x200]
push esi
push eax
shl ebx, 4
push ecx
lea edi, [eax + ebx]
call fcn.00470580
add esp, 0xc
cmp dword [ebp - 0x48], 0
jl 0x44c897
jg 0x44c866
cmp dword [ebp - 0x4c], 0
jb 0x44c897
cmp dword [ebp - 0x14], 0
jle 0x44c880
mov eax, dword [ebp + 0x34]
push ebx
add eax, 0x3be
push 0
push eax
call fcn.00470340
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.00470340
add esp, 0xc
cmp byte [ebp + 0x6b], 0
mov al, byte [edi + 0x1c2]
jne 0x44c8b9
cmp byte [ebp + 0x3d], 2
jge 0x44c8b9
cmp al, 5
je 0x44dd1d
cmp al, 0xf
je 0x44dd1d
cmp byte [ebp + 0x6b], 0
mov edx, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x44c925
test al, al
je 0x44c925
xor eax, eax
cmp dword [ebp - 0x10], eax
je 0x44c927
cmp byte [ebp + 0x3d], 2
jge 0x44c927
cmp byte [ebp - 7], al
jne 0x44c927
cmp dword [ebp + 0x54], eax
jl 0x44c901
jg 0x44c8ed
cmp dword [ebp + 0x50], eax
jb 0x44c901
cmp dword [ebp - 0x70], edx
jne 0x44dd1d
cmp dword [ebp - 0x6c], eax
jne 0x44dd1d
xor eax, eax
cmp dword [ebp + 0x44], eax
jl 0x44c927
jg 0x44c90d
cmp dword [ebp + 0x40], eax
jb 0x44c927
cmp dword [ebp - 0x94], ecx
jne 0x44c91d
cmp dword [ebp - 0x90], eax
je 0x44c925
test ecx, ecx
jne 0x44dd1d
xor eax, eax
cmp byte [ebp + 0x3a], 0
je 0x44c943
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x90], eax
mov ebx, dword [ebp - 0x10]
cmp ebx, eax
jl 0x44c950
mov byte [edi + 0x1c2], bl
mov ebx, dword [ebp - 0x64]
cmp bx, ax
jl 0x44c95e
mov byte [edi + 0x1be], bl
cmp dword [ebp + 0x54], 0
jg 0x44c98e
jl 0x44c96c
cmp dword [ebp + 0x50], 0
jae 0x44c98e
xor eax, eax
cmp dword [ebp + 0x44], eax
jl 0x44ca03
jg 0x44c982
cmp dword [ebp + 0x40], eax
jb 0x44ca03
mov eax, dword [ebp - 0x94]
lea eax, [eax + edx - 1]
jmp 0x44c9a3
xor eax, eax
cmp dword [ebp + 0x44], eax
jg 0x44c9c7
jl 0x44c99c
cmp dword [ebp + 0x40], eax
jae 0x44c9c7
mov eax, dword [ebp - 0x70]
lea eax, [eax + ecx - 1]
movsx ecx, byte [ebp + 0x5f]
push ecx
push dword [ebp + 0x24]
lea ecx, [ebp + 1]
push dword [ebp + 0x4c]
push ecx
lea ecx, [ebp + 3]
push ecx
lea ecx, [ebp - 0x30]
push ecx
push 0
push eax
call fcn.0042b712
add esp, 0x20
xor eax, eax
cmp dword [ebp + 0x54], eax
jl 0x44c9f7
jg 0x44c9d3
cmp dword [ebp + 0x50], eax
jb 0x44c9f7
mov cl, byte [ebp - 0x34]
mov byte [edi + 0x1bf], cl
mov cl, byte [ebp - 0x31]
mov byte [edi + 0x1c0], cl
mov cl, byte [ebp + 4]
mov byte [edi + 0x1c1], cl
mov ecx, dword [ebp - 0x70]
mov dword [edi + 0x1c6], ecx
cmp dword [ebp + 0x44], eax
jg 0x44ca0f
jl 0x44ca03
cmp dword [ebp + 0x40], eax
jae 0x44ca0f
cmp dword [ebp + 0x54], eax
jl 0x44ca2a
jg 0x44ca0f
cmp dword [ebp + 0x50], eax
jb 0x44ca2a
mov cl, byte [ebp + 3]
mov byte [edi + 0x1c3], cl
mov cl, byte [ebp + 1]
mov byte [edi + 0x1c4], cl
mov cl, byte [ebp - 0x30]
mov byte [edi + 0x1c5], cl
cmp dword [ebp + 0x44], eax
jl 0x44ca42
jg 0x44ca36
cmp dword [ebp + 0x40], eax
jb 0x44ca42
mov ecx, dword [ebp - 0x94]
mov dword [edi + 0x1ca], ecx
cmp dword [ebp - 0x10], eax
jge 0x44ca64
cmp bx, ax
jge 0x44ca64
cmp dword [ebp + 0x54], eax
jg 0x44ca64
jl 0x44ca58
cmp dword [ebp + 0x50], eax
jae 0x44ca64
cmp dword [ebp + 0x44], eax
jl 0x44ca7b
jg 0x44ca64
cmp dword [ebp + 0x40], eax
jb 0x44ca7b
mov ecx, dword [ebp + 0x34]
add ecx, 0x200
mov byte [ecx + 0x1fe], 0x55
mov byte [ecx + 0x1ff], 0xaa
cmp bx, ax
jge 0x44cab3
cmp dword [ebp - 0x10], eax
jge 0x44cab3
cmp dword [ebp + 0x54], eax
jg 0x44cab3
jl 0x44ca91
cmp dword [ebp + 0x50], eax
jae 0x44cab3
cmp dword [ebp + 0x44], eax
jg 0x44cab3
jl 0x44ca9d
cmp dword [ebp + 0x40], eax
jae 0x44cab3
mov eax, dword [ebp + 0x34]
add eax, 0x200
mov byte [eax + 0x1fe], 0x55
mov byte [eax + 0x1ff], 0xaa
mov edi, dword [ebp - 0x154]
xor ebx, ebx
push ebx
push dword [ebp - 0x150]
push edi
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
cmp eax, edi
jne 0x44dd84
cmp edx, dword [ebp - 0x150]
jne 0x44dd84
or edi, dword [ebp - 0x150]
mov edi, dword [ebp + 0x34]
mov dword [ebp + 0x58], 1
jne 0x44cb01
lea eax, [edi + 0x200]
push eax
call fcn.0042b7d7
pop ecx
push esi
lea eax, [edi + 0x200]
push eax
push edi
call fcn.0042e494
add esp, 0xc
test eax, eax
jne 0x44cb3a
mov edi, dword [ebp + 0x6c]
push ebx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x34]
push esi
add eax, 0x200
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x58], eax
call fcn.0042b78c
mov edi, dword [ebp + 0x34]
cmp dword [ebp + 0x54], ebx
jl 0x44cc26
jg 0x44cb4e
cmp dword [ebp + 0x50], esi
jb 0x44cc26
cmp dword [ebp + 0x44], ebx
jl 0x44cc26
jg 0x44cb62
cmp dword [ebp + 0x40], esi
jbe 0x44cc26
cmp byte [ebp - 0x33], 0
je 0x44cc26
push esi
lea eax, [edi + 0x200]
push ebx
push eax
mov dword [ebp + 4], eax
call fcn.00470340
add esp, 0xc
push ebx
push esi
push dword [ebp + 0x54]
push dword [ebp + 0x50]
call fcn.00471360
push ebx
push edx
push eax
push dword [ebp + 0x6c]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], edx
call fcn.004298d4
add esp, 0x10
cmp eax, dword [ebp - 0xf8]
jne 0x44cc23
cmp edx, dword [ebp - 0xf4]
jne 0x44cc23
push ebx
lea eax, [ebp - 0x18]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
mov dword [ebp + 0x58], eax
je 0x44cc23
cmp dword [ebp - 0x18], esi
jne 0x44cc23
push esi
push dword [ebp + 4]
push edi
call fcn.0042e494
add esp, 0xc
test eax, eax
jne 0x44cc26
push ebx
push dword [ebp - 0xf4]
push dword [ebp - 0xf8]
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
cmp eax, dword [ebp - 0xf8]
jne 0x44cc23
cmp edx, dword [ebp - 0xf4]
jne 0x44cc23
push ebx
lea eax, [ebp - 0x18]
push eax
push esi
push dword [ebp + 4]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x58], eax
jmp 0x44cc26
mov dword [ebp + 0x58], ebx
cmp byte [ebp + 0x5e], 0
je 0x44cc38
mov eax, dword [ebp + 0x6c]
mov byte [ebp + 0x5e], 0
call fcn.0042b79e
cmp byte [ebp + 0x5c], 0
jne 0x44d4e2
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
cmp dword [ebp + 0x58], ebx
mov eax, 0x49b61c
jne 0x44dda6
cmp eax, ebx
jmp 0x44d821
cmp byte [ebp + 0x3a], 0
je 0x44cc79
mov byte [ebp + 0x17], 0
cmp byte [ebp + 0x5f], 0
je 0x44cc93
cmp byte [ebp + 0x4b], 0
jne 0x44cc93
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x28]
mov dword [ebp + 0x58], eax
jmp 0x44cc9a
mov dword [ebp + 0x58], 0x80
cmp byte [ebp - 0x32], 0
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x44]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], eax
je 0x44ccca
add ecx, dword [ebp + 0x50]
adc eax, dword [ebp + 0x54]
sub ecx, 1
sbb eax, 0
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], eax
and dword [ebp - 0x78], 0
and dword [ebp - 0x74], 0
cmp byte [ebp + 0x4b], 0
je 0x44cd1c
cmp dword [ebp + 0x54], 0
jg 0x44ccf1
jl 0x44cce6
cmp dword [ebp + 0x50], 1
jae 0x44ccf1
and dword [ebp + 0x54], 0
mov dword [ebp + 0x50], 1
test eax, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], eax
jg 0x44cd14
jl 0x44cd02
cmp ecx, 1
jae 0x44cd14
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
jmp 0x44cd20
xor eax, eax
xor ecx, ecx
lea edx, [ebp - 0x78]
push edx
push ecx
push eax
push esi
push dword [ebp + 0x58]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x28]
push eax
call fcn.0043231c
add esp, 0x1c
cmp byte [ebp + 0x5f], 0
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edx
jne 0x44cd60
or eax, edx
jne 0x44cd60
and dword [ebp - 0x158], 0
mov dword [ebp - 0x15c], 1
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x60], eax
mov dword [ebp + 0x10], 1
jae 0x44cd93
cmp dword [ebp - 0xc], eax
jge 0x44cd93
mov ecx, dword [ebp + 0x60]
push 0x10
shl ecx, 7
lea eax, [ebx + esi]
add ecx, eax
push 0x4889f0
push ecx
call fcn.00428aae
add esp, 0xc
test eax, eax
jne 0x44cd97
and dword [ebp + 0x10], 0
cmp byte [ebp + 0x4b], 0
je 0x44cf56
mov ecx, dword [ebp + 0x58]
cmp dword [ebp + 0x60], ecx
jae 0x44dd1d
lea eax, [ebx + esi]
mov dword [ebp + 0x10], eax
mov eax, ecx
shl eax, 7
xor edx, edx
div esi
test eax, eax
jle 0x44cdef
mov dword [ebp + 4], eax
push 0x1b3
push 0
push dword [ebp + 0x10]
call fcn.00470340
mov eax, dword [ebp + 0x10]
push 0x4a
add eax, 0x1b4
push 0
push eax
call fcn.00470340
add dword [ebp + 0x10], esi
add esp, 0x18
dec dword [ebp + 4]
jne 0x44cdc3
push 0x5c
push 0
push ebx
call fcn.00470340
push 8
push str.EFI_PART
push ebx
call fcn.00470580
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x54]
mov eax, dword [ebp - 0x78]
mov dword [ebx + 0x18], ecx
add esp, 0x18
add ecx, 0x21
mov dword [ebx + 0x28], ecx
mov ecx, dword [ebp - 0x78]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x74]
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], 0x5c
mov dword [ebx + 0x2c], edx
jne 0x44ce64
push 0x10
push 0x48ba18
push eax
call fcn.00470580
add esp, 0xc
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
add eax, 1
push 0x5c
mov dword [ebx + 0x48], eax
mov eax, 0x80
adc ecx, 0
push ebx
push edi
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
call fcn.00470580
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x24], eax
mov eax, dword [ebp + 0x28]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.00470340
add esp, 0x18
cmp dword [ebp - 0x98], 0
jg 0x44ced9
jl 0x44cecb
cmp dword [ebp - 0x9c], 1
jae 0x44ced9
or dword [ebp - 0x9c], 0xffffffff
or dword [ebp - 0x98], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x28]
push 1
push dword [ebp + 0x24]
shl eax, 4
push dword [ebp + 0x4c]
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.0042b712
push 1
push dword [ebp + 0x24]
lea eax, [edi + 0x1c3]
push dword [ebp + 0x4c]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp - 0x98]
push dword [ebp - 0x9c]
call fcn.0042b712
mov eax, dword [ebp + 0x50]
mov dword [edi + 0x1c6], eax
mov eax, dword [ebp - 0x9c]
add esp, 0x40
mov dword [edi + 0x1ca], eax
jmp 0x44d28a
cmp byte [ebp - 5], 0
je 0x44cf66
cmp dword [ebp + 0x60], 0
jl 0x44d28a
cmp byte [ebp + 0x6b], 0
je 0x44cfc1
or dword [ebp + 0x60], 0xffffffff
xor edi, edi
cmp dword [ebp + 0x58], edi
mov byte [ebp + 0x17], 0
jbe 0x44cfc1
lea eax, [ebx + esi]
mov dword [ebp - 0x30], eax
push 0x10
push 0x4889f0
push dword [ebp - 0x30]
call fcn.00428aae
add esp, 0xc
test eax, eax
je 0x44cfa6
add dword [ebp - 0x30], 0x80
inc edi
cmp edi, dword [ebp + 0x58]
jb 0x44cf81
jmp 0x44cfc1
mov dword [ebp + 0x60], edi
push 0x80
lea eax, [ebx + esi]
shl edi, 7
add edi, eax
push 0
push edi
call fcn.00470340
add esp, 0xc
mov eax, dword [ebp + 0x58]
dec dword [ebp - 0xc]
cmp dword [ebp + 0x60], eax
jae 0x44dd1d
cmp dword [ebp - 0xc], eax
jge 0x44dd1d
cmp byte [ebp + 0x17], 0
je 0x44d0eb
xor ecx, ecx
cmp byte [ebp + 0x5f], cl
je 0x44d039
lea eax, [ebx + esi + 0x20]
cmp ecx, dword [ebp + 0x58]
jae 0x44d039
mov edx, dword [eax]
cmp edx, dword [ebp + 0x50]
jne 0x44d002
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x54]
je 0x44d00a
inc ecx
add eax, 0x80
jmp 0x44cfee
mov eax, dword [ebp + 0x1c]
mov edx, ecx
shl edx, 7
add eax, ebx
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4889f0
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 0x44d036
push 0x80
push 0
push eax
call fcn.00470340
add esp, 0xc
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x60]
shl eax, 7
push 0x10
lea edi, [ebx + esi]
add eax, edi
push 0x4889f0
push eax
mov dword [ebp - 0x84], eax
call fcn.00428aae
add esp, 0xc
test eax, eax
je 0x44d0d2
mov esi, dword [ebp + 0x60]
inc esi
cmp esi, dword [ebp + 0x58]
mov dword [ebp + 0x4c], esi
jae 0x44dd1d
shl esi, 7
add esi, edi
push 0x10
push 0x4889f0
push esi
call fcn.00428aae
add esp, 0xc
test eax, eax
je 0x44d09a
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
add esi, 0x80
cmp eax, dword [ebp + 0x58]
jb 0x44d073
jmp 0x44d0c3
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x60]
jle 0x44d0c3
mov edi, eax
mov eax, dword [ebp + 0x1c]
add eax, ebx
shl edi, 7
add edi, eax
mov eax, dword [ebp + 0x4c]
sub eax, dword [ebp + 0x60]
dec eax
lea edx, [edi - 0x80]
push 0x20
pop ecx
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, edx
jne 0x44d0b4
mov eax, dword [ebp + 0x58]
cmp dword [ebp + 0x4c], eax
jae 0x44dd1d
mov esi, dword [ebp + 0x1c]
push 0x80
push 0
push dword [ebp - 0x84]
call fcn.00470340
add esp, 0xc
and dword [ebp + 0x10], 0
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp eax, ecx
jge 0x44d21b
cmp dword [ebp + 0x10], ecx
jne 0x44d124
xor eax, eax
inc eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x118], ecx
jle 0x44d148
mov edi, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
shl edi, 7
add eax, ebx
add edi, eax
lea esi, [ebp - 0x134]
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 + 0x1c]
xor ecx, ecx
cmp dword [ebp - 0xe4], ecx
jle 0x44d16e
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
shl ecx, 7
add eax, ebx
lea edi, [ecx + eax + 0x10]
lea esi, [ebp - 0x1a8]
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 + 0x1c]
xor ecx, ecx
cmp dword [ebp - 0xf0], ecx
jle 0x44d18d
mov edx, dword [ebp + 0x60]
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 - 0x11c], ecx
jle 0x44d1b2
mov edx, dword [ebp + 0x60]
mov edi, dword [ebp - 0x9c]
lea eax, [ebx + esi]
shl edx, 7
mov dword [edx + eax + 0x28], edi
mov edi, dword [ebp - 0x98]
mov dword [edx + eax + 0x2c], edi
cmp dword [ebp - 0xfc], ecx
jle 0x44d1d6
mov eax, dword [ebp + 0x60]
mov edx, dword [ebp - 0x164]
shl eax, 7
add esi, ebx
mov dword [eax + esi + 0x30], edx
mov edx, dword [ebp - 0x160]
mov dword [eax + esi + 0x34], edx
cmp dword [ebp - 0x10c], ecx
jle 0x44d264
mov eax, dword [ebp - 0x100]
cmp word [eax], 0
je 0x44d264
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
shl ecx, 7
add eax, ebx
push 0x48
lea esi, [ecx + eax + 0x38]
push 0
push esi
call fcn.00470340
add esp, 0xc
push 0x24
push dword [ebp - 0x100]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x44d264
cmp eax, dword [ebp + 0x60]
je 0x44d264
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
shl ecx, 7
add eax, ebx
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x2d8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0xc]
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 - 0xc]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x2d8]
rep movsd dword es:[edi], dword [esi]
jge 0x44d264
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0x3a], 0
je 0x44d287
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x1c]
push 0x80
shl ecx, 7
add eax, ebx
add ecx, eax
push 0
push ecx
call fcn.00470340
add esp, 0xc
mov esi, dword [ebp + 0x1c]
xor eax, eax
cmp byte [ebp - 5], al
mov dword [ebp + 0x10], eax
je 0x44d385
cmp byte [ebp + 0x4b], al
jne 0x44d385
cmp dword [ebp + 0x58], eax
mov dword [ebp - 0x14], eax
mov dword [ebp + 0x24], eax
jle 0x44d385
lea eax, [ebx + esi]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x34], eax
mov edi, 0x80
push 0x10
push 0x4889f0
push dword [ebp + 0x4c]
call fcn.00428aae
add esp, 0xc
neg eax
sbb al, al
inc al
jne 0x44d2e6
mov ecx, dword [ebp + 0x24]
cmp ecx, dword [ebp - 0x14]
jne 0x44d2e6
and dword [ebp + 4], 0
jmp 0x44d2ed
mov dword [ebp + 4], 1
and dword [ebp - 0x30], 0
test al, al
jne 0x44d331
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0x14]
je 0x44d32b
mov esi, dword [ebp + 0x4c]
push 0x10
push esi
push esi
call fcn.0042e494
mov edi, dword [ebp + 0x34]
add esp, 0xc
inc dword [ebp - 0x14]
add dword [ebp + 0x34], 0x80
push 0x20
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x1c]
mov dword [ebp - 0x30], eax
mov edi, 0x80
jmp 0x44d331
inc dword [ebp - 0x14]
add dword [ebp + 0x34], edi
cmp dword [ebp + 4], 0
je 0x44d366
mov eax, dword [ebp + 0x4c]
lea ecx, [eax + 0x80]
jmp 0x44d34b
mov edx, dword [eax]
add eax, 4
test edx, edx
jne 0x44d351
cmp eax, ecx
jb 0x44d342
jmp 0x44d358
mov dword [ebp - 0x30], 1
push edi
push 0
push dword [ebp + 0x4c]
call fcn.00470340
add esp, 0xc
cmp dword [ebp - 0x30], 0
je 0x44d373
mov eax, dword [ebp + 0x24]
inc eax
mov dword [ebp + 0x10], eax
inc dword [ebp + 0x24]
mov eax, dword [ebp + 0x24]
add dword [ebp + 0x4c], edi
cmp eax, dword [ebp + 0x58]
jl 0x44d2be
push dword [ebp + 0x28]
call fcn.0042b7d7
lea eax, [ebx - 0x174]
push eax
call fcn.0042b7d7
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x10], eax
pop ecx
pop ecx
jg 0x44d3a7
inc eax
mov dword [ebp + 0x10], eax
cmp byte [ebp + 0x4b], 0
mov eax, dword [ebp + 0x58]
je 0x44d3b3
mov dword [ebp + 0x10], eax
shl eax, 7
push 0
push eax
lea eax, [ebx + esi]
push eax
call fcn.00439136
mov ecx, dword [ebp - 0x60]
mov dword [ebx + 0x58], eax
mov dword [ecx + 0x58], eax
mov eax, dword [ebx + 0xc]
and dword [ebx + 0x10], 0
add esp, 0xc
cmp eax, 0x20000
mov dword [ebp + 4], eax
ja 0x44dd1d
push 0
push eax
push ebx
call fcn.00439136
mov edi, dword [ebp - 0x60]
push 0
push dword [ebp + 4]
mov dword [ebx + 0x10], eax
and dword [edi + 0x10], 0
push edi
call fcn.00439136
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0x10]
shl eax, 7
xor edx, edx
lea eax, [eax + esi - 1]
div esi
add esp, 0x18
mov edi, eax
imul edi, esi
cmp byte [ebp + 0x4b], 0
je 0x44d43c
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
push esi
push dword [ebp + 0x28]
lea ecx, [ebp + 0x6c]
call fcn.004289d3
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x158]
push dword [ebp - 0x15c]
call fcn.00471360
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
lea eax, [esi + edi]
push eax
push ebx
lea ecx, [ebp + 0x6c]
call fcn.004289d3
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
sub ecx, 0x20
push 0
sbb edx, 0
xor eax, eax
push eax
push esi
push edx
push ecx
call fcn.00471360
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
push edi
push ebx
lea ecx, [ebp + 0x6c]
call fcn.004289d3
push 0
push dword [ebp - 0x74]
xor eax, eax
push dword [ebp - 0x78]
push eax
push esi
call fcn.00471360
push edx
push eax
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
push esi
push dword [ebp - 0x60]
lea ecx, [ebp + 0x6c]
call fcn.004289d3
cmp byte [ebp + 0x5e], 0
je 0x44d4d8
mov eax, dword [ebp + 0x6c]
mov byte [ebp + 0x5e], 0
call fcn.0042b79e
cmp byte [ebp + 0x5c], 0
je 0x44ddd2
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
cmp byte [ebp + 0x5e], 0
je 0x44d500
mov eax, dword [ebp + 0x6c]
call fcn.0042b79e
lea ecx, [ebp + 0x6c]
call fcn.00402abc
xor eax, eax
test byte [ebp + 0x5c], 0x20
jne 0x44d516
cmp dword [ebp + 0xc], 0xc
je 0x44d52b
push 1
push 0
push dword [ebp - 0x80]
call fcn.00431ce7
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [ebp + 0x2f], 0
je 0x44ddaa
cmp dword [ebp - 0x50], 0
je 0x44ddaa
xor edi, edi
or ebx, 0xffffffff
jmp 0x44b7f1
cmp dword [ebp + 0x30], edi
jge 0x44d55a
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x44dca7
mov esi, dword [ebp - 0x54]
mov dword [ebp + 0x30], 0x1b8
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0xd8], edi
cmp word [esi], di
je 0x44d699
push esi
push 0x48ba14
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d699
push esi
push 0x487de8
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d699
push esi
push 0x48ba10
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x44d5cd
mov dword [ebp + 0x20], 0x4992d8
mov dword [ebp + 0x30], 0x190
jmp 0x44d6b9
push esi
push 0x48ba0c
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x44d5f1
mov dword [ebp + 0x20], 0x499468
mov dword [ebp + 0x30], 0x180
jmp 0x44d6b9
mov dword [ebp + 0x30], edi
cmp word [esi], 0x2a
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
jne 0x44d61f
lea eax, [ebp - 0x44]
push eax
inc esi
lea eax, [ebp - 0x54]
inc esi
push eax
mov dword [ebp - 0x54], esi
call fcn.00432f9a
mov esi, dword [ebp - 0x54]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x44d61f
inc esi
inc esi
cmp word [esi], 0x23
jne 0x44d65d
push esi
lea ecx, [ebp + 0xc]
call fcn.0043a4ba
push edi
lea eax, [ebp - 0xe0]
push eax
push str.EXEDATA
push dword [ebp + 0xc]
push edi
call fcn.004101ba
add esp, 0x14
lea ecx, [ebp + 0xc]
mov dword [ebp + 0x20], eax
call fcn.00428a48
mov eax, dword [ebp - 0xdc]
mov dword [ebp + 0x30], eax
jmp 0x44d674
lea eax, [ebp + 0x30]
push eax
push edi
push esi
call fcn.0040b203
add esp, 0xc
mov dword [ebp + 0x20], eax
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0x40], edi
jl 0x44d6a7
jg 0x44d680
cmp dword [ebp - 0x44], edi
jb 0x44d6a7
xor eax, eax
cmp eax, dword [ebp - 0x40]
jl 0x44d6a7
jg 0x44d691
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp - 0x44]
jbe 0x44d6a7
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x30], eax
jmp 0x44d6a7
mov dword [ebp + 0x20], 0x4995e8
mov dword [ebp + 0x30], 0x1b8
cmp dword [ebp + 0x30], edi
jbe 0x44d7ff
cmp dword [ebp + 0x20], edi
je 0x44d7ff
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0x80]
lea ecx, [ebp + 0x6c]
call fcn.00404073
cmp dword [ebp + 0x6c], edi
je 0x44d7ff
mov esi, dword [ebp + 0x30]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x18]
call fcn.0042e06b
mov ebx, dword [ebp + 0x18]
push 0
lea eax, [ebp - 0x18]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44d740
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x44d72d
inc esi
lea ecx, [ebp + 0x18]
call fcn.00428a48
lea ecx, [ebp - 0xe0]
jmp 0x44db99
push esi
push edi
push ebx
call fcn.00470580
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x44d770
lea ecx, [ebp + 0x18]
call fcn.00428a48
lea ecx, [ebp - 0xe0]
jmp 0x44dcf1
mov ecx, dword [ebp + 0x30]
mov eax, 0x1b8
cmp ecx, eax
jle 0x44d77e
mov ecx, eax
push ecx
push dword [ebp + 0x20]
push edi
call fcn.00470580
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x30]
add esp, 0xc
cmp eax, 0x200
jbe 0x44d7c1
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x20]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00470580
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x58], 1
call fcn.0042e494
add esp, 0xc
test eax, eax
jne 0x44d7f0
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push edi
mov edi, dword [ebp + 0x6c]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x58], eax
call fcn.0042b78c
xor eax, eax
cmp dword [ebp + 0x58], eax
sete al
mov esi, eax
jmp 0x44d72d
lea ecx, [ebp - 0xe0]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, edi
je 0x44d82a
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x44dd4a
cmp dword [ebp + 0x60], edi
jle 0x44dca7
cmp dword [ebp + 0x30], edi
jge 0x44d84c
mov eax, dword [ebp - 0x5c]
cmp word [eax], di
je 0x44dca7
push dword [ebp - 0x68]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x4c]
push eax
push esi
push dword [ebp + 0x60]
lea eax, [ebp - 0x28]
push dword [ebp + 0x30]
mov dword [ebp - 0x4c], edi
push eax
mov dword [ebp - 0x48], edi
mov dword [ebp + 0xc], ebx
call fcn.00432855
add esp, 0x1c
cmp dword [ebp + 0xc], edi
jle 0x44d80a
mov esi, dword [ebp - 0x58]
mov dword [ebp + 0x34], 0x200
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xc8], edi
cmp word [esi], di
je 0x44d9ea
push esi
push 0x48ba14
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d9ea
push esi
push 0x487de8
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d9ea
push esi
push 0x48ba0c
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x44d8df
push 8
jmp 0x44d9ec
push esi
push str.nt6fat
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d9e6
push esi
push str.winfat
call fcn.0042999a
test al, al
pop ecx
pop ecx
jne 0x44d9e6
push esi
push 0x48ba10
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x44d921
push 6
jmp 0x44d9ec
push esi
push str.nt5fat
call fcn.0042999a
test al, al
pop ecx
pop ecx
je 0x44d939
push 5
jmp 0x44d9ec
mov dword [ebp + 0x34], edi
cmp word [esi], 0x2a
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
jne 0x44d967
lea eax, [ebp - 0x44]
push eax
inc esi
lea eax, [ebp - 0x58]
inc esi
push eax
mov dword [ebp - 0x58], esi
call fcn.00432f9a
mov esi, dword [ebp - 0x58]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x44d967
inc esi
inc esi
cmp word [esi], 0x23
jne 0x44d9a5
push esi
lea ecx, [ebp + 0xc]
call fcn.0043a4ba
push edi
lea eax, [ebp - 0xd0]
push eax
push str.EXEDATA
push dword [ebp + 0xc]
push edi
call fcn.004101ba
add esp, 0x14
lea ecx, [ebp + 0xc]
mov dword [ebp + 0x20], eax
call fcn.00428a48
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x34], eax
jmp 0x44d9bc
lea eax, [ebp + 0x34]
push eax
push edi
push esi
call fcn.0040b203
add esp, 0xc
mov dword [ebp + 0x20], eax
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0x40], edi
jl 0x44d9df
jg 0x44d9c8
cmp dword [ebp - 0x44], edi
jb 0x44d9df
xor eax, eax
cmp eax, dword [ebp - 0x40]
jl 0x44d9df
jg 0x44d9d9
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp - 0x44]
jbe 0x44d9df
mov eax, dword [ebp - 0x44]
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x20], edi
jne 0x44da15
jmp 0x44da5b
push 7
jmp 0x44d9ec
push 9
pop eax
push edi
lea ecx, [ebp - 0xd0]
push ecx
push str.INDATA
push eax
push edi
call fcn.004101ba
add esp, 0x14
cmp dword [ebp + 0x34], edi
mov dword [ebp + 0x20], eax
je 0x44da5b
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x34], edi
jbe 0x44da5b
cmp dword [ebp + 0x20], edi
je 0x44da5b
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp - 0x80]
lea ecx, [ebp + 0x6c]
call fcn.00404073
cmp dword [ebp + 0x6c], edi
je 0x44da5b
push edi
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x10
cmp eax, dword [ebp - 0x4c]
jne 0x44da5b
cmp edx, dword [ebp - 0x48]
je 0x44da66
lea ecx, [ebp - 0xd0]
jmp 0x44d805
mov esi, dword [ebp + 0x34]
add esi, 0x1ff
mov edi, 0xfffffe00
and esi, edi
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp + 0x18]
call fcn.0042e06b
mov ebx, dword [ebp + 0x18]
push 0
lea eax, [ebp - 0x18]
push eax
add ebx, 0x200
and ebx, edi
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x44dabc
lea ecx, [ebp + 0x18]
call fcn.00428a48
lea ecx, [ebp - 0xd0]
jmp 0x44dcf1
push esi
push edi
push ebx
call fcn.00470580
push 0
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp + 0x6c]
call fcn.004298d4
add esp, 0x1c
cmp eax, dword [ebp - 0x4c]
jne 0x44daa9
cmp edx, dword [ebp - 0x48]
jne 0x44daa9
mov eax, dword [ebp + 0x34]
push 3
push dword [ebp + 0x20]
mov dword [ebp - 0x50], eax
push edi
call fcn.00470580
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x50], eax
jle 0x44db02
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp + 0x20]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.00470580
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x34]
add esp, 0xc
cmp eax, 0x200
jbe 0x44db52
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x20]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00470580
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x58], 1
call fcn.0042e494
add esp, 0xc
test eax, eax
jne 0x44db81
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push edi
mov edi, dword [ebp + 0x6c]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 0x58], eax
call fcn.0042b78c
xor eax, eax
cmp dword [ebp + 0x58], eax
lea ecx, [ebp + 0x18]
sete al
mov esi, eax
call fcn.00428a48
lea ecx, [ebp - 0xd0]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
jmp 0x44ddb5
mov eax, dword [ebp + 0x20]
or eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00432515
pop ecx
pop ecx
jmp 0x44dbda
push dword [ebp - 0x68]
lea eax, [ebp - 0x28]
push edi
push edi
push esi
push dword [ebp + 0x60]
push dword [ebp + 0x20]
push eax
call fcn.00432855
add esp, 0x1c
mov ecx, dword [ebp - 0xd4]
cmp ecx, edi
jle 0x44dc4e
mov eax, dword [ebp - 0x28]
dec ecx
mov dword [ebp - 0x84], ecx
push edi
lea ecx, [ebp - 0x28]
push ecx
mov ecx, dword [ebp - 0xa0]
push eax
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x84]
push eax
mov dword [ebp - 0x28], edi
call fcn.004304cc
lea ecx, [ebp - 0xd4]
call fcn.00428a48
jmp 0x44dc4e
mov eax, dword [ebp - 0xc4]
mov ax, word [eax]
cmp ax, di
mov ecx, dword [ebp - 0x28]
mov word [ecx], ax
je 0x44dc4e
push dword [ebp - 0x68]
and esi, 0xfffffffd
push edi
push edi
or esi, 0xc
push esi
push dword [ebp + 0x60]
lea eax, [ebp - 0x28]
push dword [ebp + 0x20]
push eax
call fcn.00432855
add esp, 0x1c
push dword [ebp - 0x28]
mov ecx, dword [ebp - 0xa0]
push dword [ebp - 0x7c]
call fcn.0042cbf7
lea ecx, [ebp + 0x64]
call fcn.00428a48
jmp 0x44b813
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x44dc7c
mov eax, dword [ebp + 0x6c]
call fcn.0042b79e
lea ecx, [ebp + 0x64]
mov esi, eax
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, edi
jmp 0x44ddc4
lea ecx, [ebp + 8]
jmp 0x44dcf1
lea ecx, [ebp + 8]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
cmp eax, edi
jmp 0x44dd3c
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
test eax, eax
je 0x44b7c7
push eax
jmp 0x44b7c1
lea ecx, [ebp - 0xac]
call fcn.00428a48
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
test eax, eax
jmp 0x44d821
lea ecx, [ebp - 0xac]
call fcn.00428a48
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
test eax, eax
je 0x44dd45
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, 0x80070057
lea ecx, [ebp - 0x5c]
call fcn.00428a48
lea ecx, [ebp - 0x7c]
call fcn.00428a48
lea ecx, [ebp - 0xc4]
call fcn.00428a48
lea ecx, [ebp - 0x170]
call fcn.00428a48
lea ecx, [ebp - 0x28]
call fcn.00428a48
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
jmp 0x44cc68
cmp eax, ebx
jmp 0x44ddf1
cmp byte [ebp + 0x3c], 0x10
mov esi, eax
je 0x44ddb5
mov esi, dword [ebp + 0x18]
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
test eax, eax
je 0x44dd4a
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x44dd4a
lea ecx, [ebp + 0x28]
call fcn.00428a48
lea ecx, [ebp + 0x64]
call fcn.00428a48
lea ecx, [ebp + 0x6c]
call fcn.00402abc
mov eax, 0x49b61c
test eax, eax
je 0x44b3b5
push eax
jmp 0x44b3af