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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x3b8
push ebx
push esi
lea eax, [ebp + 0x78]
push edi
push eax
mov dword [ebp - 0xac], ecx
call fcn.00439c95
pop ecx
push 5
lea ecx, [ebp + 4]
call fcn.0043fdb8
push 0x14
lea ecx, [ebp - 0x1c0]
call fcn.0043fdb8
lea ecx, [ebp - 0xbc]
call fcn.0043fd9a
lea ecx, [ebp - 0xb0]
call fcn.0043fd9a
lea ecx, [ebp - 0xb8]
call fcn.0043fd9a
mov eax, dword [ebp + 0x78]
xor ebx, ebx
or esi, 0xffffffff
mov dword [ebp - 0x40], eax
push 0x2c
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x28], 0xfffc0000
mov dword [ebp + 0x60], ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x118], esi
mov byte [ebp - 0x49], bl
mov byte [ebp - 0x36], bl
mov byte [ebp - 0x89], bl
mov byte [ebp - 0x8a], bl
mov byte [ebp + 0x5c], bl
mov byte [ebp + 0x52], bl
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x7d], bl
mov byte [ebp - 0x29], bl
mov dword [ebp - 0x90], ebx
call fcn.004429d8
mov eax, dword [ebp - 0xb0]
mov word [eax], bx
mov eax, dword [ebp - 0x40]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x45b9f1
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x40], eax
push 0x2c
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004429d8
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
mov byte [ebp + 0x1f], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp - 0x76], 0xff
mov byte [ebp + 0xb], 0
mov byte [ebp - 0x4a], 0
mov byte [ebp - 0x75], 0
mov byte [ebp + 0x1e], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x27], 0
mov byte [ebp + 0x5b], 0
mov byte [ebp + 0x5e], 0
mov byte [ebp + 0x5d], 0
mov byte [ebp - 0x51], 0
mov byte [ebp - 0x34], 0xff
mov byte [ebp - 2], 0xff
mov byte [ebp - 0x37], 0
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x60], 0
mov byte [ebp - 1], 0
mov dword [ebp - 0x5c], 0xfffff000
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x104], esi
je 0x45c3d8
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45ba93
or byte [ebp + 0x1f], 1
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bab3
or byte [ebp + 0x1f], 2
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._devid
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bad6
or byte [ebp - 0x11e], 1
jmp 0x45c354
push 7
lea eax, [ebp + 0x78]
push eax
push str._devidx
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45baf9
or byte [ebp - 0x11e], 2
jmp 0x45c354
push 4
lea eax, [ebp + 0x78]
push eax
push str._gui
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x45c386
push 4
lea eax, [ebp + 0x78]
push eax
push str._usb
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bb4f
or dword [ebp - 0x20], 1
jmp 0x45c354
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bb71
or dword [ebp - 0x20], 2
jmp 0x45c354
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4b7e10
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bb91
or dword [ebp - 0x20], 0x10
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._drv
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bbb0
or dword [ebp - 0x20], 8
jmp 0x45c354
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bbcf
or dword [ebp - 0x20], edi
jmp 0x45c354
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b7dfc
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bbef
mov byte [ebp + 0x27], 1
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._xup
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bc0e
mov byte [ebp + 0x5b], 1
jmp 0x45c354
push 5
lea eax, [ebp + 0x78]
push eax
push str._axup
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bc2e
mov byte [ebp + 0x5b], 0x21
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._hup
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bc4d
mov byte [ebp + 0x5e], 1
jmp 0x45c354
push 5
lea eax, [ebp + 0x78]
push eax
push str._ahup
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bc6d
mov byte [ebp + 0x5e], 0x21
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpt
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bc8c
mov byte [ebp + 0x5d], 1
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._gptmini
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bcab
mov byte [ebp + 0x5d], 2
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._gpth
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bcca
mov byte [ebp + 0x5d], 4
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._mbr
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bcec
mov byte [ebp - 0x8a], 1
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._cmp
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bd0b
mov byte [ebp - 0x51], 1
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push 0x4b1e6c
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bd2e
mov byte [ebp - 0x89], 1
jmp 0x45c354
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b7db4
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bd4e
mov byte [ebp - 0x7d], 1
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._img
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bd6d
mov byte [ebp - 0x29], 1
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._lskip
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bd8d
or byte [ebp - 0x33], 0x40
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._locku
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bdad
mov byte [ebp + 0x52], 3
jmp 0x45c354
mov edi, dword [ebp + 0x78]
push 7
push edi
push str._locku:
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45bdcc
inc edi
mov byte [ebp + 0x52], 3
inc edi
jmp 0x45bde4
push 6
push edi
push str._lock:
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45be4c
mov byte [ebp + 0x52], 1
add edi, 0xc
xor ecx, ecx
mov dword [ebp + 0x78], edi
mov cx, word [edi]
cmp cx, bx
je 0x45be1d
mov eax, ecx
call fcn.0040ea2b
test al, al
jne 0x45be1d
push ecx
call fcn.0043f865
add esp, 4
test al, al
jne 0x45be1d
lea eax, [ebp + 0x78]
push eax
mov dword [ebp], edi
call fcn.0040549b
jmp 0x45bf7f
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040547b
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040547b
add esp, 0x10
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
pop ecx
jmp 0x45c354
push 5
lea eax, [ebp + 0x78]
push eax
push str._lock
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45be6c
mov byte [ebp + 0x52], 1
jmp 0x45c354
push 6
lea eax, [ebp + 0x78]
push eax
push str._lockx
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x45bda4
push 6
lea eax, [ebp + 0x78]
push eax
push str._lock_
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45bead
mov byte [ebp + 0x52], 0xf0
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
jmp 0x45c354
mov edi, dword [ebp + 0x78]
push 4
push edi
push 0x4b7d6c
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45bf0f
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45bee0
cmp ax, 0x3d
je 0x45bee0
call fcn.0040ea2b
test al, al
je 0x45bf0f
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp - 0xb4], ebx
je 0x45befb
mov dword [ebp - 0xc], 0x4b7d64
jmp 0x45be3d
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov eax, dword [eax]
mov dword [ebp - 0xc], eax
jmp 0x45bf75
push 4
push edi
push str._pbr
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45bf98
lea ecx, [edi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45bf3f
cmp ax, 0x3d
je 0x45bf3f
call fcn.0040ea2b
test al, al
je 0x45bf98
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
lea eax, [ebp + 0x78]
mov dword [ebp - 0xc], ebx
push eax
je 0x45bf64
mov dword [ebp - 0xb4], 0x4af60a
call fcn.0040549b
pop ecx
jmp 0x45be3d
add dword [ebp + 0x78], 2
call fcn.00439c95
mov eax, dword [eax]
mov dword [ebp - 0xb4], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0040549b
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
pop ecx
je 0x45be3d
mov word [eax], bx
add dword [ebp + 0x78], 2
jmp 0x45be3d
push 9
push edi
push str._alignend
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c01f
lea ecx, [edi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45bfc8
cmp ax, 0x3d
je 0x45bfc8
call fcn.0040ea2b
test al, al
je 0x45c01f
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x45c010
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0043f865
add esp, 4
test al, al
je 0x45c338
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x34], ecx
call fcn.00444a3d
cmp dword [ebp - 0x6c], ebx
pop ecx
pop ecx
jg 0x45c338
jl 0x45c010
cmp dword [ebp - 0x70], ebx
ja 0x45c338
mov dword [ebp - 0x70], 0xfffffffe
mov dword [ebp - 0x6c], esi
jmp 0x45c338
push 6
push edi
push str._align
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c0cd
lea ecx, [edi + 0xc]
xor eax, eax
mov ax, word [ecx]
cmp ax, bx
je 0x45c053
cmp ax, 0x3d
je 0x45c053
call fcn.0040ea2b
test al, al
je 0x45c0cd
lea eax, [ebp + 0x78]
mov edi, ecx
push eax
mov dword [ebp + 0x78], edi
call fcn.0040549b
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
cmp word [edi], 0x3d
pop ecx
pop ecx
je 0x45c083
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], esi
jmp 0x45c354
xor eax, eax
lea ecx, [edi + 2]
mov ax, word [ecx]
push eax
call fcn.0043f865
add esp, 4
test al, al
je 0x45c354
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp + 0x34]
push eax
mov dword [ebp + 0x34], ecx
call fcn.00444a3d
cmp dword [ebp - 0x98], ebx
pop ecx
pop ecx
jg 0x45c354
jl 0x45c072
cmp dword [ebp - 0x9c], ebx
ja 0x45c354
jmp 0x45c072
push 6
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c0ef
mov byte [ebp - 0x76], 1
jmp 0x45c354
push edi
lea eax, [ebp + 0x78]
push eax
push str._clean
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c10e
mov byte [ebp - 2], 1
jmp 0x45c354
push 7
lea eax, [ebp + 0x78]
push eax
push str._clean_
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c12e
mov byte [ebp - 2], 0
jmp 0x45c354
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b23a8
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x45c350
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.00441bc4
add esp, 0xc
test al, al
jne 0x45c350
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c188
or dword [ebp - 0x20], 0x20
mov byte [ebp - 0x4a], 1
jmp 0x45c354
push edi
push dword [ebp + 0x78]
push str._swap:
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c1c1
add dword [ebp + 0x78], 0xc
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b46e
test eax, eax
pop ecx
pop ecx
jl 0x45dbad
mov byte [ebp - 1], 1
jmp 0x45c354
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c260
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x24], edi
call fcn.00405444
xor eax, eax
mov ax, word [edi]
push eax
call fcn.0043f865
add esp, 0xc
test al, al
je 0x45c21b
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00444a3d
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
cmp word [eax], 0x3a
jne 0x45c23a
add dword [ebp - 0x24], 2
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00444a3d
pop ecx
pop ecx
mov eax, dword [ebp - 0x24]
cmp word [eax], 0x3a
jne 0x45c354
add dword [ebp - 0x24], 2
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00444a3d
jmp 0x45c34a
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.0043af58
add esp, 0xc
test al, al
jne 0x45c360
push edi
push dword [ebp + 0x78]
push str._SKIP
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c2be
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x18], 0x42
call fcn.0044b46e
mov al, byte [ebp - 0x18]
add esp, 0xc
mov byte [ebp - 0x60], al
jmp 0x45c354
push 4
push dword [ebp + 0x78]
push str._iv
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c2ea
add dword [ebp + 0x78], 8
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b46e
jmp 0x45c34a
push edi
lea eax, [ebp + 0x78]
push eax
push str._cdrom
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c30c
mov dword [ebp - 0x90], 8
jmp 0x45c354
push 7
lea eax, [ebp + 0x78]
push eax
push str._floppy
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c32f
mov dword [ebp - 0x90], 0x10
jmp 0x45c354
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x45c360
lea eax, [ebp + 0x78]
push eax
call fcn.0040549b
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
pop ecx
jmp 0x45be46
mov byte [ebp + 0xb], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
jne 0x45ba73
cmp dword [ebp - 0x70], 0xfffffffe
jne 0x45c3c7
cmp dword [ebp - 0x6c], esi
jne 0x45c3c7
mov eax, dword [ebp - 0x9c]
cmp eax, 0xfffffff7
jne 0x45c3bb
cmp dword [ebp - 0x98], esi
jne 0x45c3bb
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
jmp 0x45c3d8
push str.21:INDATA
lea ecx, [ebp - 0x60]
call fcn.00448399
push dword [ebp + 0x78]
lea ecx, [ebp - 0x60]
call fcn.0043fe06
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0xac]
call fcn.004309f9
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.00439cfd
jmp 0x4602be
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x9c], 0xfffffff7
jne 0x45c3e8
cmp dword [ebp - 0x98], esi
jne 0x45c3e8
mov dword [ebp - 0x9c], 1
mov dword [ebp - 0x98], ebx
cmp dword [ebp - 0x70], 0xfffffff7
jne 0x45c405
cmp dword [ebp - 0x6c], esi
jne 0x45c405
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x6c], eax
push 4
pop edi
push edi
lea eax, [ebp + 0x78]
push eax
push 0x4b7cd8
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c523
push edi
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c441
mov byte [ebp + 0x5f], 1
jmp 0x45c523
push edi
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c460
mov byte [ebp + 0x5f], 2
jmp 0x45c523
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b7ccc
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c480
mov byte [ebp + 0x5f], 3
jmp 0x45c523
push 5
lea eax, [ebp + 0x78]
push eax
push str.cdrom
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c4a7
mov byte [ebp + 0x5f], 4
mov dword [ebp - 0x90], 8
jmp 0x45c523
push 6
lea eax, [ebp + 0x78]
push eax
push str.floppy
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c4ce
mov byte [ebp + 0x5f], 5
mov dword [ebp - 0x90], 0x10
jmp 0x45c523
push 6
lea eax, [ebp + 0x78]
push eax
push str.parent
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c4eb
mov byte [ebp + 0x5f], 6
jmp 0x45c523
push 6
lea eax, [ebp + 0x78]
push eax
push str.volume
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c508
mov byte [ebp + 0x5f], 7
jmp 0x45c523
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b7ca8
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c523
mov byte [ebp + 0x5f], 8
push edi
lea eax, [ebp + 0x78]
push eax
push str.init
mov byte [ebp + 0x1c], 0
call fcn.00441bc4
xor edi, edi
add esp, 0xc
inc edi
test al, al
je 0x45c547
mov byte [ebp + 0x5c], 1
mov dword [ebp + 0x60], edi
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4b7ca4
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c562
mov byte [ebp + 0x5c], 0x10
push 6
lea eax, [ebp + 0x78]
push eax
push str.update
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c580
mov byte [ebp + 0x1c], 1
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.xupdate
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c59e
mov byte [ebp + 0x1c], 0x20
mov dword [ebp + 0x60], edi
push 7
lea eax, [ebp + 0x78]
push eax
push str.hupdate
call fcn.00441bc4
add esp, 0xc
test al, al
je 0x45c5bc
mov byte [ebp + 0x1c], 0x10
mov dword [ebp + 0x60], edi
mov edi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.0040549b
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, edi
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0xbc]
call fcn.0043febe
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
pop ecx
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x45c606
mov dword [ebp - 0xa0], 0x80
jmp 0x45c620
cmp ax, 0x2d
jne 0x45c62a
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x45c62a
mov dword [ebp - 0xa0], ebx
lea eax, [ebp + 0x78]
push eax
call fcn.0040549b
pop ecx
xor eax, eax
mov dword [ebp - 0x210], ebx
lea edi, [ebp - 0x20c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, 0x4c97c0
push edi
mov dword [ebp - 0x1bc], 0xebd0a0a2
mov word [ebp - 0x1b8], 0xb9e5
mov word [ebp - 0x1b6], 0x4433
mov byte [ebp - 0x1b4], 0x87
mov byte [ebp - 0x1b3], 0xc0
mov byte [ebp - 0x1b2], 0x68
mov byte [ebp - 0x1b1], 0xb6
mov byte [ebp - 0x1b0], 0xb7
mov byte [ebp - 0x1af], 0x26
mov byte [ebp - 0x1ae], 0x99
mov byte [ebp - 0x1ad], 0xc7
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0x18], str.MS_Basic_Data
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x174], ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
cmp byte [ebp + 0x5d], 0
jne 0x45c710
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b46e
pop ecx
pop ecx
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2d
jne 0x45c73f
xor eax, eax
lea edx, [ecx + 2]
mov ax, word [edx]
push eax
call fcn.0043f865
add esp, 4
test al, al
jne 0x45c73f
mov ecx, edx
mov byte [ebp - 0x75], 1
mov dword [ebp + 0x78], ecx
jmp 0x45c73f
push ebx
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044caed
add esp, 0xc
cmp eax, esi
mov dword [ebp - 0x180], eax
jne 0x45c73c
push edi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
jmp 0x4602be
mov ecx, dword [ebp + 0x78]
cmp word [ecx], 0x2b
jne 0x45c74f
mov al, byte [ecx]
inc ecx
inc ecx
mov byte [ebp - 0x49], al
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2d
jne 0x45c760
lea eax, [ebp + 0x78]
push eax
call fcn.00405444
jmp 0x45c774
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00444aed
pop ecx
mov dword [ebp - 0x164], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x40
pop ecx
mov byte [ebp - 0x35], 1
jne 0x45c78b
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov byte [ebp - 0x35], 0
cmp word [eax], 0x2d
jne 0x45c79c
lea eax, [ebp + 0x78]
push eax
call fcn.00405444
jmp 0x45c7b0
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00444aed
pop ecx
mov dword [ebp - 0x174], eax
cmp byte [ebp + 0x5d], 0
pop ecx
je 0x45c7e7
push ebx
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044caed
mov dword [ebp - 0x17c], eax
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00444a3d
add esp, 0x14
mov dword [ebp - 0x170], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x1c4], ebx
mov cx, word [eax]
cmp cx, 0x2d
je 0x45c83e
cmp byte [ebp + 0x5d], 0
je 0x45c83e
cmp cx, bx
je 0x45c83e
mov dword [ebp - 0x1c8], eax
push ebx
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.0041a38c
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
add esp, 0xc
mov dword [ebp - 0x100], 1
mov dword [ebp - 0x18], eax
mov word [eax + ecx*2], bx
cmp byte [ebp + 0x5f], 1
mov byte [ebp - 0x31], 0
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x52], 0
je 0x45c859
cmp byte [ebp + 0x5f], 4
jge 0x45c859
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0xbc]
push 5
push ebx
mov edi, ebx
push 0x4b7c68
mov dword [ebp + 0x78], edi
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c93a
lea ecx, [ebx + 0xa]
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x2a
mov edi, ecx
jne 0x45c8da
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp + 0x20]
add ecx, 2
push eax
mov dword [ebp + 0x20], ecx
call fcn.00444aed
mov edi, dword [ebp + 0x20]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x52], 1
jne 0x45c8d5
lea eax, [ebp - 0xf8]
push eax
inc edi
lea eax, [ebp + 0x20]
inc edi
push eax
mov dword [ebp + 0x20], edi
call fcn.00444aed
mov edi, dword [ebp + 0x20]
cmp word [edi], 0x2a
pop ecx
pop ecx
mov byte [ebp - 0x52], 0x11
jne 0x45c8d5
inc edi
inc edi
mov ecx, edi
mov dword [ebp + 0x78], ecx
xor edx, edx
mov dx, word [ecx]
cmp dx, 0x5c
je 0x45c90a
cmp dx, 0x2f
je 0x45c90a
mov byte [ebp - 0x34], 1
jmp 0x45c90a
mov eax, edx
call fcn.0040ea2b
test al, al
jne 0x45c90f
cmp dx, 0x23
je 0x45c90f
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
test dx, dx
jne 0x45c8f1
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x45c92b
push ecx
push edi
lea ecx, [ebp - 0xb8]
call fcn.0043febe
mov dword [ebp - 0x28], 0xfffc0000
lea eax, [ebp + 0x78]
push eax
call fcn.00439c95
mov edi, dword [ebp + 0x78]
pop ecx
jmp 0x45c97a
push 2
push ebx
push 0x4b7c64
call fcn.0043af58
add esp, 0xc
test al, al
je 0x45c954
lea edi, [ebx + 4]
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043f9a3
test al, al
je 0x45c972
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043c486
mov edi, dword [ebp + 0x78]
pop ecx
pop ecx
cmp word [ebx], 0
setne byte [ebp - 0x31]
push 0
push 0x200
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.0049a8f0
mov dword [ebp - 0x48], eax
mov ax, word [edi]
cmp ax, 0x23
mov dword [ebp - 0x44], edx
je 0x45c9ab
cmp ax, 0x3a
jne 0x45ca4a
inc edi
inc edi
push 2
push edi
push 0x4b7c60
mov dword [ebp + 0x78], edi
call fcn.0043af58
push 2
push edi
push 0x4b7c5c
mov byte [ebp + 0x67], al
call fcn.0043af58
mov byte [ebp + 0x1e], al
mov al, byte [ebp + 0x67]
or al, byte [ebp + 0x1e]
add esp, 0x18
neg al
sbb al, al
inc al
cmp byte [ebp + 0x67], 0
mov byte [ebp - 0x32], al
jne 0x45c9f7
cmp word [edi], 0x2b
jne 0x45c9f7
inc edi
inc edi
mov byte [ebp - 0x37], 1
mov dword [ebp + 0x78], edi
cmp byte [ebp + 0x1e], 0
jne 0x45ca1b
mov ax, word [edi]
cmp ax, 0x40
je 0x45ca12
cmp ax, 0x2d
je 0x45ca12
cmp ax, 0x3d
jne 0x45ca1b
or dword [ebp - 0x20], 2
inc edi
inc edi
mov dword [ebp + 0x78], edi
mov ax, word [edi]
call fcn.0043f9a3
test al, al
je 0x45ca4a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0044b46e
test eax, eax
pop ecx
pop ecx
jle 0x45ca4a
cmp dword [ebp + 0x60], 0
mov byte [ebp - 0x36], 1
jne 0x45ca4e
mov byte [ebp + 0x67], 1
jmp 0x45ca50
cmp dword [ebp + 0x60], 0
jg 0x45ca6c
cmp byte [ebp + 0x5f], 0
jg 0x45ca6c
cmp dword [ebp - 0xc], 0
jne 0x45ca6c
cmp dword [ebp - 0xb4], 0
jne 0x45ca6c
xor ecx, ecx
mov dword [ebp + 0x3c], ecx
jmp 0x45ca75
mov dword [ebp + 0x3c], 1
xor ecx, ecx
cmp byte [ebp + 0x52], 0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x30], eax
je 0x45ca96
cmp dword [ebp + 0x3c], ecx
jne 0x45ca96
cmp word [ebx], cx
jne 0x45ca96
mov eax, 0xfffc0000
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0xb8]
lea edi, [ebp - 0x2c8]
mov word [ebp - 0x2c8], cx
cmp word [eax], cx
mov dword [ebp - 0xe8], edi
je 0x45cabc
mov edi, eax
mov dword [ebp - 0xe8], edi
push dword [ebp - 0x28]
lea eax, [ebp - 0x2c8]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp - 0x29], 0
jg 0x45cb0f
mov eax, dword [ebp - 0xa8]
or eax, dword [ebp - 0xa4]
jne 0x45cb0f
push 0x11
push edi
push str..PhysicalDrive
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x45cb0f
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp + 0x34]
add edi, 0x22
push eax
mov dword [ebp + 0x34], edi
call fcn.00442f59
pop ecx
pop ecx
cmp byte [ebp + 0x1c], 0
jne 0x45cb21
cmp byte [ebp + 0x5b], 0
jne 0x45cb21
cmp byte [ebp + 0x5e], 0
je 0x45cb37
cmp dword [ebp - 0x28], 0
jge 0x45cb37
cmp dword [ebp - 0x30], 0
jge 0x45cb37
push 0x4c97c0
jmp 0x45dba7
and dword [ebp + 0x6c], 0
and dword [ebp - 0x1c], 0
cmp byte [ebp + 0x52], 0
mov edi, 0x80070057
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xfc], edi
mov byte [ebp + 0x68], 0
je 0x45cc10
mov ebx, dword [ebp - 0x30]
test ebx, ebx
jge 0x45cb78
cmp dword [ebp - 0x64], esi
jl 0x45cb78
jg 0x45cb6e
cmp dword [ebp - 0x68], esi
jbe 0x45cb78
cmp dword [ebp], 0
je 0x45cc10
mov eax, dword [ebp]
test eax, eax
je 0x45cbae
cmp word [eax], 0x2a
jne 0x45cbae
xor eax, eax
mov al, byte [ebp + 0x52]
and eax, 2
shr eax, 1
push eax
push ebx
call fcn.0044cc9b
pop ecx
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x1c], eax
xor eax, eax
or byte [0x4c9384], 0x20
pop ecx
mov byte [ebp + 0x68], 0x20
test ebx, ebx
jge 0x45cbc2
cmp dword [ebp - 0x64], esi
jl 0x45cbc2
jg 0x45cbbe
cmp dword [ebp - 0x68], esi
jbe 0x45cbc2
test eax, eax
je 0x45cc10
push eax
xor eax, eax
mov al, byte [ebp + 0x52]
and eax, 2
shr eax, 1
push eax
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push ebx
call fcn.00405065
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x68]
and eax, dword [ebp - 0x64]
add esp, 0x1c
cmp eax, esi
je 0x45cc09
or byte [ebp + 0x68], 0x10
or byte [0x4c9384], 0x10
jmp 0x45cc10
mov byte [0x4c9384], 0
cmp byte [ebp - 1], 0
jbe 0x45ce69
cmp byte [ebp + 0x5d], 0
jne 0x45ce69
xor esi, esi
cmp dword [ebp - 0x28], esi
jge 0x45cc3a
mov eax, dword [ebp - 0xb8]
cmp word [eax], si
je 0x45ce47
mov eax, dword [ebp - 0x5c]
cmp eax, esi
jle 0x45cc4a
cmp eax, dword [ebp + 0x60]
je 0x45ce47
cmp dword [ebp + 0x60], 4
jg 0x45ce47
cmp byte [ebp + 0x1f], 2
jl 0x45ce47
push esi
push 0x20000000
push 3
push esi
push 3
push 0xc0000000
push dword [ebp - 0xe8]
lea ecx, [ebp + 0x6c]
call fcn.004054c4
cmp dword [ebp + 0x6c], esi
je 0x45cd93
push 0x800
push 1
push esi
push dword [ebp + 0x6c]
call fcn.00444888
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0x10], eax
call fcn.0043d51a
add esp, 0x18
cmp eax, esi
mov ebx, eax
jge 0x45ccb1
mov ebx, esi
lea eax, [ebx + ebx*2]
push eax
lea ecx, [ebp + 0x20]
mov dword [ebp], ebx
call fcn.0043fc43
mov eax, dword [ebp + 0x20]
lea edi, [eax + ebx]
lea eax, [ebx - 1]
not eax
push 0
and edi, eax
lea eax, [ebp - 0x50]
push eax
push ebx
lea esi, [edi + ebx]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x45cd14
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x45ccf2
inc esi
lea ecx, [ebp + 0x20]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
push 0x4c97c0
jmp 0x4602b8
push 0x200
push esi
push edi
call fcn.00413203
dec dword [ebp - 0x5c]
dec dword [ebp + 0x60]
mov ebx, dword [ebp - 0x5c]
mov eax, dword [ebp + 0x60]
shl eax, 4
shl ebx, 4
push 0x10
lea ecx, [ebx + edi + 0x1be]
mov dword [ebp + 0x34], eax
push ecx
lea eax, [eax + esi + 0x1be]
push eax
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
call fcn.00413203
mov eax, dword [ebp + 0x34]
lea eax, [eax + edi + 0x1be]
push 0x10
push eax
lea eax, [ebx + esi + 0x1be]
push eax
call fcn.00413203
push 0
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x34
test eax, eax
je 0x45cdb6
lea ecx, [ebp + 0x20]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
push 0x4c97c0
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
xor esi, esi
inc esi
jmp 0x4602be
push dword [ebp]
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x1c], ebx
call fcn.0044006c
add esp, 0xc
test eax, eax
jne 0x45cdfb
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x45cdf2
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x45cdef
xor eax, eax
inc eax
mov dword [ebp - 0x1c], eax
push dword [ebp + 0x6c]
call fcn.0043da71
pop ecx
mov al, byte [ebp + 0x5e]
or al, byte [ebp + 0x27]
lea ecx, [ebp + 0x20]
or byte [ebp + 0x5b], al
mov al, byte [ebp + 0x5e]
or al, byte [ebp + 0x5b]
or al, byte [ebp + 0x27]
je 0x45ce1f
mov dword [ebp + 0x3c], ebx
call fcn.00439cfd
jmp 0x45f3a8
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
push 0x4c97c0
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0x1c]
jmp 0x4602be
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
push 0x4c97c0
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, edi
jmp 0x4602be
cmp byte [ebp + 0x1c], 0x10
jne 0x45ce7c
test byte [ebp + 0x5e], 0x20
jne 0x45f3a8
or esi, 0xffffffff
xor ebx, ebx
cmp byte [ebp + 0x52], 0
mov edi, dword [ebp - 0xbc]
je 0x45ced8
cmp dword [ebp + 0x3c], ebx
jne 0x45ced8
cmp byte [ebp + 0x27], 0
jne 0x45f3a8
cmp byte [ebp + 0x5b], 0
jne 0x45f3a8
cmp byte [ebp + 0x5e], 0
jne 0x45f3a8
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
test eax, eax
je 0x45cecd
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [ebp - 0xfc]
jmp 0x4602be
mov eax, dword [ebp - 0xc]
cmp eax, ebx
jne 0x45f50e
cmp dword [ebp - 0xb4], ebx
jne 0x45f83a
mov cl, byte [ebp + 0x5f]
cmp cl, 6
mov dword [ebp - 0x1c], 0x80070057
je 0x45fc62
cmp cl, 1
je 0x45fd5e
cmp cl, 2
jne 0x45cf1a
cmp byte [ebp - 0x29], 0
je 0x45fd96
cmp cl, 8
jne 0x45cf29
cmp byte [ebp - 0x29], 0
je 0x45fdcf
xor eax, eax
cmp cl, 3
mov dword [ebp + 0x54], eax
je 0x45fe65
cmp cl, 4
je 0x46052f
cmp cl, 5
je 0x46052f
cmp cl, 7
je 0x45ff34
cmp byte [ebp + 0x1e], al
je 0x45cf73
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0x67], 0
mov dword [ebp - 0x1c], ebx
je 0x45cf83
mov dword [ebp + 0x60], 5
cmp byte [ebp + 0xb], 0
je 0x45cf9e
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ebx
cmp byte [ebp - 0x31], 0
je 0x45cfad
cmp dword [ebp - 0x30], ebx
jl 0x45db85
cmp byte [ebp - 0x32], 0
je 0x45cfbc
cmp dword [ebp + 0x60], ebx
jl 0x45db85
dec dword [ebp + 0x60]
cmp byte [ebp + 0x5d], 0
mov dword [ebp - 0xf0], esi
mov dword [ebp - 0xec], esi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x108], esi
mov byte [ebp + 0x1b], 0
mov byte [ebp - 0x91], 0
mov dword [ebp + 0x34], ebx
mov byte [ebp - 1], 0
mov byte [ebp - 0x53], 0
mov dword [ebp - 0x74], ebx
jne 0x45d00f
cmp dword [ebp - 0x58], ebx
jne 0x45d00f
mov eax, dword [ebp + 0x44]
or eax, dword [ebp + 0x48]
jne 0x45d00f
mov eax, dword [ebp + 0x28]
or eax, dword [ebp + 0x2c]
jne 0x45d00f
mov byte [ebp + 0xb], 1
push ebx
call dword [sym.imp.KERNEL32.DLL_SetLastError]
cmp byte [ebp - 0x7d], 0
je 0x45d03e
cmp dword [ebp + 0x48], ebx
jl 0x45d03e
jg 0x45d028
cmp dword [ebp + 0x44], ebx
jb 0x45d03e
cmp dword [ebp + 0x2c], ebx
jl 0x45d03e
jg 0x45d035
cmp dword [ebp + 0x28], 1
jb 0x45d03e
mov dword [ebp], 1
jmp 0x45d041
mov dword [ebp], ebx
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xe8]
lea ecx, [ebp + 0x6c]
call fcn.004054c4
cmp dword [ebp + 0x6c], ebx
je 0x45ffd4
mov edi, 0x200
push edi
push dword [ebp + 0x6c]
call fcn.0043d51a
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp + 0x40], eax
jge 0x45d082
mov dword [ebp + 0x40], edi
cmp dword [ebp], ebx
je 0x45d100
cmp dword [ebp + 0x48], ebx
jl 0x45d0c4
jg 0x45d093
cmp dword [ebp + 0x44], ebx
jb 0x45d0c4
push ebx
push edi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0049a8f0
test byte [ebp + 0x68], 0x11
jne 0x45d0c4
mov ecx, dword [ebp + 0x40]
push ebx
push ebx
lea ecx, [ecx + ecx*4]
push ebx
shl ecx, 3
push ecx
push edx
push eax
push dword [ebp - 0x30]
call fcn.00405065
add esp, 0x1c
or byte [ebp + 0x68], 1
cmp byte [ebp + 0x67], 0
jne 0x45d100
push dword [ebp + 0x40]
mov eax, dword [ebp - 0xa8]
push dword [ebp + 0x2c]
add eax, dword [ebp + 0x44]
push dword [ebp + 0x28]
mov ecx, dword [ebp - 0xa4]
adc ecx, dword [ebp + 0x48]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.00438ec4
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0043dab7
mov dword [ebp - 0xfc], ebx
push 0x800
push 1
push ebx
push dword [ebp + 0x6c]
call fcn.00444888
add esp, 0x10
cmp byte [ebp + 0x1c], 0
mov dword [ebp - 0x10], eax
je 0x45d124
mov dword [ebp + 0x3c], ebx
jmp 0x45f3a0
cmp dword [ebp - 0x58], 0xff
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], ebx
jg 0x45ffde
cmp byte [ebp + 0x67], 0
jne 0x45d188
cmp dword [ebp + 0x60], ebx
jge 0x45d188
cmp dword [ebp + 0x48], ebx
jg 0x45ffde
jl 0x45d15c
cmp dword [ebp + 0x44], ebx
jae 0x45ffde
cmp dword [ebp + 0x2c], ebx
jg 0x45ffde
jl 0x45d170
cmp dword [ebp + 0x28], ebx
jae 0x45ffde
cmp dword [ebp - 0x58], ebx
jge 0x45ffde
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x28], esi
mov dword [ebp + 0x2c], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x48], esi
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x60]
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x198], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
mov dword [ebp + 0x20], eax
jne 0x45d1cd
cmp byte [ebp + 0x1e], 0
jne 0x45d1cd
cmp eax, 4
jl 0x45d7fd
cmp byte [ebp + 0x5d], 0
jne 0x45d7fd
cmp byte [ebp + 0x5c], 0
jne 0x45d7fd
cmp byte [ebp + 0x67], 0
je 0x45d1ee
mov dword [ebp + 0x60], 4
cmp dword [ebp - 0x58], 5
je 0x45db85
cmp dword [ebp - 0x58], 0xf
je 0x45db85
push 0x100000
lea ecx, [ebp - 0x3c]
mov dword [ebp + 0x3c], ebx
call fcn.0043fc43
lea eax, [ebp + 0x3c]
push eax
push dword [ebp - 0x3c]
push dword [ebp + 0x6c]
call fcn.0043d8f8
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x60]
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov edi, eax
jne 0x45d256
cmp edx, ecx
jge 0x45d23b
cmp ecx, 4
jge 0x45d29c
cmp byte [ebp + 0x67], 0
jne 0x45d256
cmp byte [ebp + 0x1e], 0
jne 0x45d256
lea eax, [ecx + 1]
cmp eax, 4
mov byte [ebp + 0x3b], 0
jg 0x45d288
dec eax
jmp 0x45d28f
cmp byte [ebp + 0x1e], 0
mov byte [ebp + 0x3b], 1
jne 0x45d2a4
cmp byte [ebp + 0x67], 0
je 0x45d2a9
cmp dword [ebp - 0x58], ebx
jl 0x45d29c
cmp word [ebp - 0xa0], bx
jle 0x45d280
mov dword [ebp - 0xa0], 0x80
jmp 0x45d2a9
mov dword [ebp - 0xa0], ebx
jmp 0x45d2a9
lea eax, [eax*4 - 0x10]
cmp eax, ebx
jle 0x45d29c
cmp eax, edx
jl 0x45d2a9
cmp ecx, 4
jle 0x45d2a9
lea ecx, [ebp - 0x3c]
jmp 0x45db80
cmp edx, 4
jle 0x45d29c
cmp edx, 4
jle 0x45d2b9
lea eax, [edx - 4]
and eax, 0xfffffffc
mov dword [ebp + 0xc], eax
jmp 0x45d2bc
mov dword [ebp + 0xc], ebx
cmp byte [ebp + 0x3b], 0
mov dword [ebp + 0x30], esi
mov dword [ebp + 0x20], esi
jne 0x45d2dc
cmp ecx, 4
jl 0x45d2d9
lea eax, [ecx*4 - 0x10]
mov dword [ebp + 0xc], eax
jmp 0x45d2dc
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x4c], esi
xor edx, edx
lea eax, [edi + 0x50]
mov cl, byte [eax]
cmp cl, 5
je 0x45d2f0
cmp cl, 0xf
jne 0x45d2f3
mov dword [ebp + 0x4c], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45d2e4
cmp byte [ebp + 0x3b], 0
je 0x45d309
cmp dword [ebp + 0x4c], ebx
jl 0x45d29c
mov eax, dword [ebp + 0x4c]
lea eax, [eax + eax*8]
push 0
shl eax, 4
lea esi, [eax + edi + 0x30]
mov ebx, 0x200
push ebx
push dword [esi + 0xc]
mov dword [ebp - 0x7c], esi
push dword [esi + 8]
call fcn.0049a840
push 0
push ebx
push dword [esi + 0x14]
mov dword [ebp - 0xd4], eax
push dword [esi + 0x10]
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], edx
call fcn.0049a840
mov ebx, eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + eax*8]
shl eax, 4
cmp byte [ebp + 0x1e], 0
mov dword [ebp - 0x1ec], edx
lea esi, [eax + edi + 0x30]
je 0x45d459
mov eax, dword [ebp + 0x3c]
xor esi, esi
cmp eax, 8
jne 0x45d389
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd0]
jmp 0x45d400
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 0x45d3df
cmp cl, 0xf
je 0x45d3df
inc esi
add eax, 0x90
cmp esi, 4
jl 0x45d39c
lea ecx, [ebp - 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
test eax, eax
jmp 0x45dba4
push 0
push 0x200
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.0049a840
mov ecx, eax
mov eax, dword [edi + 0x24]
xor edi, edi
sub ecx, eax
sbb edx, edi
test esi, esi
jl 0x45d3b3
and dword [ebp - 0x240], 0
xor eax, eax
add ecx, dword [ebp - 0xa8]
lea edi, [ebp - 0x23c]
adc edx, dword [ebp - 0xa4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x240]
push eax
push edx
push ecx
push dword [ebp + 0x6c]
call fcn.0044c9c3
and dword [ebp - 0x1c], 0
add esp, 0x14
cmp byte [ebp + 0x5e], 0
jne 0x45d44d
cmp byte [ebp + 0x5b], 0
jne 0x45d44d
cmp byte [ebp + 0x27], 0
je 0x460002
and dword [ebp + 0x3c], 0
lea ecx, [ebp - 0x3c]
jmp 0x45f39b
cmp dword [ebp + 0x3c], 4
jg 0x45d467
mov eax, dword [ebp + 0x4c]
mov dword [ebp + 0x30], eax
jmp 0x45d492
xor edx, edx
lea eax, [esi + 0x20]
mov cl, byte [eax]
cmp cl, 5
je 0x45d478
cmp cl, 0xf
jne 0x45d47b
mov dword [ebp + 0x30], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45d46c
cmp byte [ebp + 0x3b], 0
jne 0x45d492
mov eax, dword [ebp + 0xc]
add dword [ebp + 0x30], eax
cmp dword [ebp + 0x30], 0
jge 0x45d4a2
cmp byte [ebp + 0x67], 0
je 0x45d3b3
cmp byte [ebp + 0x3b], 0
je 0x45d4ae
and dword [ebp + 0x20], 0
jmp 0x45d4d8
xor edx, edx
lea eax, [esi + 0x260]
mov cl, byte [eax]
test cl, cl
jne 0x45d4c0
test edx, edx
jne 0x45d4cd
cmp cl, 5
je 0x45d4cd
cmp cl, 0xf
je 0x45d4cd
mov dword [ebp + 0x20], edx
inc edx
add eax, 0x90
cmp edx, 4
jl 0x45d4b6
cmp byte [ebp + 0x3b], 0
jne 0x45d4e8
cmp dword [ebp + 0x20], 0
jl 0x45d3b3
cmp byte [ebp + 0x67], 0
je 0x45d72e
mov eax, dword [ebp + 0xc]
test eax, eax
jg 0x45d4fc
mov eax, dword [ebp + 0x4c]
lea eax, [eax + eax*8]
shl eax, 4
lea eax, [eax + edi + 0x30]
mov ecx, dword [eax + 8]
push 0
mov dword [ebp + 0x14], eax
mov eax, dword [eax + 0xc]
push 0x200
push eax
push ecx
mov dword [ebp - 0x22c], eax
call fcn.0049a840
cmp dword [ebp + 0x3c], 4
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jle 0x45d627
cmp dword [ebp + 0x30], 0
jge 0x45d627
cmp byte [esi + 0x20], 0
je 0x45d5de
mov eax, dword [ebp + 0x3c]
cmp eax, 8
jle 0x45d55e
add eax, 0xfffffff8
and eax, 0xfffffffc
inc eax
jmp 0x45d561
mov eax, dword [ebp + 0x4c]
push 0
lea eax, [eax + eax*8]
push 0x200
shl eax, 4
push dword [eax + edi + 0x3c]
push dword [eax + edi + 0x38]
call fcn.0049a840
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x144], eax
mov eax, dword [esi + 0x10]
add eax, dword [esi + 8]
push 0
adc ecx, dword [esi + 0xc]
push 0x200
push ecx
push eax
mov dword [ebp - 0x140], edx
call fcn.0049a840
mov ecx, eax
sub ecx, dword [ebp - 0x188]
mov dword [ebp - 0x19c], ecx
mov ecx, edx
sbb ecx, dword [ebp - 0x184]
sub ebx, eax
mov dword [ebp - 0x198], ecx
mov ecx, dword [ebp - 0x1ec]
sbb ecx, edx
add ebx, dword [ebp - 0x188]
adc ecx, dword [ebp - 0x184]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ecx
jmp 0x45d66b
cmp dword [ebp + 0xc], 4
jne 0x46000a
mov eax, dword [ebp + 0x4c]
test eax, eax
jl 0x46000a
mov ecx, dword [ebp - 0x7c]
cmp byte [ecx + 0x20], 0
je 0x46000a
mov edx, dword [ebp - 0xd0]
or dword [ebp + 0xc], 0xffffffff
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
jmp 0x45d663
cmp dword [ebp + 0xc], 0
jle 0x45d64d
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 0x10]
add ecx, dword [eax + 8]
mov eax, dword [eax + 0x14]
adc eax, dword [ebp - 0x22c]
push 0
push 0x200
push eax
push ecx
call fcn.0049a840
mov ecx, dword [ebp - 0x1ec]
sub ebx, eax
sbb ecx, edx
add ebx, dword [ebp - 0x188]
adc ecx, dword [ebp - 0x184]
and dword [ebp - 0x68], 0
and dword [ebp - 0x64], 0
test ecx, ecx
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], edx
jl 0x45d3b3
jg 0x45d689
test ebx, ebx
jbe 0x45d3b3
cmp byte [ebp - 0x49], 0
je 0x45d695
add dword [ebp + 0x44], eax
adc dword [ebp + 0x48], edx
mov edi, eax
add edi, 1
mov esi, edx
adc esi, 0
cmp dword [ebp + 0x48], esi
jg 0x45d6b1
jl 0x45d6ab
cmp dword [ebp + 0x44], edi
ja 0x45d6b1
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], esi
sub ebx, dword [ebp + 0x44]
sbb ecx, dword [ebp + 0x48]
add ebx, eax
adc ecx, edx
cmp dword [ebp + 0x2c], ecx
jl 0x45d6cd
jg 0x45d6c7
cmp dword [ebp + 0x28], ebx
jbe 0x45d6cd
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ecx
xor eax, eax
cmp dword [ebp + 0x2c], eax
jl 0x45d3b3
jg 0x45d6e3
cmp dword [ebp + 0x28], eax
jb 0x45d3b3
cmp dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x3c]
jle 0x45d701
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x45d6f7
inc eax
jmp 0x45d709
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
jmp 0x45d709
and eax, 0xfffffffc
cmp eax, 3
jg 0x45d70c
inc eax
jmp 0x45d714
cdq
push 4
pop ecx
idiv ecx
add eax, ecx
mov dword [ebp + 0x60], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0xc0]
jmp 0x45d7e8
mov eax, dword [ebp + 0x30]
lea eax, [eax + eax*8]
shl eax, 4
lea esi, [eax + edi + 0x30]
push 0
mov edi, 0x200
push edi
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.0049a840
push 0
push edi
push dword [esi + 0x14]
mov ebx, eax
push dword [esi + 0x10]
mov eax, edx
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], eax
call fcn.0049a840
cmp byte [ebp - 0x49], 0
je 0x45d784
add dword [ebp + 0x44], ebx
mov ecx, dword [ebp - 0x1e4]
adc dword [ebp + 0x48], ecx
xor esi, esi
cmp dword [ebp + 0x48], esi
jl 0x45d7aa
jg 0x45d792
cmp dword [ebp + 0x44], esi
jbe 0x45d7aa
mov ecx, dword [ebp - 0x1e4]
cmp dword [ebp + 0x48], ecx
jg 0x45d7aa
jl 0x45d7a4
cmp dword [ebp + 0x44], ebx
ja 0x45d7aa
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x48], ecx
cmp dword [ebp + 0x2c], esi
jl 0x45d7dc
jg 0x45d7b6
cmp dword [ebp + 0x28], esi
jbe 0x45d7dc
cmp dword [ebp + 0x2c], edx
jl 0x45d7c8
jg 0x45d7c2
cmp dword [ebp + 0x28], eax
jbe 0x45d7c8
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], esi
jl 0x460012
jg 0x45d7dc
cmp dword [ebp + 0x28], esi
jb 0x460012
mov eax, dword [ebp - 0x1e4]
mov dword [ebp - 0x150], ebx
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x14c], eax
call fcn.00439cfd
xor ebx, ebx
mov edi, 0x200
cmp dword [ebp + 0x60], 4
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
setge byte [ebp - 0x54]
add eax, dword [ebp - 0x150]
push ebx
adc ecx, dword [ebp - 0x14c]
push edi
push ecx
push eax
call fcn.0049a8f0
cmp dword [ebp], ebx
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
je 0x45d873
cmp byte [ebp + 0x67], 0
je 0x45d873
push dword [ebp + 0x40]
mov eax, dword [ebp - 0xa8]
push dword [ebp + 0x2c]
add eax, dword [ebp + 0x44]
push dword [ebp + 0x28]
mov ecx, dword [ebp - 0xa4]
adc ecx, dword [ebp + 0x48]
push ecx
push eax
push dword [ebp + 0x6c]
call fcn.00438ec4
add esp, 0x18
lea ecx, [ebp + 0x68]
call fcn.0043dab7
mov dword [ebp - 0xfc], ebx
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x46025b
cmp edx, dword [ebp - 0x124]
jne 0x46025b
mov esi, dword [ebp + 0x40]
lea eax, [esi + esi*2]
push eax
lea ecx, [ebp - 8]
call fcn.0043fc43
mov eax, dword [ebp - 8]
push dword [ebp + 0x40]
lea edi, [eax + esi]
lea eax, [esi - 1]
not eax
and edi, eax
add esi, edi
push ebx
push esi
mov dword [ebp + 0x30], edi
mov dword [ebp + 0x14], esi
call fcn.0049a7e0
add esp, 0xc
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x40]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x460253
push dword [ebp + 0x40]
push esi
push edi
call fcn.00413203
add esp, 0xc
cmp byte [ebp + 0x5c], 0
je 0x45d9ee
cmp byte [ebp + 0x5d], 0
jne 0x45d9ee
push esi
call fcn.0043da89
cmp byte [ebp - 2], 0
pop ecx
jg 0x45d938
jge 0x45d934
cmp dword [ebp - 0x44], ebx
mov eax, dword [ebp + 0x40]
lea eax, [eax + eax + 0x4000]
jg 0x45d938
jl 0x45d934
cmp dword [ebp - 0x48], eax
ja 0x45d938
xor al, al
jmp 0x45d93a
mov al, 1
cmp byte [ebp + 0x5c], 1
jne 0x45d978
test al, al
je 0x45d966
cmp dword [ebp + 0x40], 0x200
jbe 0x45d966
mov eax, dword [ebp + 0x40]
add eax, 0xfffffe00
push eax
lea eax, [esi + 0x200]
push ebx
push eax
call fcn.0049a7e0
add esp, 0xc
push 0x40
lea eax, [esi + 0x1be]
push ebx
push eax
call fcn.0049a7e0
add esp, 0xc
push dword [ebp + 0x40]
mov word [esi + 0x1fe], 0xaa55
push esi
push edi
call fcn.00439d3f
add esp, 0xc
test eax, eax
je 0x45d9cb
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x40]
mov dword [ebp - 0x50], ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov esi, eax
neg esi
sbb esi, esi
inc esi
mov dword [ebp - 0x1c], esi
jmp 0x45d9ce
mov esi, dword [ebp - 0x1c]
mov al, byte [ebp + 0x5e]
or al, byte [ebp + 0x5b]
or al, byte [ebp + 0x27]
je 0x46003e
cmp dword [ebp - 0x28], ebx
jl 0x46003e
mov dword [ebp + 0x3c], ebx
jmp 0x45f398
cmp byte [ebp + 0x5f], 2
je 0x45da0a
cmp byte [ebp + 0x1f], 0
jne 0x45da0a
cmp byte [ebp - 0x36], 0
je 0x45da19
cmp dword [ebp + 0x60], 1
jle 0x45db7d
cmp byte [ebp - 0x36], 0
je 0x45da19
cmp dword [ebp + 0x60], ebx
jl 0x45db7d
push 0x100000
lea ecx, [ebp + 0x10]
call fcn.0043fc43
cmp dword [ebp - 0x30], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x154], ebx
jl 0x45da59
push dword [ebp + 0x6c]
mov esi, dword [ebp + 0x10]
call fcn.0043d6a4
pop ecx
push ebx
push dword [ebp + 0x40]
push edx
push eax
call fcn.0049a840
mov esi, dword [ebp - 0xf4]
jmp 0x45dac3
mov esi, dword [ebp - 0xf4]
cmp esi, ebx
jl 0x45da7f
jg 0x45da6d
cmp dword [ebp - 0xf8], ebx
jb 0x45da7f
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], esi
lea eax, [ebp - 0x264]
push eax
push ebx
push dword [ebp - 0xe8]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesExW]
test eax, eax
je 0x45db09
test byte [ebp - 0x264], 0x10
jne 0x45db09
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x244]
and eax, 0xfffffe00
xor edx, edx
shld edx, eax, 0x17
shl eax, 0x17
shr ecx, 9
xor edi, edi
or eax, ecx
or edx, edi
sub eax, dword [ebp - 0xa8]
sbb edx, dword [ebp - 0xa4]
cmp esi, ebx
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
jl 0x45db09
jg 0x45dae9
cmp dword [ebp - 0xf8], ebx
jbe 0x45db09
cmp edx, esi
ja 0x45db09
jb 0x45daf7
cmp eax, dword [ebp - 0xf8]
jae 0x45db09
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], esi
lea eax, [ebp - 0x148]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x6c]
call fcn.0043d8f8
mov esi, eax
mov eax, dword [ebp - 0xb8]
mov cx, word [eax]
add esp, 0xc
cmp cx, bx
jne 0x45db32
cmp esi, ebx
je 0x45db75
cmp esi, ebx
je 0x45db3a
mov eax, dword [esi]
jmp 0x45db3c
xor eax, eax
cmp eax, 1
sete byte [ebp + 0x53]
cmp byte [ebp + 0x53], 0
je 0x45db56
cmp byte [ebp - 0x8a], 0
mov byte [ebp + 0x1d], 1
je 0x45db5a
mov byte [ebp + 0x1d], 0
cmp byte [ebp - 0x89], 0
jne 0x45dbbd
cmp byte [ebp + 0x5c], 0
jne 0x45dbbd
cmp byte [ebp + 0x1d], 0
je 0x45dbb7
cmp byte [ebp + 0x5d], 0
jne 0x45dbbd
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
je 0x45dbad
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, 0x80070057
jmp 0x4602be
cmp byte [ebp + 0x5d], 0
jne 0x45db75
cmp cx, bx
mov eax, dword [ebp - 0x114]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp - 0x11c]
mov dword [ebp + 0xc], eax
jne 0x45dc8a
xor eax, eax
mov dword [ebp - 0x228], ebx
lea edi, [ebp - 0x224]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0x50]
push eax
push 0x18
lea eax, [ebp - 0x228]
push eax
push ebx
push ebx
push 0x70000
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
cmp dword [ebp - 0x110], ebx
jg 0x45dc3a
jl 0x45dc24
cmp dword [ebp - 0x114], ebx
ja 0x45dc3a
mov eax, dword [ebp - 0x21c]
mov dword [ebp + 0x4c], eax
cdq
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0x12c], ebx
jg 0x45dc62
jl 0x45dc4c
cmp dword [ebp - 0x130], ebx
ja 0x45dc62
mov eax, dword [ebp - 0x218]
mov dword [ebp + 0x3c], eax
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x118], ebx
jg 0x45dc8a
jl 0x45dc74
cmp dword [ebp - 0x11c], ebx
ja 0x45dc8a
mov eax, dword [ebp - 0x214]
mov dword [ebp + 0xc], eax
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
cmp dword [ebp - 0x110], ebx
jg 0x45dcb0
jl 0x45dc9c
cmp dword [ebp - 0x114], ebx
ja 0x45dcb0
mov eax, 0xff
mov dword [ebp + 0x4c], eax
mov dword [ebp - 0x114], eax
mov dword [ebp - 0x110], ebx
cmp dword [ebp - 0x12c], ebx
jg 0x45dcd4
jl 0x45dcc2
cmp dword [ebp - 0x130], ebx
ja 0x45dcd4
push 0x3f
pop eax
mov dword [ebp + 0x3c], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], ebx
cmp dword [ebp - 0x118], ebx
jg 0x45dd07
jl 0x45dce6
cmp dword [ebp - 0x11c], ebx
ja 0x45dd07
mov eax, dword [ebp + 0x40]
cmp eax, ebx
mov dword [ebp + 0xc], eax
ja 0x45dcf7
mov dword [ebp + 0xc], 0x200
mov eax, dword [ebp + 0xc]
cdq
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], edx
mov eax, dword [ebp + 0xc]
cdq
mov edi, 0x200
mov ecx, edi
idiv ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x40]
lea ebx, [ecx + eax]
add eax, ebx
mov dword [ebp - 0x14], eax
add eax, 0x10000
cmp byte [ebp + 0x1d], 0
mov dword [ebp - 0x148], eax
jne 0x45e600
cmp byte [ebp + 0x5d], 0
jne 0x45e600
cmp byte [ebp + 0xb], 0
mov byte [ebp + 0x53], 0
jne 0x45e1ce
mov esi, dword [ebp + 0x48]
xor eax, eax
cmp esi, eax
jg 0x45dd76
jl 0x45dd62
cmp dword [ebp + 0x44], eax
jae 0x45dd76
cmp dword [ebp + 0x2c], eax
jl 0x45e1ce
jg 0x45dd76
cmp dword [ebp + 0x28], eax
jb 0x45e1ce
mov ebx, dword [ebp + 0x60]
cmp ebx, eax
jl 0x45e1ce
push 0x100000
lea ecx, [ebp - 0x40]
call fcn.00402caa
mov eax, dword [ebp + 0xc]
imul eax, dword [ebp + 0x3c]
cdq
idiv edi
mov edi, eax
imul eax, dword [ebp + 0x4c]
cmp dword [ebp + 0xc], 0
cdq
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], edx
jle 0x46006a
mov eax, dword [ebp - 0xb8]
cmp word [eax], 0
jne 0x45ddf3
and dword [ebp], 0
lea eax, [ebp]
push eax
push dword [ebp - 0x40]
push dword [ebp + 0x6c]
call fcn.0043d8f8
add esp, 0xc
test eax, eax
je 0x460082
cmp ebx, 4
jl 0x45ddf3
cmp byte [ebp + 0x67], 0
jne 0x45ddf3
cmp ebx, dword [ebp]
jge 0x46006a
xor edx, edx
xor eax, eax
cmp esi, edx
jl 0x45dea5
jg 0x45de0a
cmp dword [ebp + 0x44], edx
jbe 0x45dea5
mov ecx, dword [ebp - 0x9c]
and ecx, dword [ebp - 0x98]
cmp ecx, 0xffffffff
jne 0x45de49
cmp esi, dword [ebp - 0x168]
jl 0x45de44
jg 0x45de30
mov eax, dword [ebp + 0x44]
cmp eax, dword [ebp - 0x16c]
jb 0x45de44
cmp byte [ebp - 0x54], 0
jne 0x45de44
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
jmp 0x45de91
mov eax, edi
cdq
jmp 0x45de8f
cmp byte [ebp - 0x4a], 0
jne 0x45dea5
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x9c]
mov edi, dword [ebp - 0x98]
cdq
add ecx, eax
adc edi, edx
push edx
sub ecx, 1
push eax
sbb edi, 0
push edi
push ecx
call fcn.0049a840
mov ecx, eax
mov eax, dword [ebp - 0x7c]
mov edi, edx
cdq
push edx
push eax
push edi
push ecx
call fcn.0049a8f0
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], edx
push edx
push eax
push esi
push dword [ebp + 0x44]
call fcn.0043d9cd
add esp, 0x10
add dword [ebp + 0x44], eax
adc esi, edx
mov dword [ebp + 0x48], esi
xor ecx, ecx
cmp dword [ebp + 0x2c], ecx
jl 0x45ded1
jg 0x45deb3
cmp dword [ebp + 0x28], ecx
jbe 0x45ded1
cmp byte [ebp - 0x75], 0
jne 0x45ded1
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp + 0x2c], ecx
jg 0x45ded1
jl 0x45decb
cmp dword [ebp + 0x28], ecx
jae 0x45ded1
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
cmp esi, ecx
jl 0x45dee3
jg 0x45dedc
cmp dword [ebp + 0x44], ecx
jbe 0x45dee3
mov edi, dword [ebp + 0x44]
mov ebx, esi
jmp 0x45dee7
xor edi, edi
xor ebx, ebx
cmp dword [ebp + 0x2c], 0
jl 0x45df88
jg 0x45defd
cmp dword [ebp + 0x28], 0
jbe 0x45df88
mov eax, dword [ebp - 0x70]
and eax, dword [ebp - 0x6c]
cmp eax, 0xffffffff
jne 0x45df23
push dword [ebp - 0x168]
add edi, dword [ebp + 0x28]
push dword [ebp - 0x16c]
adc ebx, dword [ebp + 0x2c]
push ebx
push edi
call fcn.0049cbd0
jmp 0x45df82
cmp byte [ebp - 0x4a], 0
jne 0x45df88
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x6c]
cdq
mov esi, eax
mov eax, dword [ebp - 0x70]
add eax, esi
adc ecx, edx
push edx
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
mov dword [ebp - 0x18c], edx
call fcn.0049a840
push dword [ebp - 0x18c]
push esi
push edx
push eax
call fcn.0049a8f0
push 0
push 0x200
push edx
push eax
call fcn.0049a840
add edi, dword [ebp + 0x28]
push edx
adc ebx, dword [ebp + 0x2c]
push eax
push ebx
push edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
call fcn.0049cbd0
mov esi, dword [ebp + 0x48]
sub dword [ebp + 0x28], eax
sbb dword [ebp + 0x2c], edx
cmp dword [ebp - 0x64], 0
mov byte [ebp + 0x53], 0
mov byte [ebp + 0x3b], 0
mov byte [ebp + 0x1d], 0
jl 0x45e0b2
jg 0x45dfaa
cmp dword [ebp - 0x68], 0
jbe 0x45e0b2
mov ecx, dword [ebp + 0x28]
sub ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp + 0x2c]
sbb edi, dword [ebp - 0xc0]
add ecx, dword [ebp + 0x44]
cdq
push edx
push eax
adc edi, esi
push edi
push ecx
call fcn.0049a840
and dword [ebp - 0x1ac], 0
mov ebx, eax
xor eax, eax
push 1
push dword [ebp + 0x4c]
lea edi, [ebp - 0x1a8]
push dword [ebp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [ebp - 0x19c]
lea eax, [ebp + 0x1d]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x53]
push eax
push dword [ebp - 0x198]
mov dword [ebp - 0x68], ebx
push edi
mov dword [ebp - 0x64], edx
call fcn.0043d9f7
mov al, byte [ebp + 0x3b]
add esp, 0x20
push 1
push dword [ebp + 0x4c]
mov byte [ebp - 0x1ab], al
mov al, byte [ebp + 0x1d]
push dword [ebp + 0x3c]
mov byte [ebp - 0x1aa], al
mov al, byte [ebp + 0x53]
mov byte [ebp - 0x1a9], al
lea eax, [ebp + 0x1d]
push eax
lea eax, [ebp + 0x3b]
push eax
lea eax, [ebp + 0x53]
push eax
push 0
push 2
push dword [ebp - 0x198]
mov byte [ebp - 0x1ac], 0
push edi
call fcn.0049a8f0
add eax, 0xffffffff
adc edx, 0xffffffff
push edx
push eax
call fcn.0043d9f7
mov al, byte [ebp + 0x3b]
mov byte [ebp - 0x1a7], al
mov al, byte [ebp + 0x1d]
mov byte [ebp - 0x1a6], al
mov al, byte [ebp + 0x53]
push 1
mov byte [ebp - 0x1a5], al
lea eax, [ebp - 0x1ac]
push eax
push dword [ebp - 0x140]
mov byte [ebp - 0x1a8], 5
push dword [ebp - 0x144]
mov dword [ebp - 0x1a4], edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x1a0], ebx
call fcn.0044c9c3
add esp, 0x34
mov eax, dword [ebp - 0x7c]
cdq
mov ebx, edx
push ebx
mov edi, eax
push edi
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
call fcn.0049a840
test esi, esi
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1d4], edx
jl 0x45e101
jg 0x45e0e6
xor eax, eax
cmp dword [ebp + 0x44], eax
jb 0x45e103
push ebx
push edi
push esi
push dword [ebp + 0x44]
call fcn.0049a840
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
xor eax, eax
jmp 0x45e10f
xor eax, eax
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], eax
cmp dword [ebp + 0x2c], eax
jl 0x45e130
jg 0x45e11b
cmp dword [ebp + 0x28], eax
jb 0x45e130
push ebx
push edi
push dword [ebp + 0x2c]
push dword [ebp + 0x28]
call fcn.0049a840
mov dword [ebp - 0x108], edx
jmp 0x45e136
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x10c], eax
xor eax, eax
cmp dword [ebp + 0x60], 4
mov ebx, dword [ebp - 0xec]
mov edi, dword [ebp - 0xf0]
setge al
push eax
push dword [ebp + 0x4c]
lea eax, [ebp + 0x1b]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x91]
push eax
lea eax, [ebp + 0x34]
push eax
push ebx
push edi
call fcn.0043d9f7
add esp, 0x20
test esi, esi
jl 0x45e195
jg 0x45e17d
cmp dword [ebp + 0x44], 0
jbe 0x45e195
sub edi, dword [ebp - 0x1d8]
sbb ebx, dword [ebp - 0x1d4]
mov dword [ebp - 0xf0], edi
mov dword [ebp - 0xec], ebx
mov al, byte [ebp - 0x54]
mov byte [ebp + 0x53], al
movsx eax, al
push eax
push dword [ebp + 0x4c]
lea eax, [ebp - 1]
push dword [ebp + 0x3c]
push eax
lea eax, [ebp - 0x53]
push eax
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x10c]
lea eax, [edi + eax - 1]
push 0
push eax
call fcn.0043d9f7
add esp, 0x20
lea ecx, [ebp - 0x40]
call fcn.00439cfd
mov ebx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x14]
shl ebx, 4
cmp byte [ebp + 0x5f], 2
lea edi, [ebx + esi]
je 0x4600a7
push dword [ebp + 0x40]
push esi
push dword [ebp + 0x30]
call fcn.00413203
add esp, 0xc
cmp dword [ebp - 0x64], 0
jl 0x45e230
jg 0x45e201
cmp dword [ebp - 0x68], 0
jb 0x45e230
cmp dword [ebp + 0x20], 0
jle 0x45e219
push ebx
push 0
add esi, 0x1be
push esi
call fcn.0049a7e0
add esp, 0xc
push 0x30
pop eax
sub eax, ebx
push eax
lea eax, [edi + 0x1ce]
push 0
push eax
call fcn.0049a7e0
add esp, 0xc
cmp byte [ebp + 0x67], 0
mov al, byte [edi + 0x1c2]
jne 0x45e252
cmp byte [ebp + 0x1f], 2
jge 0x45e252
cmp al, 5
je 0x460072
cmp al, 0xf
je 0x460072
cmp byte [ebp + 0x67], 0
mov esi, dword [edi + 0x1c6]
mov ecx, dword [edi + 0x1ca]
jne 0x45e2c8
test al, al
je 0x45e2c8
xor ebx, ebx
cmp dword [ebp - 0x58], ebx
je 0x45e2ca
cmp byte [ebp + 0x1f], 2
jge 0x45e2ca
cmp byte [ebp - 0x54], bl
jne 0x45e2ca
cmp dword [ebp + 0x48], ebx
jl 0x45e2a0
jg 0x45e286
cmp dword [ebp + 0x44], ebx
jb 0x45e2a0
xor eax, eax
cmp dword [ebp - 0xf0], esi
jne 0x45db75
cmp dword [ebp - 0xec], eax
jne 0x45db75
cmp dword [ebp + 0x2c], ebx
jl 0x45e2ca
jg 0x45e2ac
cmp dword [ebp + 0x28], ebx
jb 0x45e2ca
xor eax, eax
cmp dword [ebp - 0x10c], ecx
jne 0x45e2be
cmp dword [ebp - 0x108], eax
je 0x45e2ca
cmp ecx, ebx
jne 0x45db75
jmp 0x45e2ca
xor ebx, ebx
cmp byte [ebp + 0xb], 0
je 0x45e2ec
xor ecx, ecx
xor esi, esi
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0x108], ebx
mov eax, dword [ebp - 0x58]
cmp eax, ebx
jl 0x45e2f9
mov byte [edi + 0x1c2], al
mov eax, dword [ebp - 0xa0]
cmp ax, bx
jl 0x45e30a
mov byte [edi + 0x1be], al
cmp dword [ebp + 0x48], ebx
jg 0x45e336
jl 0x45e316
cmp dword [ebp + 0x44], ebx
jae 0x45e336
cmp dword [ebp + 0x2c], ebx
jl 0x45e3af
jg 0x45e32a
cmp dword [ebp + 0x28], ebx
jb 0x45e3af
mov eax, dword [ebp - 0x10c]
lea eax, [esi + eax - 1]
jmp 0x45e34c
cmp dword [ebp + 0x2c], ebx
jg 0x45e36d
jl 0x45e342
cmp dword [ebp + 0x28], ebx
jae 0x45e36d
mov eax, dword [ebp - 0xf0]
lea eax, [ecx + eax - 1]
movsx ecx, byte [ebp + 0x53]
push ecx
push dword [ebp + 0x4c]
lea ecx, [ebp - 1]
push dword [ebp + 0x3c]
push ecx
lea ecx, [ebp - 0x53]
push ecx
lea ecx, [ebp - 0x74]
push ecx
push ebx
push eax
call fcn.0043d9f7
add esp, 0x20
cmp dword [ebp + 0x48], ebx
jl 0x45e3a3
jg 0x45e379
cmp dword [ebp + 0x44], ebx
jb 0x45e3a3
mov al, byte [ebp - 0x91]
mov byte [edi + 0x1bf], al
mov al, byte [ebp + 0x1b]
mov byte [edi + 0x1c0], al
mov al, byte [ebp + 0x34]
mov byte [edi + 0x1c1], al
mov eax, dword [ebp - 0xf0]
mov dword [edi + 0x1c6], eax
cmp dword [ebp + 0x2c], ebx
jg 0x45e3bb
jl 0x45e3af
cmp dword [ebp + 0x28], ebx
jae 0x45e3bb
cmp dword [ebp + 0x48], ebx
jl 0x45e3d6
jg 0x45e3bb
cmp dword [ebp + 0x44], ebx
jb 0x45e3d6
mov al, byte [ebp - 0x53]
mov byte [edi + 0x1c3], al
mov al, byte [ebp - 1]
mov byte [edi + 0x1c4], al
mov al, byte [ebp - 0x74]
mov byte [edi + 0x1c5], al
cmp dword [ebp + 0x2c], ebx
jl 0x45e3ee
jg 0x45e3e2
cmp dword [ebp + 0x28], ebx
jb 0x45e3ee
mov eax, dword [ebp - 0x10c]
mov dword [edi + 0x1ca], eax
cmp dword [ebp - 0x58], ebx
jge 0x45e414
cmp word [ebp - 0xa0], bx
jge 0x45e414
cmp dword [ebp + 0x48], ebx
jg 0x45e414
jl 0x45e408
cmp dword [ebp + 0x44], ebx
jae 0x45e414
cmp dword [ebp + 0x2c], ebx
jl 0x45e427
jg 0x45e414
cmp dword [ebp + 0x28], ebx
jb 0x45e427
mov esi, dword [ebp + 0x14]
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
jmp 0x45e42a
mov esi, dword [ebp + 0x14]
cmp word [ebp - 0xa0], bx
jge 0x45e45e
cmp dword [ebp - 0x58], ebx
jge 0x45e45e
cmp dword [ebp + 0x48], ebx
jg 0x45e45e
jl 0x45e444
cmp dword [ebp + 0x44], ebx
jae 0x45e45e
cmp dword [ebp + 0x2c], ebx
jg 0x45e45e
jl 0x45e450
cmp dword [ebp + 0x28], ebx
jae 0x45e45e
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
push ebx
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, dword [ebp - 0x128]
jne 0x46024b
cmp edx, dword [ebp - 0x124]
jne 0x46024b
mov eax, dword [ebp - 0x150]
or eax, dword [ebp - 0x14c]
mov dword [ebp + 0x3c], 1
jne 0x45e4aa
push esi
call fcn.0043da89
pop ecx
push dword [ebp + 0x40]
push esi
push dword [ebp + 0x30]
call fcn.0044006c
add esp, 0xc
test eax, eax
jne 0x45e4db
push ebx
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x40]
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.0043da71
pop ecx
cmp dword [ebp + 0x48], ebx
jl 0x45e5d4
jg 0x45e4f3
cmp dword [ebp + 0x44], 0x200
jb 0x45e5d4
cmp dword [ebp + 0x2c], 0
jl 0x45e5d4
jg 0x45e50c
cmp dword [ebp + 0x28], 0x200
jbe 0x45e5d4
cmp byte [ebp - 0x76], 0
jle 0x45e5d4
push dword [ebp + 0x40]
push 0
push dword [ebp + 0x14]
call fcn.0049a7e0
add esp, 0xc
push 0
push 0x200
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0049a8f0
mov esi, eax
mov ebx, edx
mov edi, esi
add edi, dword [ebp - 0x48]
mov dword [ebp - 0x1fc], ebx
adc ebx, dword [ebp - 0x44]
push 0
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, esi
jne 0x45e5d0
cmp edx, dword [ebp - 0x1fc]
jne 0x45e5d0
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x30]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
mov dword [ebp + 0x3c], eax
je 0x45e5d0
mov eax, dword [ebp + 0x40]
cmp dword [ebp - 0x50], eax
jne 0x45e5d0
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x30]
call fcn.0044006c
add esp, 0xc
test eax, eax
jne 0x45e5d4
push eax
push ebx
push edi
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, esi
jne 0x45e5d0
cmp edx, dword [ebp - 0x1fc]
jne 0x45e5d0
push 0
lea eax, [ebp - 0x50]
push eax
push dword [ebp + 0x40]
push dword [ebp + 0x14]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov dword [ebp + 0x3c], eax
jmp 0x45e5d4
and dword [ebp + 0x3c], 0
xor eax, eax
cmp dword [ebp + 0x3c], eax
sete al
cmp byte [ebp + 0x5b], 0
mov esi, eax
mov dword [ebp - 0x1c], esi
jne 0x45e5f7
cmp byte [ebp + 0x5e], 0
jne 0x45e5f7
cmp byte [ebp + 0x27], 0
je 0x460286
and dword [ebp + 0x3c], 0
jmp 0x45f390
cmp byte [ebp + 0xb], 0
je 0x45e60a
mov byte [ebp - 0x37], 0
cmp byte [ebp + 0x53], 0
je 0x45e61e
cmp byte [ebp + 0x5c], 0
jne 0x45e61e
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x30], eax
jmp 0x45e625
mov dword [ebp + 0x30], 0x80
mov eax, dword [ebp - 0x7c]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp + 0x48]
push dword [ebp + 0x44]
call fcn.0049a840
push edi
push esi
push dword [ebp - 0xf4]
mov dword [ebp + 0x44], eax
push dword [ebp - 0xf8]
mov dword [ebp + 0x48], edx
call fcn.0049a840
push edi
push esi
push dword [ebp + 0x2c]
mov dword [ebp - 0xf8], eax
push dword [ebp + 0x28]
mov dword [ebp - 0xf4], edx
call fcn.0049a840
mov esi, eax
sub esi, 1
mov edi, edx
sbb edi, 0
cmp byte [ebp - 0x35], 0
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], edx
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
je 0x45e6aa
mov esi, eax
add esi, dword [ebp + 0x44]
mov edi, edx
adc edi, dword [ebp + 0x48]
sub esi, 1
sbb edi, 0
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
and dword [ebp - 0xe4], 0
and dword [ebp - 0xe0], 0
cmp byte [ebp + 0x5c], 1
jne 0x45e736
test byte [ebp - 0x52], 0x10
je 0x45e6e8
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf4]
mov esi, eax
sub esi, 1
mov edi, ecx
sbb edi, 0
mov dword [ebp - 0xdc], esi
mov dword [ebp - 0xd8], edi
jmp 0x45e6f4
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x158]
cmp dword [ebp + 0x48], 0
jg 0x45e70d
jl 0x45e702
cmp dword [ebp + 0x44], 1
jae 0x45e70d
and dword [ebp + 0x48], 0
mov dword [ebp + 0x44], 1
test edi, edi
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xe0], edi
jg 0x45e73c
jl 0x45e724
cmp esi, 1
jae 0x45e73c
sub eax, 1
sbb ecx, 0
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], ecx
cmp byte [ebp + 0x5c], 0
je 0x45e744
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x48]
jmp 0x45e748
xor eax, eax
xor ecx, ecx
push dword [ebp - 0x44]
lea edx, [ebp - 0xe4]
push dword [ebp - 0x48]
push edx
push ecx
push eax
push dword [ebp + 0x40]
lea eax, [ebp + 0x6c]
push dword [ebp + 0x30]
push dword [ebp + 0x10]
push eax
call fcn.004446f2
add esp, 0x24
cmp byte [ebp + 0x53], 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
jne 0x45e793
or eax, edx
jne 0x45e793
and dword [ebp - 0x84], 0
mov dword [ebp - 0x88], 1
cmp dword [ebp - 0xe0], 0
jl 0x460072
jg 0x45e7af
cmp dword [ebp - 0xe4], 0x20
jb 0x460072
cmp byte [ebp + 0x5f], 2
mov eax, dword [ebp + 0x30]
je 0x4602f9
cmp dword [ebp + 0x60], eax
mov dword [ebp], 1
jae 0x45e7f0
cmp dword [ebp - 0x5c], eax
jge 0x45e7f0
cmp dword [ebp + 0x60], 0
jl 0x45e7f4
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0x14]
push 0x10
push 0x4b4b38
push eax
call fcn.00439d3f
add esp, 0xc
test eax, eax
jne 0x45e7f4
and dword [ebp], 0
mov ecx, dword [ebp + 0x40]
xor edx, edx
lea eax, [ecx + 0x3fff]
div ecx
cmp byte [ebp + 0x5c], 1
mov dword [ebp + 0xc], eax
jne 0x45eb33
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x60], eax
jae 0x460072
mov edx, dword [ebp - 0x14]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp - 0x88]
shl eax, 7
inc edx
imul edx, ecx
mov ecx, 0x4800
sub ecx, edx
cmp byte [ebp - 2], 0
mov dword [ebp - 0x74], eax
mov dword [ebp + 0x34], ecx
jg 0x45e86d
jge 0x45e85a
xor edx, edx
cmp dword [ebp - 0x44], edx
jg 0x45e86d
jl 0x45e85a
mov edx, dword [ebp + 0x40]
lea edx, [edx + edx + 0x4000]
cmp dword [ebp - 0x48], edx
ja 0x45e86d
xor edx, edx
test eax, eax
mov byte [ebp + 0x1b], 0
mov dword [ebp + 0x20], edx
jle 0x45e910
jmp 0x45e8bf
cmp dword [ebp + 0x40], 0x200
mov byte [ebp + 0x1b], 1
jbe 0x45e896
mov eax, dword [ebp + 0x40]
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x200
push 0
push eax
call fcn.0049a7e0
add esp, 0xc
mov eax, dword [ebp + 0x40]
add eax, 0xffffffa4
push eax
lea eax, [ebx + 0x5c]
push 0
push eax
call fcn.0049a7e0
push 0x4000
push 0
push dword [ebp - 0x14]
call fcn.0049a7e0
add esp, 0x18
jmp 0x45e910
mov ecx, dword [ebp + 0x34]
cmp edx, ecx
jl 0x45e8d9
push 0x10
push 0
push dword [ebp + 0x14]
call fcn.0049a7e0
add esp, 0xc
mov eax, 0x80
jmp 0x45e902
push 0x1b0
push 0
push dword [ebp + 0x14]
call fcn.0049a7e0
mov eax, dword [ebp + 0x14]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0049a7e0
add esp, 0x18
mov eax, 0x200
add dword [ebp + 0x20], eax
mov edx, dword [ebp + 0x20]
add dword [ebp + 0x14], eax
cmp edx, dword [ebp - 0x74]
jl 0x45e8bc
push 0x38
push 0
push ebx
call fcn.0049a7e0
push 0x14
lea eax, [ebx + 0x48]
push 0
push eax
call fcn.0049a7e0
mov eax, dword [ebp + 0x10]
push 0x40
add eax, 0x1be
push 0
push eax
call fcn.0049a7e0
mov eax, dword [ebp + 0x10]
add esp, 0x24
cmp byte [ebp + 0x1b], 0
mov word [eax + 0x1fe], 0xaa55
jne 0x45e95d
cmp dword [ebp + 0x40], 0x200
jbe 0x45e95d
mov word [ebx - 2], 0xaa55
push 8
push str.EFI_PART
push ebx
call fcn.00413203
mov eax, dword [ebp + 0x44]
mov ecx, dword [ebp - 0xe4]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x10]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp + 0xc]
cdq
mov dword [ebp - 0x1d0], eax
add eax, dword [ebp + 0x44]
mov dword [ebp - 0x1cc], edx
adc edx, dword [ebp + 0x48]
add eax, 1
adc edx, 0
mov dword [ebx + 0x20], ecx
sub ecx, dword [ebp - 0x1d0]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0xe0]
sbb eax, dword [ebp - 0x1cc]
add ecx, 0xffffffff
adc eax, 0xffffffff
mov dword [ebx + 8], 0x10000
mov dword [ebx + 0xc], 0x5c
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], eax
call fcn.0043da89
lea eax, [ebx + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 0x10
cmp ecx, 0x20323354
jne 0x45e9f9
cmp edx, 0x2020
je 0x45ea33
cmp ecx, 0x20363154
jne 0x45ea09
cmp edx, 0x2020
je 0x45ea33
mov esi, ecx
or esi, edx
je 0x45ea2d
cmp ecx, 0xffffffff
jne 0x45ea18
cmp edx, ecx
je 0x45ea2d
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov esi, ecx
or esi, edx
je 0x45ea2d
cmp ecx, 0xffffffff
jne 0x45ea51
cmp edx, ecx
jne 0x45ea51
mov esi, dword [ebp - 0xdc]
push 0xc
push 0x4b7c40
push eax
call fcn.00413203
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x1b8]
add esp, 0xc
mov dword [ebx + 0x44], eax
jmp 0x45ea57
mov esi, dword [ebp - 0xdc]
lea eax, [ebx - 0x174]
push eax
call fcn.0043da89
mov eax, dword [ebp + 0x44]
add eax, 1
pop ecx
mov ecx, dword [ebp + 0x48]
adc ecx, 0
test edi, edi
mov dword [ebx + 0x48], eax
mov eax, 0x80
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
jg 0x45ea9a
jl 0x45ea8c
cmp esi, 1
jae 0x45ea9a
or dword [ebp - 0xdc], 0xffffffff
or dword [ebp - 0xd8], 0xffffffff
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x10]
push 1
push dword [ebp + 0x4c]
shl eax, 4
push dword [ebp + 0x3c]
lea edi, [eax + ecx]
lea eax, [edi + 0x1bf]
lea ecx, [eax + 1]
push ecx
push eax
add eax, 2
push eax
push dword [ebp + 0x48]
mov dword [edi + 0x1c2], 0xee
push dword [ebp + 0x44]
call fcn.0043d9f7
lea eax, [edi + 0x1c3]
add esp, 0x20
cmp byte [ebp + 0x5d], 2
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov byte [eax], 0xfe
mov byte [ecx], 0xff
mov byte [edx], 0xfe
jne 0x45eb0f
push 1
push dword [ebp + 0x4c]
push dword [ebp + 0x3c]
push ecx
push eax
push edx
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
call fcn.0043d9f7
add esp, 0x20
mov eax, dword [ebp + 0x44]
mov dword [edi + 0x1c6], eax
add edi, 0x1ca
or dword [edi], 0xffffffff
cmp byte [ebp + 0x5d], 2
jne 0x45ee3e
mov eax, dword [ebp - 0xdc]
mov dword [edi], eax
cmp byte [ebp + 0x5c], 0
jg 0x45ee3e
cmp byte [ebp - 0x51], 0
jle 0x45eb4d
cmp dword [ebp + 0x60], 0
jl 0x45ee3e
cmp byte [ebp + 0x67], 0
je 0x45eba3
or dword [ebp + 0x60], 0xffffffff
xor esi, esi
cmp dword [ebp + 0x30], esi
mov byte [ebp - 0x37], 0
jbe 0x45eba3
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], eax
mov edi, 0x80
push 0x10
push 0x4b4b38
push dword [ebp - 0x74]
call fcn.00439d3f
add esp, 0xc
test eax, eax
je 0x45eb8e
add dword [ebp - 0x74], edi
inc esi
cmp esi, dword [ebp + 0x30]
jb 0x45eb6d
jmp 0x45eba3
mov dword [ebp + 0x60], esi
push edi
shl esi, 7
add esi, dword [ebp - 0x14]
push 0
push esi
call fcn.0049a7e0
add esp, 0xc
mov eax, dword [ebp + 0x30]
dec dword [ebp - 0x5c]
cmp dword [ebp + 0x60], eax
jae 0x460072
cmp dword [ebp - 0x5c], eax
jge 0x460072
cmp byte [ebp - 0x37], 0
je 0x45ecbb
xor ecx, ecx
cmp byte [ebp + 0x53], cl
je 0x45ec18
mov eax, dword [ebp - 0x14]
add eax, 0x20
cmp ecx, dword [ebp + 0x30]
jae 0x45ec18
mov edx, dword [eax]
cmp edx, dword [ebp + 0x44]
jne 0x45ebe6
mov edx, dword [eax + 4]
cmp edx, dword [ebp + 0x48]
je 0x45ebee
inc ecx
add eax, 0x80
jmp 0x45ebd2
mov edx, dword [ebp - 0x14]
mov eax, ecx
shl eax, 7
add eax, edx
cmp ecx, dword [ebp + 0x60]
mov esi, 0x4b4b38
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 0x45ec18
push 0x80
push 0
push eax
call fcn.0049a7e0
add esp, 0xc
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x14]
shl eax, 7
push 0x10
add eax, ecx
push 0x4b4b38
push eax
mov dword [ebp + 0x34], eax
call fcn.00439d3f
add esp, 0xc
test eax, eax
je 0x45eca5
mov edi, dword [ebp + 0x60]
inc edi
cmp edi, dword [ebp + 0x30]
mov dword [ebp + 0x4c], edi
jae 0x460072
mov esi, edi
shl esi, 7
add esi, dword [ebp - 0x14]
push 0x10
push 0x4b4b38
push esi
call fcn.00439d3f
add esp, 0xc
test eax, eax
je 0x45ec77
inc edi
add esi, 0x80
cmp edi, dword [ebp + 0x30]
mov dword [ebp + 0x4c], edi
jb 0x45ec52
jmp 0x45ec99
cmp edi, dword [ebp + 0x60]
jle 0x45ec99
mov eax, dword [ebp + 0x4c]
mov edi, eax
shl edi, 7
add edi, dword [ebp - 0x14]
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 0x45ec8a
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x4c], eax
jae 0x460072
push 0x80
push 0
push dword [ebp + 0x34]
call fcn.0049a7e0
add esp, 0xc
and dword [ebp], 0
cmp byte [ebp + 0x5c], 1
je 0x45ee1f
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
cmp eax, ecx
jge 0x45edd8
cmp dword [ebp], ecx
jne 0x45ecfe
xor eax, eax
inc eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x180], ecx
jle 0x45ed1b
mov edi, dword [ebp + 0x60]
shl edi, 7
add edi, dword [ebp - 0x14]
lea esi, [ebp - 0x1bc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x17c], ecx
jle 0x45ed3c
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x14]
shl eax, 7
lea edi, [eax + ecx + 0x10]
lea esi, [ebp - 0x210]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
cmp dword [ebp - 0x164], ecx
mov eax, dword [ebp - 0x14]
jle 0x45ed5b
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x44]
shl edx, 7
mov dword [edx + eax + 0x20], esi
mov esi, dword [ebp + 0x48]
mov dword [edx + eax + 0x24], esi
cmp dword [ebp - 0x174], ecx
jle 0x45ed7d
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0xdc]
shl edx, 7
mov dword [edx + eax + 0x28], esi
mov esi, dword [ebp - 0xd8]
mov dword [edx + eax + 0x2c], esi
cmp dword [ebp - 0x170], ecx
jle 0x45ed9f
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp - 0x160]
shl edx, 7
mov dword [edx + eax + 0x30], esi
mov esi, dword [ebp - 0x15c]
mov dword [edx + eax + 0x34], esi
cmp dword [ebp - 0x100], ecx
jle 0x45ee1f
mov eax, dword [ebp - 0x18]
cmp word [eax], 0
je 0x45ee1f
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp - 0x14]
shl eax, 7
push 0x48
lea esi, [eax + ecx + 0x38]
push 0
push esi
call fcn.0049a7e0
add esp, 0xc
push 0x24
push dword [ebp - 0x18]
push esi
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
jmp 0x45ee1f
cmp eax, dword [ebp + 0x60]
je 0x45ee1f
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x14]
shl ecx, 7
lea edx, [ecx + eax]
push 0x20
pop ecx
mov esi, edx
lea edi, [ebp - 0x348]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x5c]
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 - 0x5c]
cmp dword [ebp + 0x60], eax
push 0x20
pop ecx
lea esi, [ebp - 0x348]
rep movsd dword es:[edi], dword [esi]
jge 0x45ee1f
mov dword [ebp + 0x60], eax
cmp byte [ebp + 0xb], 0
je 0x45ee3e
mov eax, dword [ebp + 0x60]
shl eax, 7
add eax, dword [ebp - 0x14]
push 0x80
push 0
push eax
call fcn.0049a7e0
add esp, 0xc
and dword [ebp + 0x4c], 0
cmp byte [ebp - 0x51], 1
jne 0x45ef5c
cmp byte [ebp + 0x5c], 1
je 0x45ef5c
and dword [ebp - 0x7c], 0
mov eax, dword [ebp + 0x30]
and dword [ebp + 0x20], 0
dec eax
test eax, eax
mov dword [ebp - 0x74], eax
jl 0x45ef5c
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x3c], eax
xor esi, esi
push 0x10
push 0x4b4b38
push dword [ebp + 0x14]
call fcn.00439d3f
add esp, 0xc
neg eax
sbb al, al
inc al
mov byte [ebp + 0x1b], al
jne 0x45eea0
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x7c]
mov dword [ebp + 0x34], esi
je 0x45eea7
mov dword [ebp + 0x34], 1
cmp byte [ebp + 0x1b], 0
mov dword [ebp], esi
jne 0x45ef1a
mov eax, dword [ebp - 0x7c]
cmp dword [ebp + 0x20], eax
je 0x45ef0e
push 0x38
push dword [ebp + 0x14]
push dword [ebp + 0x3c]
call fcn.0049cd60
add esp, 0xc
test eax, eax
je 0x45eee3
push 0x38
push dword [ebp + 0x14]
mov dword [ebp], 1
push dword [ebp + 0x3c]
call fcn.0049ae90
add esp, 0xc
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x3c]
push 0x24
add esi, 0x38
push esi
add edi, 0x38
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
je 0x45ef0e
push 0x24
push esi
push edi
mov dword [ebp], 1
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
inc dword [ebp - 0x7c]
add dword [ebp + 0x3c], 0x80
xor esi, esi
cmp dword [ebp + 0x34], esi
je 0x45ef3a
cmp byte [ebp + 0x1b], 0
jne 0x45ef3a
push 0x10
push esi
push dword [ebp + 0x14]
mov dword [ebp], 1
call fcn.0049a7e0
add esp, 0xc
cmp dword [ebp], esi
je 0x45ef46
mov eax, dword [ebp + 0x20]
inc eax
mov dword [ebp + 0x4c], eax
inc dword [ebp + 0x20]
mov eax, dword [ebp + 0x20]
add dword [ebp + 0x14], 0x80
cmp eax, dword [ebp - 0x74]
jle 0x45ee78
push 8
push str.EFI_PART
push ebx
call fcn.00413203
push dword [ebp + 0x10]
call fcn.0043da89
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x3c]
mov edx, eax
add esp, 0x10
or edx, ecx
je 0x45ef89
cmp eax, 0xffffffff
jne 0x45ef96
cmp ecx, eax
jne 0x45ef96
lea eax, [ebx - 0x174]
push eax
call fcn.0043da89
pop ecx
mov eax, dword [ebp + 0x60]
cmp dword [ebp + 0x4c], eax
jg 0x45efa2
inc eax
mov dword [ebp + 0x4c], eax
cmp byte [ebp + 0x5c], 1
mov eax, dword [ebp + 0x30]
jne 0x45efae
mov dword [ebp + 0x4c], eax
push 0
shl eax, 7
push 0
push eax
push dword [ebp - 0x14]
call fcn.0048b814
mov esi, dword [ebx + 0xc]
add esp, 0x10
cmp esi, 0x20000
mov dword [ebx + 0x58], eax
ja 0x460072
xor eax, eax
push eax
push eax
push esi
push ebx
mov dword [ebx + 0x10], eax
call fcn.0048b814
mov edi, dword [ebp - 0x148]
push esi
push ebx
push edi
mov dword [ebx + 0x10], eax
call fcn.00413203
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x1c]
and dword [edi + 0x10], 0
mov dword [edi + 0x24], eax
push 0
xor eax, eax
push eax
push esi
push edi
call fcn.0048b814
mov esi, dword [ebp + 0x40]
mov dword [edi + 0x10], eax
mov eax, dword [ebp + 0xc]
add esp, 0x2c
inc eax
imul eax, esi
push eax
lea ecx, [ebp - 0x24]
call fcn.0043fc43
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x4c]
shl eax, 7
lea eax, [eax + esi - 1]
xor edx, edx
div esi
push 0
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 0x6c]
imul eax, esi
mov dword [ebp - 0x148], eax
call fcn.0043ae64
add esp, 0x10
push esi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x6c]
call fcn.00402c75
push esi
push dword [ebp + 0x10]
push dword [ebp - 0x24]
call fcn.0049cd60
add esp, 0xc
test eax, eax
je 0x45f0a1
push 0
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
push esi
push dword [ebp + 0x10]
lea ecx, [ebp + 0x6c]
call fcn.00439bee
mov eax, dword [ebp - 0x148]
xor edx, edx
div esi
mov ecx, dword [ebp - 0x84]
xor edx, edx
push edx
push ecx
mov dword [ebp + 0x40], ebx
mov dword [ebp - 0xc8], ecx
inc eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 0x88]
push eax
push edx
push esi
mov dword [ebp - 0xcc], eax
call fcn.0049a8f0
add eax, dword [ebp - 0x48]
adc edx, dword [ebp - 0x44]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043ae64
mov eax, dword [ebp + 0x14]
imul eax, esi
add esp, 0x10
push eax
push dword [ebp - 0x24]
lea ecx, [ebp + 0x6c]
call fcn.00402c75
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
jle 0x45f1cf
jmp 0x45f12f
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x30]
call fcn.0049cd60
add esp, 0xc
test eax, eax
jne 0x45f134
inc ebx
add dword [ebp - 0xcc], 1
adc dword [ebp - 0xc8], eax
add dword [ebp + 0x40], esi
add dword [ebp + 0x30], esi
cmp ebx, dword [ebp + 0x14]
jl 0x45f108
cmp ebx, dword [ebp + 0xc]
jge 0x45f1cf
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x1f8], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x1f4], eax
jmp 0x45f185
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x30]
call fcn.0049cd60
add esp, 0xc
test eax, eax
je 0x45f18a
inc ebx
add dword [ebp - 0xcc], 1
adc dword [ebp - 0xc8], 0
add dword [ebp + 0x40], esi
add dword [ebp + 0x30], esi
cmp ebx, dword [ebp + 0x14]
jl 0x45f15d
push 0
push dword [ebp - 0x1f4]
xor eax, eax
push dword [ebp - 0x1f8]
push eax
push esi
call fcn.0049a8f0
add eax, dword [ebp - 0x48]
adc edx, dword [ebp - 0x44]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043ae64
mov eax, dword [ebp + 0x40]
sub eax, dword [ebp + 0x34]
add esp, 0x10
push eax
push dword [ebp + 0x34]
lea ecx, [ebp + 0x6c]
call fcn.00439bee
cmp ebx, dword [ebp + 0x14]
jl 0x45f108
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0xe4]
mov dword [ebp + 0x30], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0xc]
cdq
sub ebx, eax
mov eax, dword [ebp - 0xe0]
push 0
sbb eax, edx
push eax
mov dword [ebp - 0xc8], eax
push ebx
xor eax, eax
push eax
push esi
call fcn.0049a8f0
add eax, dword [ebp - 0x48]
adc edx, dword [ebp - 0x44]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043ae64
mov eax, dword [ebp + 0xc]
imul eax, esi
add esp, 0x10
push eax
push dword [ebp - 0x24]
lea ecx, [ebp + 0x6c]
call fcn.00402c75
and dword [ebp + 0x4c], 0
cmp dword [ebp + 0xc], 0
jle 0x45f308
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x4c], eax
jge 0x45f308
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x30]
call fcn.0049cd60
add esp, 0xc
test eax, eax
jne 0x45f26e
inc dword [ebp + 0x4c]
add ebx, 1
adc dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x4c]
add dword [ebp + 0x40], esi
add dword [ebp + 0x30], esi
cmp eax, dword [ebp + 0xc]
jl 0x45f241
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x4c], eax
jge 0x45f308
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x1e0], ebx
mov dword [ebp - 0x1dc], eax
push esi
push dword [ebp + 0x40]
push dword [ebp + 0x30]
call fcn.0049cd60
add esp, 0xc
test eax, eax
je 0x45f2c0
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
add ebx, 1
adc dword [ebp - 0xc8], 0
add dword [ebp + 0x40], esi
add dword [ebp + 0x30], esi
cmp eax, dword [ebp + 0xc]
jl 0x45f292
push 0
push dword [ebp - 0x1dc]
xor eax, eax
push dword [ebp - 0x1e0]
push eax
push esi
call fcn.0049a8f0
add eax, dword [ebp - 0x48]
adc edx, dword [ebp - 0x44]
push edx
push eax
push dword [ebp + 0x6c]
call fcn.0043ae64
mov eax, dword [ebp + 0x40]
sub eax, dword [ebp + 0x34]
add esp, 0x10
push eax
push dword [ebp + 0x34]
lea ecx, [ebp + 0x6c]
call fcn.00439bee
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x4c], eax
jl 0x45f235
push dword [ebp - 0xe0]
xor eax, eax
push dword [ebp - 0xe4]
push eax
push esi
call fcn.0049a8f0
mov ebx, eax
add ebx, dword [ebp - 0x48]
push 0
adc edx, dword [ebp - 0x44]
push edx
push ebx
push dword [ebp + 0x6c]
mov dword [ebp - 0x134], edx
call fcn.0043ae64
add esp, 0x10
push esi
push dword [ebp - 0x24]
lea ecx, [ebp + 0x6c]
call fcn.00402c75
push esi
push edi
push dword [ebp - 0x24]
call fcn.0049cd60
add esp, 0xc
test eax, eax
je 0x45f375
push 0
push dword [ebp - 0x134]
push ebx
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
push esi
push edi
lea ecx, [ebp + 0x6c]
call fcn.00439bee
mov al, byte [ebp + 0x5e]
or al, byte [ebp + 0x5b]
lea ecx, [ebp - 0x24]
or al, byte [ebp + 0x27]
je 0x460525
and dword [ebp + 0x3c], 0
call fcn.00439cfd
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
mov bl, byte [ebp + 0x1c]
xor edi, edi
cmp dword [ebp - 0x30], edi
jl 0x45f43e
cmp bl, 0x20
je 0x45f3c0
cmp bl, 0x10
jne 0x45f3c6
cmp dword [ebp - 0x10], 0xb
je 0x45f3ea
test byte [ebp + 0x5b], 0x20
jne 0x45f3ea
cmp byte [ebp + 0x5b], 0
je 0x45f3d8
cmp dword [ebp - 0x10], 0xb
je 0x45f3ea
test byte [ebp + 0x5e], 0x20
jne 0x45f3ea
cmp byte [ebp + 0x5e], 0
je 0x45f43e
cmp dword [ebp - 0x10], 0xb
jne 0x45f43e
cmp byte [ebp - 0x34], 0
jg 0x45f49e
test byte [0x4c9384], 0x20
jne 0x45f40f
test byte [ebp + 0x68], 0x20
jne 0x45f40f
push 1
push dword [ebp - 0x30]
call fcn.0044cc9b
pop ecx
pop ecx
or byte [ebp + 0x68], 2
test byte [0x4c9384], 0x10
jne 0x45f43a
test byte [ebp + 0x68], 0x11
jne 0x45f43a
push edi
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
push edi
push dword [ebp - 0x30]
call fcn.00405065
add esp, 0x1c
or byte [ebp + 0x68], 1
or byte [ebp + 0x68], 1
cmp byte [ebp - 0x34], 0
jg 0x45f49e
cmp byte [ebp + 0x27], 0
jne 0x45f45a
cmp bl, 1
je 0x45f45a
cmp bl, 0x20
je 0x45f45a
cmp byte [ebp + 0x5b], 0
je 0x45f49e
push dword [ebp + 0x6c]
call fcn.0043da71
pop ecx
push edi
lea eax, [ebp - 0x178]
push eax
push edi
push edi
push edi
push edi
push 0x70140
push dword [ebp + 0x6c]
mov dword [ebp - 0x178], edi
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x45f48b
xor eax, eax
jmp 0x45f491
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp bl, 1
je 0x45f49b
cmp bl, 0x20
jne 0x45f49e
mov dword [ebp - 0x1c], eax
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
xor esi, esi
test byte [ebp + 0x5e], 0x20
jne 0x45f4c5
cmp byte [ebp + 0x5e], 0
je 0x45f4ba
cmp dword [ebp - 0x10], 0xb
je 0x45f4c5
cmp bl, 0x10
jne 0x45f4f1
cmp dword [ebp - 0x10], 0xc
je 0x45f4f1
lea ecx, [ebp + 0x68]
call fcn.0043dab7
cmp byte [ebp - 0x34], 0
jg 0x45f4f1
push 0x4afdbc
push 1
push edi
push dword [ebp - 0xe8]
call fcn.00444214
add esp, 0x10
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
cmp byte [ebp + 0x52], 0
je 0x460501
cmp dword [ebp + 0x3c], edi
je 0x460501
xor ebx, ebx
or esi, 0xffffffff
jmp 0x45ce7e
cmp dword [ebp - 0x28], ebx
jge 0x45f522
mov ecx, dword [ebp - 0xb8]
cmp word [ecx], bx
je 0x45db8d
mov edi, 0x1b8
mov dword [ebp + 0x4c], edi
mov dword [ebp - 0x194], ebx
mov dword [ebp - 0x190], ebx
mov dword [ebp - 0x18c], ebx
cmp word [eax], bx
je 0x45f67c
push dword [ebp - 0xc]
push 0x4b7c3c
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45f67c
push dword [ebp - 0xc]
push 0x4b431c
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45f67c
mov edi, dword [ebp - 0xc]
push edi
push 0x4b7c38
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45f59a
mov dword [ebp - 0x10], 0x4c7338
mov dword [ebp + 0x4c], 0x190
jmp 0x45f698
push edi
push 0x4b7c34
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45f5be
mov dword [ebp - 0x10], 0x4c74c8
mov dword [ebp + 0x4c], 0x180
jmp 0x45f698
mov dword [ebp + 0x4c], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], esi
jne 0x45f5f5
lea eax, [ebp - 0x88]
push eax
inc edi
lea eax, [ebp - 0xc]
inc edi
push eax
mov dword [ebp - 0xc], edi
call fcn.00444a3d
mov edi, dword [ebp - 0xc]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45f5f5
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45f633
push edi
lea ecx, [ebp + 0x34]
call fcn.00448399
push ebx
lea eax, [ebp - 0x194]
push eax
push str.EXEDATA
push dword [ebp + 0x34]
push ebx
call fcn.00414150
add esp, 0x14
lea ecx, [ebp + 0x34]
mov dword [ebp - 0x10], eax
call fcn.00439cfd
mov eax, dword [ebp - 0x190]
mov dword [ebp + 0x4c], eax
jmp 0x45f64a
lea eax, [ebp + 0x4c]
push eax
push ebx
push edi
call fcn.0040f121
add esp, 0xc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x84], ebx
jl 0x45f686
jg 0x45f65c
cmp dword [ebp - 0x88], ebx
jb 0x45f686
cmp ebx, dword [ebp - 0x84]
jl 0x45f686
jg 0x45f671
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp - 0x88]
jbe 0x45f686
mov eax, dword [ebp - 0x88]
mov dword [ebp + 0x4c], eax
jmp 0x45f686
mov dword [ebp - 0x10], 0x4c7648
mov dword [ebp + 0x4c], edi
cmp dword [ebp + 0x4c], ebx
jbe 0x45f82a
cmp dword [ebp - 0x10], ebx
je 0x45f82a
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xe8]
lea ecx, [ebp + 0x6c]
call fcn.004054c4
cmp dword [ebp + 0x6c], ebx
je 0x45f82a
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.0043d51a
cmp eax, esi
pop ecx
pop ecx
jl 0x45f6d5
mov esi, eax
mov ecx, dword [ebp + 0x4c]
lea eax, [esi - 1]
lea ebx, [eax + ecx]
not eax
and ebx, eax
lea eax, [esi + esi*2]
push eax
lea ecx, [ebp - 0x18]
call fcn.0043fc43
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xa8]
lea edi, [esi - 1]
add eax, esi
not edi
and edi, eax
add esi, edi
xor eax, eax
xor edx, edx
or ecx, dword [ebp - 0xa4]
je 0x45f720
push edx
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, dword [ebp - 0x48]
jne 0x45f80a
cmp edx, dword [ebp - 0x44]
jne 0x45f80a
push 0
lea eax, [ebp - 0x50]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x45f80a
push ebx
push esi
push edi
call fcn.00413203
mov ecx, dword [ebp + 0x4c]
mov eax, 0x1b8
add esp, 0xc
cmp ecx, eax
jle 0x45f764
mov ecx, eax
push ecx
push dword [ebp - 0x10]
push esi
call fcn.00413203
mov byte [esi + 0x1fe], 0x55
mov byte [esi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x4c]
add esp, 0xc
cmp eax, 0x200
jbe 0x45f7a7
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x200
push eax
lea eax, [esi + 0x200]
push eax
call fcn.00413203
add esp, 0xc
push ebx
push esi
push edi
call fcn.0044006c
add esp, 0xc
test eax, eax
jne 0x45f7f2
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x48]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x10
cmp eax, dword [ebp - 0x48]
jne 0x45f80a
cmp edx, dword [ebp - 0x44]
jne 0x45f80a
push 0
lea eax, [ebp - 0x50]
push eax
push ebx
push esi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov esi, eax
call fcn.0043da71
test esi, esi
pop ecx
je 0x45f80a
lea ecx, [ebp - 0x18]
call fcn.00439cfd
lea ecx, [ebp - 0x194]
call fcn.00439cfd
jmp 0x460228
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
test esi, esi
jne 0x45f817
inc esi
lea ecx, [ebp - 0x18]
call fcn.00439cfd
lea ecx, [ebp - 0x194]
jmp 0x45fc58
lea ecx, [ebp - 0x194]
call fcn.00439cfd
jmp 0x460263
cmp dword [ebp + 0x60], ebx
jle 0x45db8d
cmp dword [ebp - 0x28], ebx
jge 0x45f857
mov eax, dword [ebp - 0xb8]
cmp word [eax], bx
je 0x45db8d
xor eax, eax
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp + 0x34], esi
jge 0x45f876
xor al, al
jne 0x45f8a2
jmp 0x45db8d
push dword [ebp - 0x60]
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp - 0x160]
push eax
push dword [ebp - 0x20]
lea eax, [ebp + 4]
push dword [ebp + 0x60]
push dword [ebp - 0x28]
push eax
call fcn.0045b094
add esp, 0x1c
cmp dword [ebp + 0x34], ebx
jle 0x460263
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 0xc], 0x200
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], ebx
cmp word [edi], bx
je 0x45fa39
push edi
push 0x4b7c3c
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45fa39
push edi
push 0x4b431c
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45fa39
push edi
push 0x4b7c34
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45f90c
push 8
jmp 0x45fa3b
push edi
push str.nt6fat
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45fa35
push edi
push str.winfat
call fcn.0043af97
test al, al
pop ecx
pop ecx
jne 0x45fa35
push edi
push 0x4b7c38
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45f94e
push 6
jmp 0x45fa3b
push edi
push str.nt5fat
call fcn.0043af97
test al, al
pop ecx
pop ecx
je 0x45f966
push 5
jmp 0x45fa3b
mov dword [ebp - 0xc], ebx
cmp word [edi], 0x2a
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x84], esi
jne 0x45f9a6
lea eax, [ebp - 0x88]
push eax
inc edi
lea eax, [ebp - 0xb4]
inc edi
push eax
mov dword [ebp - 0xb4], edi
call fcn.00444a3d
mov edi, dword [ebp - 0xb4]
cmp word [edi], 0x2a
pop ecx
pop ecx
jne 0x45f9a6
inc edi
inc edi
cmp word [edi], 0x23
jne 0x45f9e4
push edi
lea ecx, [ebp + 0x34]
call fcn.00448399
push ebx
lea eax, [ebp - 0x13c]
push eax
push str.EXEDATA
push dword [ebp + 0x34]
push ebx
call fcn.00414150
add esp, 0x14
lea ecx, [ebp + 0x34]
mov dword [ebp - 0x10], eax
call fcn.00439cfd
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xc], eax
jmp 0x45f9fb
lea eax, [ebp - 0xc]
push eax
push ebx
push edi
call fcn.0040f121
add esp, 0xc
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x84], ebx
jl 0x45fa2b
jg 0x45fa0d
cmp dword [ebp - 0x88], ebx
jb 0x45fa2b
cmp ebx, dword [ebp - 0x84]
jl 0x45fa2b
jg 0x45fa22
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x88]
jbe 0x45fa2b
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x10], ebx
jne 0x45fa64
jmp 0x45fada
push 7
jmp 0x45fa3b
push 9
pop eax
push ebx
lea ecx, [ebp - 0x13c]
push ecx
push str.INDATA
push eax
push ebx
call fcn.00414150
add esp, 0x14
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], eax
je 0x45fada
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], ebx
jbe 0x45fada
cmp dword [ebp - 0x10], ebx
je 0x45fada
push ebx
push 0x20000000
push 3
push ebx
push 3
push 0xc0000000
push dword [ebp - 0xe8]
lea ecx, [ebp + 0x6c]
call fcn.004054c4
cmp dword [ebp + 0x6c], ebx
je 0x45fada
push ebx
push 0x200
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.0049a8f0
mov esi, eax
add esi, dword [ebp - 0x160]
mov edi, edx
adc edi, dword [ebp - 0x15c]
push ebx
push edi
push esi
push dword [ebp + 0x6c]
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], edi
call fcn.0043ae64
add esp, 0x10
cmp eax, esi
jne 0x45fada
cmp edx, edi
je 0x45fae5
lea ecx, [ebp - 0x13c]
jmp 0x45f830
mov esi, 0x200
push esi
push dword [ebp + 0x6c]
call fcn.0043d51a
cmp eax, esi
pop ecx
pop ecx
jge 0x45fafb
mov eax, esi
mov ecx, dword [ebp - 0xc]
dec eax
lea esi, [eax + ecx]
not eax
and esi, eax
lea eax, [esi + esi + 0x200]
push eax
lea ecx, [ebp]
call fcn.0043fc43
mov ebx, dword [ebp]
push 0
lea eax, [ebp - 0x50]
push eax
add ebx, 0x200
and ebx, 0xfffffe00
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x45fb6c
lea ecx, [ebp]
call fcn.00439cfd
lea ecx, [ebp - 0x13c]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
test eax, eax
jmp 0x46027a
push esi
push edi
push ebx
call fcn.00413203
push 0
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp + 0x6c]
call fcn.0043ae64
add esp, 0x1c
cmp eax, dword [ebp - 0xd4]
jne 0x45fb3d
cmp edx, dword [ebp - 0xd0]
jne 0x45fb3d
mov eax, dword [ebp - 0xc]
push 3
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push edi
call fcn.00413203
mov eax, 0x1fe
add esp, 0xc
cmp dword [ebp - 0x18], eax
jle 0x45fbbe
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
add eax, 0xffffffe2
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x1e
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.00413203
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp eax, 0x200
jbe 0x45fc0e
add eax, 0xfffffe00
push eax
mov eax, dword [ebp - 0x10]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00413203
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 0x3c], 1
call fcn.0044006c
add esp, 0xc
test eax, eax
jne 0x45fc40
push eax
lea eax, [ebp - 0x50]
push eax
push esi
push edi
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push dword [ebp + 0x6c]
mov dword [ebp + 0x3c], eax
call fcn.0043da71
pop ecx
xor eax, eax
cmp dword [ebp + 0x3c], eax
lea ecx, [ebp]
sete al
mov esi, eax
call fcn.00439cfd
lea ecx, [ebp - 0x13c]
call fcn.00439cfd
jmp 0x46029e
push 0x103c
lea ecx, [ebp + 4]
call fcn.0043fddf
mov esi, dword [ebp + 4]
mov ax, word [edi]
add esi, 0x2000
cmp ax, bx
mov dword [ebp + 0x20], 0x4afdbc
je 0x45fcce
cmp word [edi + 2], 0x3a
jne 0x45fcce
movzx eax, ax
push eax
push 0x4b7c0c
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_GetDriveTypeW]
cmp eax, 2
jne 0x45fcc0
cmp dword [ebp - 0x90], 0x10
jne 0x45fd1d
mov dword [ebp + 0x20], 0x4afd9c
cmp eax, 5
jne 0x45fd1d
mov dword [ebp + 0x20], 0x4afdac
jmp 0x45fd1d
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jl 0x45fd1d
cmp dword [ebp - 0x90], 8
jne 0x45fcf4
push eax
push str..CDROM_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov dword [ebp + 0x20], 0x4afdac
jmp 0x45fd1a
cmp dword [ebp - 0x90], 0x10
jne 0x45fd0d
and eax, 0xfff
mov esi, eax
mov dword [ebp + 0x20], 0x4afd9c
jmp 0x45fd1d
push eax
push str..PhysicalDrive_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push dword [ebp + 0x20]
push 0x20
push dword [ebp + 4]
push esi
call fcn.00444214
mov ecx, dword [ebp - 0xac]
add esp, 0x10
push dword [ebp + 4]
push dword [ebp - 0xb0]
call fcn.0043f62b
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
jmp 0x46023f
cmp byte [ebp - 0x31], 0
je 0x45fd6d
cmp dword [ebp - 0x30], ebx
jl 0x4605f6
mov al, byte [ebp - 0x33]
neg al
sbb eax, eax
and eax, 0x200000
or eax, dword [ebp - 0x30]
or eax, dword [ebp - 0x120]
push eax
lea eax, [ebp + 4]
push eax
call fcn.0045acde
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jmp 0x4605f6
cmp dword [ebp - 0x30], ebx
jl 0x4605f6
cmp byte [ebp - 0x32], 0
je 0x45fdae
cmp dword [ebp + 0x60], ebx
jl 0x4605f6
push dword [ebp - 0x60]
movsx eax, byte [ebp - 0x33]
or eax, dword [ebp - 0x20]
push ebx
push ebx
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 4]
push dword [ebp - 0x30]
push eax
call fcn.0045b094
add esp, 0x1c
jmp 0x45fd8e
cmp dword [ebp - 0x28], ebx
jge 0x45fe2d
cmp word [edi], bx
je 0x45fe2d
cmp word [edi + 2], 0x3a
jne 0x45fe2a
cmp word [edi + 4], bx
jne 0x45fe2a
mov word [ebp - 0x2c8], 0x5c
mov word [ebp - 0x2c6], 0x5c
mov word [ebp - 0x2c4], 0x2e
mov word [ebp - 0x2c2], 0x5c
mov ax, word [edi]
mov word [ebp - 0x2c0], ax
mov word [ebp - 0x2be], 0x3a
mov word [ebp - 0x2bc], bx
lea edi, [ebp - 0x2c8]
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x30], ebx
jl 0x4605f6
cmp byte [ebp - 0x32], 0
je 0x45fe45
cmp dword [ebp + 0x60], ebx
jl 0x4605f6
push dword [ebp - 0x90]
lea eax, [ebp + 4]
push dword [ebp - 0x30]
push eax
push dword [ebp - 0xac]
call fcn.0044c7b7
add esp, 0x10
jmp 0x45fd8e
mov eax, dword [ebp - 0xbc]
movzx edi, word [eax]
and edi, 0xffffffdf
cmp dword [ebp - 0x90], ebx
lea esi, [edi - 0x41]
jle 0x45fef0
push 0x3b60
lea ecx, [ebp + 0x34]
call fcn.0043fc43
mov eax, dword [ebp + 0x34]
mov edx, edi
shl edx, 0x10
or edx, dword [ebp - 0x90]
lea ecx, [eax + 0x200]
push edx
push eax
push ecx
mov dword [ebp - 0x178], ecx
call fcn.0044c263
imul esi, esi, 0x220
mov eax, dword [ebp - 0x178]
add esi, eax
add esp, 0xc
cmp dword [esi + 8], ebx
jle 0x45fee3
push 0x64
lea ecx, [ebp + 4]
call fcn.0043fddf
push edi
push dword [esi + 4]
push str._d__c:
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp + 0x34]
call fcn.00439cfd
jmp 0x4605ee
mov cx, word [eax]
mov edx, dword [ebp + 4]
mov word [edx], cx
cmp word [eax], 0x5c
jne 0x45ff02
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 4]
cmp word [eax], bx
je 0x4605ee
push dword [ebp - 0x60]
mov eax, dword [ebp - 0x20]
push ebx
and eax, 0xfffffffd
push ebx
or eax, 0xc
push eax
push dword [ebp + 0x60]
lea eax, [ebp + 4]
push dword [ebp - 0x30]
push eax
call fcn.0045b094
add esp, 0x1c
jmp 0x45ffcc
cmp dword [ebp - 0x28], ebx
jge 0x45ffa3
cmp word [edi], bx
je 0x45ffa0
cmp word [edi + 2], 0x3a
jne 0x45ff93
cmp word [edi + 4], 0x5c
jne 0x45ff56
cmp word [edi + 6], bx
jne 0x45ff56
mov word [edi + 4], bx
cmp word [edi + 4], bx
jne 0x45ff93
push 9
lea ecx, [ebp + 0x54]
call fcn.0043fddf
mov eax, dword [ebp + 0x54]
mov word [eax], 0x5c
mov word [eax + 2], 0x5c
mov word [eax + 4], 0x2e
mov word [eax + 6], 0x5c
mov cx, word [edi]
mov word [eax + 8], cx
mov word [eax + 0xa], 0x3a
mov word [eax + 0xc], bx
jmp 0x45ffa0
push esi
push edi
lea ecx, [ebp + 0x54]
call fcn.0043febe
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], esi
cmp dword [ebp + 0x60], ebx
jg 0x45ffab
mov dword [ebp + 0x60], esi
mov ecx, dword [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x60]
and eax, 0xf000ffff
shl ecx, 0x10
or eax, ecx
push eax
push dword [ebp - 0x28]
lea eax, [ebp + 4]
push eax
call fcn.00404d44
add esp, 0x10
mov dword [ebp - 0x1c], eax
jmp 0x4605ee
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov esi, eax
jmp 0x460046
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
jmp 0x45cec4
lea ecx, [ebp - 0x3c]
jmp 0x46021b
lea ecx, [ebp - 0x3c]
jmp 0x460095
lea ecx, [ebp - 0x3c]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, esi
jmp 0x45dba4
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
jmp 0x4602b5
lea ecx, [ebp - 0x40]
call fcn.00439cfd
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
jmp 0x45d3b6
lea ecx, [ebp - 0x40]
call fcn.00439cfd
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
jmp 0x45fb50
push 0x28
lea ecx, [ebp + 4]
call fcn.0043fddf
mov esi, dword [ebp + 0x60]
mov ebx, dword [ebp + 4]
xor ecx, ecx
test esi, esi
push 4
mov dword [ebp - 0x18], 0x4ae9fc
pop eax
jl 0x4600da
lea edx, [esi + 1]
cmp edx, eax
mov ecx, esi
jge 0x4600d2
mov eax, edx
cmp esi, eax
jge 0x4601dd
mov esi, dword [ebp + 0x14]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [ecx + 1]
mov dword [ebp - 0x60], edx
mov edx, ecx
shl edx, 4
sub eax, ecx
lea esi, [edx + esi + 0x1c6]
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x60], 0
mov al, byte [esi - 4]
mov byte [ebp - 0x35], al
jge 0x460146
cmp al, 5
je 0x460113
cmp al, 0xf
mov ecx, 0x4ae9fc
jne 0x460118
mov ecx, 0x4b7c08
xor edx, edx
test al, al
setne dl
lea edx, [edx + edx - 1]
imul edx, dword [ebp - 0x60]
push edx
push ecx
push dword [ebp - 0x18]
push str._s_s_d
push ebx
call edi
add esp, 0x14
lea ebx, [ebx + eax*2]
mov dword [ebp - 0x18], 0x4af3c0
jmp 0x4601ce
test al, al
je 0x4601ce
push dword [ebp - 0x60]
push dword [ebp - 0x18]
push str._s_d
push ebx
call edi
add esp, 0x10
test byte [ebp - 0x20], 1
lea ebx, [ebx + eax*2]
mov eax, str._0x_X
jne 0x460172
mov eax, 0x4b7bd8
movzx ecx, byte [ebp - 0x35]
push ecx
push eax
push ebx
call edi
lea ebx, [ebx + eax*2]
movzx eax, byte [esi - 8]
shr eax, 7
push eax
push 0x4b7bd8
push ebx
call edi
lea ebx, [ebx + eax*2]
mov eax, dword [esi]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.0048c9e0
add esp, 0x28
push ebx
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea ebx, [ebx + eax*2]
mov eax, dword [esi + 4]
mov ecx, 0x200
mul ecx
push str.__I64u
push edx
push eax
push ebx
call fcn.0048c9e0
add esp, 0x10
inc dword [ebp - 0x60]
add esi, 0x10
dec dword [ebp + 0x34]
jne 0x4600fa
cmp dword [ebp - 0x104], 0
jle 0x4601fc
push dword [ebp - 0x104]
lea eax, [ebp + 4]
push dword [ebp - 0xac]
call fcn.0044497e
pop ecx
pop ecx
push dword [ebp + 4]
mov ecx, dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.0043f62b
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
test eax, eax
je 0x45c735
push eax
jmp 0x45c72f
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
je 0x45cdae
push eax
jmp 0x45cda8
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
test eax, eax
je 0x4602be
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp - 0xb8]
call fcn.00439cfd
lea ecx, [ebp - 0xb0]
call fcn.00439cfd
lea ecx, [ebp - 0xbc]
call fcn.00439cfd
lea ecx, [ebp - 0x1c0]
call fcn.00439cfd
lea ecx, [ebp + 4]
call fcn.00439cfd
mov eax, esi
jmp 0x46067f
lea eax, [eax + eax*4]
shl eax, 1
push eax
lea ecx, [ebp + 4]
call fcn.0043fddf
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 4]
mov eax, dword [ebp + 0x30]
xor ecx, ecx
test edx, edx
mov dword [ebp - 0x18], 0x4ae9fc
jl 0x460326
mov ecx, edx
inc edx
cmp eax, edx
jle 0x460326
mov eax, edx
cmp ecx, eax
jge 0x460499
mov ebx, dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edx, [ecx + 1]
mov dword [ebp - 0x40], edx
mov edx, ecx
shl edx, 7
add edx, dword [ebp - 0x14]
sub eax, ecx
mov dword [ebp - 0x100], edx
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x100]
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne 0x460366
mov ecx, dword [eax + 8]
or ecx, dword [eax + 0xc]
je 0x460483
cmp dword [ebp + 0x60], 0
push dword [ebp - 0x40]
push dword [ebp - 0x18]
jge 0x46038d
push str._s_d
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x18], 0x4af3c0
jmp 0x460480
push 0x4b7bbc
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x14]
lea esi, [esi + eax*2]
mov eax, dword [ebp + 0x60]
shl eax, 7
lea edi, [eax + ecx]
push 0
push edi
push esi
call fcn.0043d724
add esp, 0x1c
push esi
call ebx
lea esi, [esi + eax*2]
push str._GPT
push esi
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
push 0
push 0x200
push dword [edi + 0x24]
add esi, 0xa
push dword [edi + 0x20]
call fcn.0049a8f0
push edx
push eax
push esi
call fcn.0048ca08
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
inc esi
inc esi
sub eax, dword [edi + 0x20]
push 0
sbb ecx, dword [edi + 0x24]
add eax, 1
push 0x200
adc ecx, 0
push ecx
push eax
call fcn.0049a8f0
push edx
push eax
push esi
call fcn.0048ca08
add esp, 0xc
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push str._016I64X
push dword [edi + 0x34]
inc esi
push dword [edi + 0x30]
inc esi
push esi
call fcn.0048c9e0
add esp, 0x10
push esi
call ebx
lea esi, [esi + eax*2]
mov word [esi], 0x20
push 0
inc esi
add edi, 0x10
inc esi
push edi
push esi
call fcn.0043d724
add esp, 0xc
test byte [ebp - 0x20], 0x10
je 0x460483
push esi
call ebx
push dword [ebp - 0x40]
lea esi, [esi + eax*2]
mov word [esi], 0x20
inc esi
inc esi
push 0x4af1c4
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea esi, [esi + eax*2]
add dword [ebp - 0x100], 0x80
inc dword [ebp - 0x40]
dec dword [ebp + 0x34]
jne 0x46034d
xor esi, esi
cmp dword [ebp - 0x104], esi
jle 0x4604b9
push dword [ebp - 0x104]
lea eax, [ebp + 4]
push dword [ebp - 0xac]
call fcn.0044497e
pop ecx
pop ecx
push dword [ebp + 4]
mov ecx, dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.0043f62b
lea ecx, [ebp + 0x10]
call fcn.00439cfd
lea ecx, [ebp - 8]
call fcn.00439cfd
lea ecx, [ebp + 0x54]
call fcn.00439cfd
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, esi
jmp 0x4602b5
cmp bl, 0x10
je 0x460509
mov esi, dword [ebp - 0x1c]
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, edi
jmp 0x4602b5
call fcn.00439cfd
jmp 0x460210
push 0x1000
lea ecx, [ebp + 4]
call fcn.0043fddf
cmp dword [ebp - 0x28], ebx
jl 0x4605c5
push 0x3b60
lea ecx, [ebp + 0x34]
call fcn.0043fc43
mov edi, dword [ebp + 0x34]
push 0x3960
lea esi, [edi + 0x200]
push ebx
push esi
call fcn.0049a7e0
push dword [ebp - 0x90]
push edi
push esi
call fcn.0044c263
add esp, 0x18
xor edi, edi
lea eax, [esi + 4]
mov ecx, dword [ebp - 0x28]
cmp dword [eax], ecx
je 0x460590
inc edi
add eax, 0x220
cmp edi, 0x1a
jle 0x46057c
jmp 0x4605bb
push 0x64
lea ecx, [ebp + 4]
call fcn.0043fddf
imul edi, edi, 0x220
add esi, edi
movzx eax, byte [esi + 0x10]
push eax
push dword [esi + 4]
push str._d___c_
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea ecx, [ebp + 0x34]
call fcn.00439cfd
jmp 0x4605eb
cmp byte [ebp - 0x31], 0
jne 0x4605eb
cmp byte [ebp + 0x5f], 4
mov eax, 0x4afdac
je 0x4605db
mov eax, 0x4afd9c
push eax
push ebx
push dword [ebp + 4]
push dword [ebp - 0x28]
call fcn.00444214
add esp, 0x10
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp + 0x54]
call fcn.00439cfd
cmp dword [ebp - 0x104], ebx
jle 0x460614
push dword [ebp - 0x104]
lea eax, [ebp + 4]
push dword [ebp - 0xac]
call fcn.0044497e
pop ecx
pop ecx
push dword [ebp + 4]
mov ecx, dword [ebp - 0xac]
push dword [ebp - 0xb0]
call fcn.0043f62b
lea ecx, [ebp + 0x68]
call fcn.0043dab7
lea ecx, [ebp + 0x6c]
call fcn.00402c5b
mov eax, 0x4c97c0
cmp eax, ebx
je 0x460648
push eax
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp - 0xb8]
call fcn.00439cfd
lea ecx, [ebp - 0xb0]
call fcn.00439cfd
lea ecx, [ebp - 0xbc]
call fcn.00439cfd
lea ecx, [ebp - 0x1c0]
call fcn.00439cfd
lea ecx, [ebp + 4]
call fcn.00439cfd
mov eax, dword [ebp - 0x1c]
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8