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

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x55c
push ebx
push esi
push edi
push 0x48b5d4
mov dword [ebp + 4], ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x78]
call fcn.00429ef2
push 5
lea ecx, [ebp + 0x2c]
call fcn.0042465d
push 0x14
lea ecx, [ebp + 8]
call fcn.0042465d
lea ecx, [ebp + 0x14]
call fcn.0042460b
lea ecx, [ebp + 0x24]
call fcn.0042460b
lea ecx, [ebp + 0x28]
call fcn.0042460b
mov eax, dword [ebp + 0x78]
or ebx, 0xffffffff
mov dword [ebp + 0x44], eax
push 0x2c
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x44]
xor edi, edi
push eax
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x38], edi
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
mov byte [ebp + 0xe], 0
mov byte [ebp + 0x6d], 0
call fcn.0042df66
mov eax, dword [ebp + 0x24]
mov word [eax], di
mov eax, dword [ebp + 0x44]
add esp, 0xc
cmp word [eax], 0x2c
jne 0x437f1d
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x44], eax
push 0x2c
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x44]
push eax
call fcn.0042df66
add esp, 0xc
push 0xfffffffffffffff7
pop eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x78]
cmp word [eax], di
mov byte [ebp + 0x43], 0
mov byte [ebp + 0x6f], 0
mov byte [ebp - 4], 0
mov byte [ebp + 0x33], 0
mov byte [ebp + 0xc], 0
mov byte [ebp - 1], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0xf], 0
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x34], edi
mov byte [ebp + 0x44], 0
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xc], ebx
je 0x43840d
push 6
lea eax, [ebp + 0x78]
push eax
push str._admin
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x437f89
or byte [ebp + 0x43], 1
jmp 0x4383cd
push 6
lea eax, [ebp + 0x78]
push eax
push str._super
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x437fa9
or byte [ebp + 0x43], 2
jmp 0x4383cd
push 6
lea eax, [ebp + 0x78]
push eax
push str._hextp
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x437fc9
or dword [ebp + 0x34], 1
jmp 0x4383cd
push 4
lea eax, [ebp + 0x78]
push eax
push str._phy
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x437fe9
or dword [ebp + 0x34], 2
jmp 0x4383cd
push 5
lea eax, [ebp + 0x78]
push eax
push 0x47b4dc
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x438009
or dword [ebp + 0x34], 0x10
jmp 0x4383cd
push 5
lea eax, [ebp + 0x78]
push eax
push str._fill
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x438029
or dword [ebp + 0x34], 4
jmp 0x4383cd
push 3
lea eax, [ebp + 0x78]
push eax
push 0x47b4d0
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x438049
mov byte [ebp + 0xf], 1
jmp 0x4383cd
mov esi, dword [ebp + 0x78]
push 4
push esi
push str._mbr
call fcn.004257a3
add esp, 0xc
test al, al
je 0x4380c8
lea ecx, [esi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x43807c
cmp ax, 0x3d
je 0x43807c
call fcn.004213da
test al, al
je 0x4380c8
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0x48], edi
je 0x438091
mov dword [ebp + 0x50], 0x47b4c0
jmp 0x4380bb
add dword [ebp + 0x78], 2
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov eax, dword [eax]
mov dword [ebp + 0x50], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00403953
mov eax, dword [ebp + 0x78]
cmp word [eax], di
pop ecx
je 0x4380bb
mov word [eax], di
add dword [ebp + 0x78], 2
lea ecx, [ebp + 0x78]
call fcn.00429ef2
jmp 0x4383cd
push 4
push esi
push str._pbr
call fcn.004257a3
add esp, 0xc
test al, al
je 0x438126
lea ecx, [esi + 8]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x4380f8
cmp ax, 0x3d
je 0x4380f8
call fcn.004213da
test al, al
je 0x438126
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
mov dword [ebp + 0x50], edi
je 0x438110
mov dword [ebp + 0x48], 0x4761ce
jmp 0x438378
add dword [ebp + 0x78], 2
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov eax, dword [eax]
mov dword [ebp + 0x48], eax
jmp 0x4380a2
push 9
push esi
push str._alignend
call fcn.004257a3
add esp, 0xc
test al, al
je 0x4381ad
lea ecx, [esi + 0x12]
xor eax, eax
mov ax, word [ecx]
cmp ax, di
je 0x438156
cmp ax, 0x3d
je 0x438156
call fcn.004213da
test al, al
je 0x4381ad
mov dword [ebp + 0x78], ecx
cmp word [ecx], 0x3d
jne 0x43819e
xor eax, eax
add ecx, 2
mov ax, word [ecx]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x438378
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x50], ecx
call fcn.0042f308
cmp dword [ebp - 0xc], edi
pop ecx
pop ecx
jg 0x438378
jl 0x43819e
cmp dword [ebp - 0x10], edi
ja 0x438378
mov dword [ebp - 0x10], 0xfffffffe
mov dword [ebp - 0xc], ebx
jmp 0x438378
push 6
push esi
push str._align
call fcn.004257a3
add esp, 0xc
test al, al
je 0x438248
add esi, 0xc
xor eax, eax
mov ax, word [esi]
cmp ax, di
je 0x4381e1
cmp ax, 0x3d
je 0x4381e1
call fcn.004213da
test al, al
je 0x438248
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.00403953
pop ecx
lea ecx, [ebp + 0x78]
call fcn.00429ef2
cmp word [esi], 0x3d
je 0x438207
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
jmp 0x4383cd
xor eax, eax
lea ecx, [esi + 2]
mov ax, word [ecx]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x4383cd
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x50], ecx
call fcn.0042f308
cmp dword [ebp - 0x30], edi
pop ecx
pop ecx
jg 0x4383cd
jl 0x4381fc
cmp dword [ebp - 0x34], edi
ja 0x4383cd
jmp 0x4381fc
push 6
lea eax, [ebp + 0x78]
push eax
push str._clear
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x438268
mov byte [ebp - 4], 1
jmp 0x4383cd
push 3
lea eax, [ebp + 0x78]
push eax
push 0x47b498
call fcn.0042c9b5
add esp, 0xc
test al, al
jne 0x4383c9
push 4
lea eax, [ebp + 0x78]
push eax
push str._del
call fcn.0042c9b5
add esp, 0xc
test al, al
jne 0x4383c9
push 4
lea eax, [ebp + 0x78]
push eax
push str._raw
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x4382be
mov byte [ebp + 0xc], 1
jmp 0x4383cd
push 5
push dword [ebp + 0x78]
push str._CHS
call fcn.004257a3
add esp, 0xc
test al, al
je 0x438359
add dword [ebp + 0x78], 0xa
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov esi, dword [ebp + 0x78]
mov eax, ecx
push eax
mov dword [ebp + 0x68], esi
call fcn.00403953
lea ecx, [ebp + 0x78]
call fcn.00429ef2
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040e5a7
add esp, 8
test al, al
je 0x43831b
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042f308
pop ecx
pop ecx
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3a
jne 0x438337
add dword [ebp + 0x68], 2
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042f308
pop ecx
pop ecx
mov eax, dword [ebp + 0x68]
cmp word [eax], 0x3a
jne 0x4383cd
add dword [ebp + 0x68], 2
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp + 0x68]
push eax
call fcn.0042f308
pop ecx
pop ecx
jmp 0x4383cd
push 5
push dword [ebp + 0x78]
push str._IMG
call fcn.004257a3
add esp, 0xc
test al, al
jne 0x4383d9
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
jne 0x438387
lea eax, [ebp + 0x78]
push eax
call fcn.00403953
pop ecx
jmp 0x4380bb
push 6
push dword [ebp + 0x78]
push str._SKIP
call fcn.004257a3
add esp, 0xc
test al, al
je 0x4383d9
add dword [ebp + 0x78], 0xc
lea ecx, [ebp + 0x78]
call fcn.00429ef2
lea eax, [ebp + 0x18]
push eax
mov eax, ecx
push eax
mov dword [ebp + 0x18], 0x42
call fcn.0042e410
mov al, byte [ebp + 0x18]
pop ecx
pop ecx
mov byte [ebp + 0x44], al
jmp 0x4380bb
mov byte [ebp + 0x33], 1
mov eax, dword [ebp + 0x78]
cmp word [eax], di
jne 0x437f69
cmp dword [ebp - 0x10], 0xfffffffe
jne 0x438402
cmp dword [ebp - 0xc], ebx
jne 0x438402
mov eax, dword [ebp - 0x34]
cmp eax, 0xfffffff7
jne 0x4383f9
cmp dword [ebp - 0x30], ebx
jne 0x4383f9
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
jmp 0x43840d
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x34], 0xfffffff7
jne 0x438417
cmp dword [ebp - 0x30], ebx
jne 0x438417
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x30], edi
cmp dword [ebp - 0x10], 0xfffffff7
jne 0x43842e
cmp dword [ebp - 0xc], ebx
jne 0x43842e
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
push 4
lea eax, [ebp + 0x78]
push eax
push str.list
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43849a
push 4
lea eax, [ebp + 0x78]
push eax
push str.disk
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x438462
mov byte [ebp + 0x6f], 1
jmp 0x43849a
push 4
lea eax, [ebp + 0x78]
push eax
push str.part
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43847f
mov byte [ebp + 0x6f], 2
jmp 0x43849a
push 3
lea eax, [ebp + 0x78]
push eax
push 0x47b464
call fcn.0042c9b5
add esp, 0xc
test al, al
je 0x43849a
mov byte [ebp + 0x6f], 3
push 6
push dword [ebp + 0x78]
mov byte [ebp + 0xd], 0
push str.update
call fcn.00425759
add esp, 0xc
test al, al
je 0x4384cb
add dword [ebp + 0x78], 0xc
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov byte [ebp + 0xd], 1
mov dword [ebp + 0x38], 1
mov esi, dword [ebp + 0x78]
lea eax, [ebp + 0x78]
push eax
call fcn.00403953
mov eax, dword [ebp + 0x78]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x14]
call fcn.00409ba0
lea ecx, [ebp + 0x78]
call fcn.00429ef2
mov ecx, dword [ebp + 0x78]
xor eax, eax
mov ax, word [ecx]
mov edx, eax
or edx, 0x20
cmp dx, 0x61
jne 0x43850d
mov dword [ebp + 0x10], 0x80
jmp 0x438524
cmp ax, 0x2d
jne 0x43852e
mov ax, word [ecx + 2]
or ax, 0x20
cmp ax, 0x61
jne 0x43852e
mov dword [ebp + 0x10], edi
lea eax, [ebp + 0x78]
push eax
call fcn.00403953
pop ecx
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042e410
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
pop ecx
pop ecx
jne 0x43854f
inc eax
inc eax
mov byte [ebp - 1], 1
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2b
jne 0x43855f
mov cl, byte [eax]
inc eax
inc eax
mov byte [ebp + 0xe], cl
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f308
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042f308
add esp, 0x10
cmp byte [ebp + 0x6f], 1
je 0x438585
mov dword [ebp + 0x4c], edi
mov esi, dword [ebp + 0x14]
push 5
push esi
push str._img
mov dword [ebp + 0x78], esi
call fcn.004257a3
add esp, 0xc
test al, al
je 0x4385e5
lea ecx, [esi + 0xa]
mov esi, ecx
xor edx, edx
jmp 0x4385bb
mov eax, edx
call fcn.004213da
test al, al
jne 0x4385c6
cmp dx, 0x23
je 0x4385c6
inc ecx
inc ecx
mov dword [ebp + 0x78], ecx
mov dx, word [ecx]
cmp dx, di
jne 0x4385a8
sub ecx, esi
sar ecx, 1
cmp ecx, edi
jle 0x4385db
push ecx
push esi
lea ecx, [ebp + 0x28]
call fcn.00409ba0
mov dword [ebp + 0x4c], ebx
lea ecx, [ebp + 0x78]
call fcn.00429ef2
jmp 0x438623
push 2
push esi
push 0x47b450
call fcn.004257a3
add esp, 0xc
test al, al
je 0x4385ff
add esi, 4
mov dword [ebp + 0x78], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x438626
push 0x23
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042e1ad
add esp, 0xc
mov esi, dword [ebp + 0x78]
mov ax, word [esi]
cmp ax, 0x23
je 0x438635
cmp ax, 0x3a
jne 0x4386ab
inc esi
inc esi
push 2
push esi
push 0x47b44c
mov dword [ebp + 0x78], esi
call fcn.004257a3
push 2
push esi
push 0x47b448
mov byte [ebp + 0x67], al
call fcn.004257a3
add esp, 0x18
test al, al
mov byte [ebp + 0x6e], al
jne 0x438679
mov ax, word [esi]
cmp ax, 0x40
je 0x438670
cmp ax, 0x2d
jne 0x438679
or dword [ebp + 0x34], 2
inc esi
inc esi
mov dword [ebp + 0x78], esi
xor eax, eax
mov ax, word [esi]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x4386ab
lea eax, [ebp + 0x38]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.0042e410
test eax, eax
pop ecx
pop ecx
jle 0x4386ab
cmp dword [ebp + 0x38], edi
mov byte [ebp + 0x6d], 1
jne 0x4386ab
mov byte [ebp + 0x67], 1
cmp byte [ebp + 0xd], 0
je 0x4386c0
cmp dword [ebp + 0x4c], edi
jge 0x4386c0
mov esi, 0x80070057
jmp 0x43970a
lea eax, [ebp - 0xec]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x28]
mov word [ebp - 0xec], di
cmp word [eax], di
je 0x4386db
mov dword [ebp + 0x18], eax
push dword [ebp + 0x4c]
lea eax, [ebp - 0xec]
push str..PhysicalDrive_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp dword [ebp + 0x50], edi
mov dword [ebp + 0x68], edi
je 0x4389bc
cmp dword [ebp + 0x4c], edi
jge 0x438710
mov eax, dword [ebp + 0x28]
cmp word [eax], di
je 0x4396fd
mov eax, dword [ebp + 0x50]
mov esi, 0x1b8
mov dword [ebp + 0x3c], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
cmp word [eax], di
je 0x438843
push eax
push 0x47b444
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438843
push dword [ebp + 0x50]
push 0x47b440
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438843
mov esi, dword [ebp + 0x50]
push esi
push 0x47b43c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x438780
mov dword [ebp + 0x10], 0x4892e8
mov dword [ebp + 0x3c], 0x190
jmp 0x43885f
push esi
push 0x47b438
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x4387a4
mov dword [ebp + 0x10], 0x489478
mov dword [ebp + 0x3c], 0x180
jmp 0x43885f
mov dword [ebp + 0x3c], edi
cmp word [esi], 0x2a
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
jne 0x4387d2
lea eax, [ebp + 0x1c]
push eax
inc esi
lea eax, [ebp + 0x50]
inc esi
push eax
mov dword [ebp + 0x50], esi
call fcn.0042f308
mov esi, dword [ebp + 0x50]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x4387d2
inc esi
inc esi
cmp word [esi], 0x23
jne 0x43880a
push esi
lea ecx, [ebp + 4]
call fcn.0042a183
push edi
lea eax, [ebp - 0x28]
push eax
push str.EXEDATA
push dword [ebp + 4]
push edi
call fcn.0040e9a5
add esp, 0x14
lea ecx, [ebp + 4]
mov dword [ebp + 0x10], eax
call fcn.00424686
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x3c], eax
jmp 0x43881e
lea eax, [ebp + 0x3c]
push eax
push edi
push esi
call fcn.00409d4f
add esp, 0xc
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x28], eax
cmp dword [ebp + 0x20], edi
jl 0x43884d
jg 0x43882a
cmp dword [ebp + 0x1c], edi
jb 0x43884d
xor eax, eax
cmp eax, dword [ebp + 0x20]
jl 0x43884d
jg 0x43883b
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x1c]
jbe 0x43884d
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x3c], eax
jmp 0x43884d
mov dword [ebp + 0x10], 0x4895f8
mov dword [ebp + 0x3c], esi
cmp dword [ebp + 0x3c], edi
jbe 0x4389b4
cmp dword [ebp + 0x10], edi
je 0x4389b4
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x18]
lea ecx, [ebp + 0x68]
call fcn.00403993
cmp dword [ebp + 0x68], edi
je 0x438c51
mov esi, dword [ebp + 0x3c]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi]
push eax
lea ecx, [ebp + 0x44]
call fcn.00424576
mov ebx, dword [ebp + 0x44]
push 0
lea eax, [ebp - 0x1c]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x438c49
push esi
push edi
push ebx
call fcn.00461a50
add esp, 0xc
xor eax, eax
push eax
push eax
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
jne 0x438c49
mov ecx, dword [ebp + 0x3c]
mov eax, 0x1b8
cmp ecx, eax
jle 0x4388ec
mov ecx, eax
push ecx
push dword [ebp + 0x10]
push edi
call fcn.00461a50
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x3c]
add esp, 0xc
cmp eax, 0x200
jbe 0x43892f
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00461a50
add esp, 0xc
push esi
push edi
push ebx
mov dword [ebp + 4], 1
call fcn.00461880
add esp, 0xc
test eax, eax
je 0x43895f
push 0
lea eax, [ebp - 0x1c]
push eax
push esi
push edi
mov edi, dword [ebp + 0x68]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp + 4], eax
call fcn.00427700
lea ecx, [ebp + 0x44]
call fcn.00424686
lea ecx, [ebp - 0x28]
call fcn.00424686
lea ecx, [ebp + 0x68]
call fcn.00402905
lea ecx, [ebp + 0x28]
call fcn.00424686
lea ecx, [ebp + 0x24]
call fcn.00424686
lea ecx, [ebp + 0x14]
call fcn.00424686
lea ecx, [ebp + 8]
call fcn.00424686
lea ecx, [ebp + 0x2c]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
cmp dword [ebp + 4], eax
jmp 0x438d81
lea ecx, [ebp - 0x28]
jmp 0x4393e9
mov esi, dword [ebp + 0x48]
cmp esi, edi
je 0x438d89
cmp dword [ebp + 0x38], edi
jle 0x4396fd
cmp dword [ebp + 0x4c], edi
jge 0x4389e1
mov eax, dword [ebp + 0x28]
cmp word [eax], di
je 0x4396fd
push dword [ebp + 0x44]
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x34]
lea eax, [ebp + 0x2c]
push dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
push dword [ebp + 0x4c]
mov dword [ebp - 0x14], edi
push eax
mov dword [ebp + 4], ebx
call fcn.004379b8
add esp, 0x1c
cmp dword [ebp + 4], edi
jg 0x438a17
xor esi, esi
inc esi
jmp 0x439702
mov dword [ebp + 0x50], 0x200
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
cmp word [esi], di
je 0x438b77
push esi
push 0x47b444
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438b77
push esi
push 0x47b440
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438b77
push esi
push 0x47b438
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x438a72
push 8
jmp 0x438b79
push esi
push str.nt6fat
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438b73
push esi
push str.winfat
call fcn.004257d3
test al, al
pop ecx
pop ecx
jne 0x438b73
push esi
push 0x47b43c
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x438ab4
push 6
jmp 0x438b79
push esi
push str.nt5fat
call fcn.004257d3
test al, al
pop ecx
pop ecx
je 0x438acc
push 5
jmp 0x438b79
mov dword [ebp + 0x50], edi
cmp word [esi], 0x2a
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
jne 0x438afa
lea eax, [ebp + 0x1c]
push eax
inc esi
lea eax, [ebp + 0x48]
inc esi
push eax
mov dword [ebp + 0x48], esi
call fcn.0042f308
mov esi, dword [ebp + 0x48]
cmp word [esi], 0x2a
pop ecx
pop ecx
jne 0x438afa
inc esi
inc esi
cmp word [esi], 0x23
jne 0x438b32
push esi
lea ecx, [ebp + 4]
call fcn.0042a183
push edi
lea eax, [ebp - 0x28]
push eax
push str.EXEDATA
push dword [ebp + 4]
push edi
call fcn.0040e9a5
add esp, 0x14
lea ecx, [ebp + 4]
mov dword [ebp + 0x48], eax
call fcn.00424686
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x50], eax
jmp 0x438b46
lea eax, [ebp + 0x50]
push eax
push edi
push esi
call fcn.00409d4f
add esp, 0xc
mov dword [ebp + 0x48], eax
mov dword [ebp - 0x28], eax
cmp dword [ebp + 0x20], edi
jl 0x438b69
jg 0x438b52
cmp dword [ebp + 0x1c], edi
jb 0x438b69
xor eax, eax
cmp eax, dword [ebp + 0x20]
jl 0x438b69
jg 0x438b63
mov eax, dword [ebp + 0x50]
cmp eax, dword [ebp + 0x1c]
jbe 0x438b69
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x48], edi
jne 0x438ba0
jmp 0x438c51
push 7
jmp 0x438b79
push 9
pop eax
push edi
lea ecx, [ebp - 0x28]
push ecx
push str.INDATA
push eax
push edi
call fcn.0040e9a5
add esp, 0x14
cmp dword [ebp + 0x50], edi
mov dword [ebp + 0x48], eax
je 0x438c51
mov eax, dword [ebp - 0x24]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x50], edi
jbe 0x438c51
cmp dword [ebp + 0x48], edi
je 0x438c51
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x18]
lea ecx, [ebp + 0x68]
call fcn.00403993
cmp dword [ebp + 0x68], edi
je 0x438c51
push edi
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x10
cmp eax, dword [ebp - 0x18]
jne 0x438c51
cmp edx, dword [ebp - 0x14]
jne 0x438c51
mov esi, dword [ebp + 0x50]
add esi, 0x1ff
and esi, 0xfffffe00
lea eax, [esi + esi]
push eax
lea ecx, [ebp + 0x44]
call fcn.00424576
mov ebx, dword [ebp + 0x44]
push 0
lea eax, [ebp - 0x1c]
push eax
push esi
lea edi, [ebx + esi]
push edi
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x438c49
push esi
push edi
push ebx
call fcn.00461a50
push 0
push dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x1c
cmp eax, dword [ebp - 0x18]
jne 0x438c49
cmp edx, dword [ebp - 0x14]
je 0x438c9c
lea ecx, [ebp + 0x44]
call fcn.00424686
lea ecx, [ebp - 0x28]
call fcn.00424686
lea ecx, [ebp + 0x68]
call fcn.00402905
lea ecx, [ebp + 0x28]
call fcn.00424686
lea ecx, [ebp + 0x24]
call fcn.00424686
lea ecx, [ebp + 0x14]
call fcn.00424686
lea ecx, [ebp + 8]
call fcn.00424686
lea ecx, [ebp + 0x2c]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
inc eax
jmp 0x43973f
mov ebx, dword [ebp + 0x50]
push 3
push dword [ebp + 0x48]
push edi
call fcn.00461a50
mov eax, 0x1fe
add esp, 0xc
cmp ebx, eax
jle 0x438cb8
mov ebx, eax
mov eax, dword [ebp + 0x48]
add ebx, 0xffffffe2
add eax, 0x1e
push ebx
push eax
lea eax, [edi + 0x1e]
push eax
call fcn.00461a50
mov byte [edi + 0x1fe], 0x55
mov byte [edi + 0x1ff], 0xaa
mov eax, dword [ebp + 0x50]
add esp, 0xc
cmp eax, 0x200
jbe 0x438d05
add eax, 0xfffffe00
push eax
mov eax, dword [ebp + 0x48]
add eax, 0x200
push eax
lea eax, [edi + 0x200]
push eax
call fcn.00461a50
add esp, 0xc
push esi
push edi
push dword [ebp + 0x44]
xor ebx, ebx
inc ebx
call fcn.00461880
add esp, 0xc
test eax, eax
je 0x438d32
push 0
lea eax, [ebp - 0x1c]
push eax
push esi
push edi
mov edi, dword [ebp + 0x68]
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
call fcn.00427700
lea ecx, [ebp + 0x44]
call fcn.00424686
lea ecx, [ebp - 0x28]
call fcn.00424686
lea ecx, [ebp + 0x68]
call fcn.00402905
lea ecx, [ebp + 0x28]
call fcn.00424686
lea ecx, [ebp + 0x24]
call fcn.00424686
lea ecx, [ebp + 0x14]
call fcn.00424686
lea ecx, [ebp + 8]
call fcn.00424686
lea ecx, [ebp + 0x2c]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
test ebx, ebx
sete al
jmp 0x43973f
cmp byte [ebp + 0x6f], 1
jne 0x438d9f
push dword [ebp + 0x4c]
lea eax, [ebp + 0x2c]
push eax
call fcn.004377fd
pop ecx
pop ecx
jmp 0x438de7
cmp byte [ebp + 0x6f], 2
jne 0x438daf
push dword [ebp + 0x44]
push edi
push edi
push dword [ebp + 0x34]
jmp 0x438dd5
cmp byte [ebp + 0x6f], 3
jne 0x438dfc
mov eax, dword [ebp + 0x14]
mov ax, word [eax]
cmp ax, di
mov ecx, dword [ebp + 0x2c]
mov word [ecx], ax
je 0x438de7
push dword [ebp + 0x44]
mov eax, dword [ebp + 0x34]
push edi
and eax, 0xfffffffd
push edi
or eax, 0xc
push eax
push dword [ebp + 0x38]
lea eax, [ebp + 0x2c]
push dword [ebp + 0x4c]
push eax
call fcn.004379b8
add esp, 0x1c
push dword [ebp + 0x2c]
mov ecx, dword [ebp + 4]
push dword [ebp + 0x24]
call fcn.00428e1b
xor esi, esi
jmp 0x439702
cmp byte [ebp + 0x6e], 0
push 5
pop esi
je 0x438e1a
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x38], esi
cmp byte [ebp + 0x67], 0
je 0x438e23
mov dword [ebp + 0x38], esi
cmp byte [ebp + 0x33], 0
je 0x438e3b
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x60], edi
dec dword [ebp + 0x38]
cmp dword [ebp + 0x3c], edi
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 3], 0
mov byte [ebp - 6], 0
mov dword [ebp - 0x50], edi
mov byte [ebp - 2], 0
mov byte [ebp - 5], 0
mov dword [ebp + 0x34], edi
jne 0x438e79
mov eax, dword [ebp + 0x5c]
or eax, dword [ebp + 0x60]
jne 0x438e79
mov eax, dword [ebp + 0x54]
or eax, dword [ebp + 0x58]
jne 0x438e79
mov byte [ebp + 0x33], 1
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push 0x20000000
push 3
push edi
push 3
push 0xc0000000
push dword [ebp + 0x18]
lea ecx, [ebp + 0x68]
call fcn.00403993
cmp byte [ebp + 0xd], 0
je 0x438eb0
mov eax, dword [ebp + 0x68]
call fcn.00427712
mov esi, eax
jmp 0x439702
cmp dword [ebp + 0x3c], 0xff
jg 0x4396fd
cmp byte [ebp + 0x67], 0
jne 0x438f08
cmp dword [ebp + 0x38], edi
jge 0x438f08
cmp dword [ebp + 0x60], edi
jg 0x4396fd
jl 0x438edc
cmp dword [ebp + 0x5c], edi
jae 0x4396fd
cmp dword [ebp + 0x58], edi
jg 0x4396fd
jl 0x438ef0
cmp dword [ebp + 0x54], edi
jae 0x4396fd
cmp dword [ebp + 0x3c], edi
jge 0x4396fd
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
cmp byte [ebp + 0x67], 0
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
mov dword [ebp + 0x44], eax
jne 0x438f3d
cmp byte [ebp + 0x6e], 0
jne 0x438f44
cmp eax, 4
jl 0x43928e
jmp 0x438f44
mov dword [ebp + 0x38], 4
cmp dword [ebp + 0x3c], esi
je 0x4396fd
cmp dword [ebp + 0x3c], 0xf
je 0x4396fd
cmp dword [ebp + 0x3c], 0x85
je 0x4396fd
and dword [ebp + 4], 0
push 0x100000
lea ecx, [ebp + 0x4c]
call fcn.00424576
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x4c]
push dword [ebp + 0x68]
call fcn.00427525
mov edi, dword [ebp + 4]
add esp, 0xc
cmp edi, dword [ebp + 0x38]
jg 0x438f99
cmp dword [ebp + 0x38], 4
jge 0x4396f5
cmp byte [ebp + 0x67], 0
lea esi, [eax + 8]
jne 0x438fac
cmp byte [ebp + 0x6e], 0
mov byte [ebp + 0x6f], 0
je 0x438fb0
mov byte [ebp + 0x6f], 1
mov ecx, dword [ebp + 0x38]
inc ecx
cmp ecx, 4
lea eax, [ecx - 1]
jle 0x438fc3
lea eax, [ecx*4 - 0x10]
cmp byte [ebp + 0x6e], 0
mov dword [ebp + 0x48], eax
je 0x438fd4
lea eax, [edi - 8]
mov dword [ebp + 0x48], eax
jmp 0x438ffe
cmp byte [ebp + 0x67], 0
je 0x438ffe
cmp dword [ebp + 0x3c], 0
jl 0x4396f5
cmp word [ebp + 0x10], 0
lea eax, [edi - 4]
mov dword [ebp + 0x48], eax
jle 0x438ffa
mov dword [ebp + 0x10], 0x80
jmp 0x438ffe
and dword [ebp + 0x10], 0
cmp byte [ebp + 0x6f], 0
jne 0x439029
cmp ecx, 4
jg 0x43900c
dec ecx
jmp 0x439013
lea ecx, [ecx*4 - 0x10]
test ecx, ecx
jle 0x4396f5
cmp ecx, edi
jl 0x439029
cmp dword [ebp + 0x38], 4
jg 0x4396f5
add eax, 0xfffffffc
cdq
push 4
pop ecx
idiv ecx
mov dword [ebp + 0x50], ebx
mov dword [ebp + 0x44], ebx
mov edx, ebx
lea edi, [esi + 0x18]
shl eax, 7
add eax, esi
xor ecx, ecx
mov bl, byte [edi]
cmp bl, 5
je 0x439050
cmp bl, 0xf
jne 0x439052
mov edx, ecx
inc ecx
add edi, 0x20
cmp ecx, 4
jl 0x439044
test edx, edx
jl 0x4396f5
shl edx, 5
add edx, esi
mov ecx, dword [edx]
mov edi, dword [edx + 8]
and dword [ebp + 0x18], 0
mov dword [ebp - 0x70], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x6c], ecx
lea ecx, [eax + 0x18]
mov bl, byte [ecx]
cmp bl, 5
je 0x43908c
cmp bl, 0xf
jne 0x439092
mov ebx, dword [ebp + 0x18]
mov dword [ebp + 0x50], ebx
inc dword [ebp + 0x18]
add ecx, 0x20
cmp dword [ebp + 0x18], 4
jl 0x439080
cmp byte [ebp + 0x6f], 0
je 0x4390aa
and dword [ebp + 0x44], 0
jmp 0x4390d1
xor ebx, ebx
add eax, 0x98
mov cl, byte [eax]
test cl, cl
jne 0x4390bb
test ebx, ebx
jne 0x4390c8
cmp cl, 5
je 0x4390c8
cmp cl, 0xf
je 0x4390c8
mov dword [ebp + 0x44], ebx
inc ebx
add eax, 0x20
cmp ebx, 4
jl 0x4390b1
mov ecx, dword [ebp + 0x50]
test ecx, ecx
jl 0x4396f5
cmp byte [ebp + 0x6f], 0
jne 0x4390ec
cmp dword [ebp + 0x44], 0
jl 0x4396f5
mov eax, dword [ebp + 0x48]
lea ecx, [ecx + eax - 4]
shl ecx, 5
cmp byte [ebp + 0x6e], 0
je 0x43913c
xor eax, eax
mov byte [ebp - 0x2c], 0
lea edi, [ebp - 0x2b]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x2c]
push eax
push dword [ecx + esi + 4]
push dword [ecx + esi]
push dword [ebp + 0x68]
call fcn.004275c8
add esp, 0x10
cmp byte [ebp + 0xf], 0
je 0x43912f
mov eax, dword [ebp + 0x68]
call fcn.00427712
lea ecx, [ebp + 0x4c]
call fcn.00424686
jmp 0x438df5
cmp byte [ebp + 0x67], 0
je 0x4391f1
lea eax, [ecx + esi]
mov esi, dword [eax]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 4]
add ecx, esi
mov dword [ebp - 0x24], esi
mov esi, dword [eax + 0xc]
adc esi, ebx
sub edi, ecx
sbb edx, esi
add edi, dword [ebp - 0x70]
mov dword [ebp - 0x20], ebx
adc edx, dword [ebp - 0x6c]
cmp byte [ebp + 0xe], 0
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], esi
je 0x43917a
add dword [ebp + 0x5c], ecx
adc dword [ebp + 0x60], esi
mov ebx, ecx
add ebx, 0x200
mov eax, esi
adc eax, 0
cmp dword [ebp + 0x60], eax
jg 0x439199
jl 0x439193
cmp dword [ebp + 0x5c], ebx
ja 0x439199
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], eax
sub edi, dword [ebp + 0x5c]
sbb edx, dword [ebp + 0x60]
add edi, ecx
adc edx, esi
cmp dword [ebp + 0x58], edx
jl 0x4391b5
jg 0x4391af
cmp dword [ebp + 0x54], edi
jbe 0x4391b5
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edx
cmp dword [ebp + 0x58], 0
jg 0x4391cb
jl 0x4396f5
cmp dword [ebp + 0x54], 0
jb 0x4396f5
mov eax, dword [ebp + 4]
dec eax
and eax, 0xfffffffc
cmp eax, 3
jg 0x4391da
inc eax
jmp 0x4391e2
cdq
push 4
pop edi
idiv edi
add eax, edi
inc eax
mov dword [ebp + 0x38], eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], esi
jmp 0x439281
add ecx, esi
mov ebx, dword [ecx]
mov edx, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov edi, 0x200
mov eax, ebx
add eax, edi
mov dword [ebp + 4], edx
adc edx, 0
sub esi, edi
mov edi, dword [ecx + 0xc]
sbb edi, 0
cmp byte [ebp + 0xe], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
je 0x439224
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
cmp dword [ebp + 0x60], 0
jl 0x439244
jg 0x439232
cmp dword [ebp + 0x5c], 0
jbe 0x439244
cmp dword [ebp + 0x60], edx
jg 0x439244
jl 0x43923e
cmp dword [ebp + 0x5c], eax
ja 0x439244
mov dword [ebp + 0x5c], eax
mov dword [ebp + 0x60], edx
xor eax, eax
cmp dword [ebp + 0x58], eax
jl 0x439278
jg 0x439252
cmp dword [ebp + 0x54], eax
jbe 0x439278
cmp dword [ebp + 0x58], edi
jl 0x439264
jg 0x43925e
cmp dword [ebp + 0x54], esi
jbe 0x439264
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edi
cmp dword [ebp + 0x58], eax
jg 0x439278
jl 0x4396f5
cmp dword [ebp + 0x54], eax
jb 0x4396f5
mov eax, dword [ebp + 4]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], eax
lea ecx, [ebp + 0x4c]
call fcn.00424686
mov eax, dword [ebp + 0x44]
xor edi, edi
cmp dword [ebp + 0x38], 4
setge byte [ebp + 0x18]
cmp byte [ebp + 0x43], 0
jne 0x4392ac
cmp byte [ebp + 0x6d], 0
je 0x4392bb
cmp dword [ebp + 0x38], 1
jle 0x4396fd
cmp byte [ebp + 0x6d], 0
je 0x4392bb
cmp dword [ebp + 0x38], edi
jl 0x4396fd
cmp byte [ebp + 0x33], 0
jne 0x43980a
cmp dword [ebp + 0x60], edi
jg 0x4392e5
jl 0x4392d1
cmp dword [ebp + 0x5c], edi
jae 0x4392e5
cmp dword [ebp + 0x58], edi
jl 0x43980a
jg 0x4392e5
cmp dword [ebp + 0x54], edi
jb 0x43980a
cmp dword [ebp + 0x38], edi
jl 0x43980a
push 0x100000
lea ecx, [ebp + 0x4c]
call fcn.00424576
mov eax, dword [ebp + 0x28]
mov ax, word [eax]
cmp ax, di
je 0x439348
cmp dword [ebp - 0x64], edi
jg 0x43931c
jl 0x439312
cmp dword [ebp - 0x68], edi
ja 0x43931c
mov dword [ebp - 0x68], 0xff
mov dword [ebp - 0x64], edi
cmp dword [ebp - 0x5c], edi
jg 0x439332
jl 0x439328
cmp dword [ebp - 0x60], edi
ja 0x439332
mov dword [ebp - 0x60], 0x3f
mov dword [ebp - 0x5c], edi
cmp dword [ebp + 0x20], edi
jg 0x439348
jl 0x43933e
cmp dword [ebp + 0x1c], edi
ja 0x439348
mov dword [ebp + 0x1c], 0x200
mov dword [ebp + 0x20], edi
mov ecx, dword [ebp - 0x68]
mov dword [ebp + 0x50], ecx
mov ecx, dword [ebp - 0x60]
mov dword [ebp + 0x34], ecx
mov ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x48], ecx
xor ecx, ecx
inc ecx
cmp ax, di
jne 0x4393cd
xor eax, eax
xor esi, esi
mov dword [ebp - 0x88], esi
lea edi, [ebp - 0x84]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0x1c]
push eax
push 0x18
lea eax, [ebp - 0x88]
push eax
push esi
push esi
push 0x70000
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp dword [ebp - 0x64], esi
mov ecx, eax
jg 0x4393a9
jl 0x4393a3
cmp dword [ebp - 0x68], esi
ja 0x4393a9
mov eax, dword [ebp - 0x7c]
mov dword [ebp + 0x50], eax
cmp dword [ebp - 0x5c], esi
jg 0x4393bb
jl 0x4393b5
cmp dword [ebp - 0x60], esi
ja 0x4393bb
mov eax, dword [ebp - 0x78]
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x20], esi
jg 0x4393cd
jl 0x4393c7
cmp dword [ebp + 0x1c], esi
ja 0x4393cd
mov eax, dword [ebp - 0x74]
mov dword [ebp + 0x48], eax
mov esi, dword [ebp + 0x48]
imul esi, dword [ebp + 0x34]
mov eax, dword [ebp + 0x50]
imul eax, esi
cdq
xor edi, edi
cmp ecx, edi
mov ebx, eax
mov dword [ebp + 0x20], edx
jne 0x4393f3
lea ecx, [ebp + 0x4c]
call fcn.00424686
jmp 0x438a0f
cmp dword [ebp + 0x48], edi
jle 0x4396f5
mov eax, dword [ebp + 0x28]
cmp word [eax], di
jne 0x43942e
lea eax, [ebp + 4]
push eax
push dword [ebp + 0x4c]
mov dword [ebp + 4], edi
push dword [ebp + 0x68]
call fcn.00427525
add esp, 0xc
test eax, eax
je 0x4393e6
mov eax, dword [ebp + 0x38]
cmp eax, 4
jl 0x43942e
cmp eax, dword [ebp + 4]
jg 0x4396f5
xor eax, eax
xor edx, edx
cmp dword [ebp + 0x60], edi
jl 0x4394cd
jg 0x439446
cmp dword [ebp + 0x5c], edi
jbe 0x4394cd
mov ecx, dword [ebp - 0x34]
and ecx, dword [ebp - 0x30]
cmp ecx, 0xffffffff
jne 0x439487
mov edi, dword [ebp + 0x60]
cmp edi, dword [ebp + 0x20]
jl 0x43946c
jg 0x439460
cmp dword [ebp + 0x5c], ebx
jb 0x43946c
cmp byte [ebp + 0x18], 0
jne 0x43946c
push dword [ebp + 0x20]
push ebx
jmp 0x439471
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x5c]
call fcn.0042759e
add esp, 0x10
add dword [ebp + 0x5c], eax
adc edi, edx
mov dword [ebp + 0x60], edi
jmp 0x4394cb
cmp byte [ebp + 0xc], 0
jne 0x4394cb
mov eax, dword [ebp + 0x48]
cdq
mov esi, eax
add eax, dword [ebp - 0x34]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0x30]
push edi
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
call fcn.00462660
push edi
push esi
push edx
push eax
call fcn.00462a80
push edx
push eax
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.0042759e
add esp, 0x10
add dword [ebp + 0x5c], eax
adc dword [ebp + 0x60], edx
xor edi, edi
cmp dword [ebp + 0x58], edi
jl 0x439586
jg 0x4394e1
cmp dword [ebp + 0x54], edi
jbe 0x439586
cmp byte [ebp - 1], 0
jne 0x439503
sub dword [ebp + 0x54], eax
sbb dword [ebp + 0x58], edx
xor edi, edi
cmp dword [ebp + 0x58], edi
jg 0x439511
jl 0x4394fb
cmp dword [ebp + 0x54], edi
jae 0x439505
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
jmp 0x439505
xor edi, edi
cmp dword [ebp + 0x58], edi
jl 0x439586
jg 0x439511
cmp dword [ebp + 0x54], edi
jbe 0x439586
mov eax, dword [ebp - 0x10]
and eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
jne 0x43953b
mov eax, dword [ebp + 0x54]
add eax, dword [ebp + 0x5c]
push dword [ebp + 0x20]
mov ecx, dword [ebp + 0x58]
adc ecx, dword [ebp + 0x60]
push ebx
push ecx
push eax
call fcn.00463ab0
sub dword [ebp + 0x54], eax
sbb dword [ebp + 0x58], edx
jmp 0x439586
cmp byte [ebp + 0xc], 0
jne 0x439586
mov eax, dword [ebp + 0x48]
cdq
mov esi, eax
add eax, dword [ebp - 0x10]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp - 0xc]
push edi
sub eax, 1
push esi
sbb ecx, 0
push ecx
push eax
call fcn.00462660
push edi
push esi
push edx
push eax
call fcn.00462a80
mov ecx, dword [ebp + 0x54]
add ecx, dword [ebp + 0x5c]
mov esi, dword [ebp + 0x58]
adc esi, dword [ebp + 0x60]
push edx
push eax
push esi
push ecx
call fcn.00463ab0
sub dword [ebp + 0x54], eax
sbb dword [ebp + 0x58], edx
xor edi, edi
cmp byte [ebp + 0x67], 0
mov byte [ebp + 0x6d], 0
mov byte [ebp + 0x6e], 0
mov byte [ebp + 0x6f], 0
je 0x4396b5
cmp dword [ebp + 0x58], edi
jl 0x4396f5
jg 0x4395b0
cmp dword [ebp + 0x54], edi
jb 0x4396f5
cmp dword [ebp + 0x60], edi
jl 0x4396f5
jg 0x4395c4
cmp dword [ebp + 0x5c], edi
jbe 0x4396f5
mov eax, dword [ebp + 0x48]
cdq
push edx
push eax
push dword [ebp - 0x14]
mov dword [ebp + 0x1c], eax
push dword [ebp - 0x18]
mov dword [ebp + 0x20], edx
call fcn.00462660
mov ecx, dword [ebp + 0x58]
push dword [ebp + 0x20]
mov esi, eax
mov eax, dword [ebp + 0x54]
sub eax, dword [ebp - 0x18]
push dword [ebp + 0x1c]
sbb ecx, dword [ebp - 0x14]
add eax, dword [ebp + 0x5c]
mov dword [ebp - 0x5c], edx
adc ecx, dword [ebp + 0x60]
push ecx
push eax
call fcn.00462660
and dword [ebp - 0x3c], 0
mov dword [ebp - 0x68], eax
xor eax, eax
push 1
push dword [ebp + 0x50]
lea edi, [ebp - 0x38]
push dword [ebp + 0x34]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp + 0x6f]
push eax
lea eax, [ebp + 0x6e]
push eax
lea eax, [ebp + 0x6d]
push eax
push dword [ebp - 0x5c]
mov ebx, edx
push esi
call fcn.00427690
mov al, byte [ebp + 0x6e]
mov edi, dword [ebp - 0x68]
mov byte [ebp - 0x3b], al
mov al, byte [ebp + 0x6f]
push 1
push dword [ebp + 0x50]
mov byte [ebp - 0x3a], al
mov al, byte [ebp + 0x6d]
push dword [ebp + 0x34]
mov byte [ebp - 0x39], al
lea eax, [ebp + 0x6f]
push eax
lea eax, [ebp + 0x6e]
push eax
lea eax, [ebp + 0x6d]
push eax
mov eax, edi
add eax, esi
adc ebx, dword [ebp - 0x5c]
add eax, 0xffffffff
adc ebx, 0xffffffff
push ebx
push eax
mov byte [ebp - 0x3c], 0
call fcn.00427690
mov al, byte [ebp + 0x6e]
add esp, 0x40
push dword [ebp + 0x20]
mov byte [ebp - 0x37], al
push dword [ebp + 0x1c]
mov al, byte [ebp + 0x6f]
push dword [ebp - 0x6c]
mov byte [ebp - 0x36], al
mov al, byte [ebp + 0x6d]
push dword [ebp - 0x70]
mov byte [ebp - 0x38], 5
mov byte [ebp - 0x35], al
call fcn.00462660
sub esi, eax
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x34], esi
push dword [ebp - 0x24]
mov dword [ebp - 0x30], edi
push dword [ebp + 0x68]
call fcn.004275c8
add esp, 0x10
mov eax, dword [ebp + 0x48]
cdq
mov edi, edx
push edi
mov esi, eax
push esi
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call fcn.00462660
cmp dword [ebp + 0x60], 0
mov ebx, eax
mov dword [ebp - 0x20], edx
jl 0x439749
jg 0x4396de
xor eax, eax
cmp dword [ebp + 0x5c], eax
jb 0x43974b
push edi
push esi
push dword [ebp + 0x60]
push dword [ebp + 0x5c]
call fcn.00462660
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
xor eax, eax
jmp 0x439751
lea ecx, [ebp + 0x4c]
call fcn.00424686
mov esi, 0x80070057
lea ecx, [ebp + 0x68]
call fcn.00402905
lea ecx, [ebp + 0x28]
call fcn.00424686
lea ecx, [ebp + 0x24]
call fcn.00424686
lea ecx, [ebp + 0x14]
call fcn.00424686
lea ecx, [ebp + 8]
call fcn.00424686
lea ecx, [ebp + 0x2c]
call fcn.00424686
push 0x48b5d4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebx
add ebp, 0x70
leave
ret 8
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
cmp dword [ebp + 0x58], eax
jl 0x43976f
jg 0x43975d
cmp dword [ebp + 0x54], eax
jb 0x43976f
push edi
push esi
push dword [ebp + 0x58]
push dword [ebp + 0x54]
call fcn.00462660
mov dword [ebp - 0x54], edx
jmp 0x439772
mov dword [ebp - 0x54], eax
push dword [ebp + 0x18]
mov esi, dword [ebp - 0x40]
push dword [ebp + 0x50]
mov dword [ebp - 0x58], eax
push dword [ebp + 0x34]
lea eax, [ebp + 0x6f]
push eax
lea eax, [ebp + 0x6e]
push eax
lea eax, [ebp + 0x6d]
push eax
push esi
push dword [ebp - 0x44]
call fcn.00427690
movzx ax, byte [ebp + 0x6d]
mov word [ebp - 0x50], ax
mov al, byte [ebp + 0x6e]
mov byte [ebp - 6], al
mov al, byte [ebp + 0x6f]
add esp, 0x20
cmp dword [ebp + 0x60], 0
mov byte [ebp - 3], al
jl 0x4397c5
jg 0x4397bc
cmp dword [ebp + 0x5c], 0
jbe 0x4397c5
sub dword [ebp - 0x44], ebx
sbb esi, dword [ebp - 0x20]
mov dword [ebp - 0x40], esi
push dword [ebp + 0x18]
lea eax, [ebp + 0x6f]
push dword [ebp + 0x50]
push dword [ebp + 0x34]
push eax
lea eax, [ebp + 0x6e]
push eax
lea eax, [ebp + 0x6d]
push eax
push dword [ebp - 0x54]
push dword [ebp - 0x58]
call fcn.00427690
movzx ax, byte [ebp + 0x6d]
mov word [ebp + 0x34], ax
mov al, byte [ebp + 0x6e]
mov byte [ebp - 5], al
mov al, byte [ebp + 0x6f]
add esp, 0x20
lea ecx, [ebp + 0x4c]
mov byte [ebp - 2], al
call fcn.00424686
mov eax, dword [ebp + 0x44]
xor edi, edi
push edi
push dword [ebp - 0x48]
shl eax, 4
push dword [ebp - 0x4c]
lea esi, [ebp + eax - 0x12e]
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x10
cmp eax, dword [ebp - 0x4c]
jne 0x438a0f
cmp edx, dword [ebp - 0x48]
jne 0x438a0f
push edi
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0x200
push ebx
lea eax, [ebp - 0x2ec]
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x438a0f
push ebx
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x4ec]
push eax
call fcn.00461a50
mov al, byte [esi + 4]
add esp, 0xc
cmp byte [ebp + 0x67], 0
jne 0x439899
cmp byte [ebp + 0x43], 2
jge 0x439899
cmp al, 5
je 0x4396fd
cmp al, 0xf
je 0x4396fd
cmp al, 0x85
je 0x4396fd
cmp byte [ebp + 0x67], 0
mov edx, dword [esi + 0xc]
jne 0x4398f7
test al, al
je 0x4398f7
mov ebx, dword [ebp + 0x3c]
cmp ebx, edi
je 0x4398fa
cmp byte [ebp + 0x18], 0
jne 0x4398fa
cmp dword [ebp + 0x60], edi
jl 0x4398d6
jg 0x4398bf
cmp dword [ebp + 0x5c], edi
jb 0x4398d6
mov eax, dword [esi + 8]
xor ecx, ecx
cmp dword [ebp - 0x44], eax
jne 0x4396fd
cmp dword [ebp - 0x40], ecx
jne 0x4396fd
cmp dword [ebp + 0x58], edi
jl 0x4398fa
jg 0x4398e2
cmp dword [ebp + 0x54], edi
jb 0x4398fa
xor eax, eax
cmp dword [ebp - 0x58], edx
jne 0x4398ee
cmp dword [ebp - 0x54], eax
je 0x4398fa
cmp edx, edi
je 0x4398fa
jmp 0x4396fd
mov ebx, dword [ebp + 0x3c]
cmp byte [ebp + 0x33], 0
je 0x43990d
xor ecx, ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
jmp 0x439910
mov ecx, dword [ebp - 0x44]
cmp ebx, edi
jl 0x439917
mov byte [esi + 4], bl
mov eax, dword [ebp + 0x10]
cmp ax, di
jl 0x439921
mov byte [esi], al
cmp dword [ebp + 0x60], edi
jl 0x439942
jg 0x43992d
cmp dword [ebp + 0x5c], edi
jb 0x439942
mov dl, byte [ebp - 6]
mov byte [esi + 1], dl
mov dl, byte [ebp - 3]
mov byte [esi + 2], dl
mov dl, byte [ebp - 0x50]
mov byte [esi + 3], dl
mov dword [esi + 8], ecx
cmp dword [ebp + 0x58], edi
jl 0x439966
jg 0x43994e
cmp dword [ebp + 0x54], edi
jb 0x439966
mov cl, byte [ebp - 5]
mov byte [esi + 5], cl
mov cl, byte [ebp - 2]
mov byte [esi + 6], cl
mov cl, byte [ebp + 0x34]
mov byte [esi + 7], cl
mov ecx, dword [ebp - 0x58]
mov dword [esi + 0xc], ecx
cmp ebx, edi
jge 0x439987
cmp ax, di
jge 0x439987
cmp dword [ebp + 0x60], edi
jg 0x439987
jl 0x43997b
cmp dword [ebp + 0x5c], edi
jae 0x439987
cmp dword [ebp + 0x58], edi
jl 0x439995
jg 0x439987
cmp dword [ebp + 0x54], edi
jb 0x439995
mov byte [ebp - 0xee], 0x55
mov byte [ebp - 0xed], 0xaa
cmp ax, di
jge 0x4399c4
cmp ebx, edi
jge 0x4399c4
cmp dword [ebp + 0x60], edi
jg 0x4399c4
jl 0x4399aa
cmp dword [ebp + 0x5c], edi
jae 0x4399c4
cmp dword [ebp + 0x58], edi
jg 0x4399c4
jl 0x4399b6
cmp dword [ebp + 0x54], edi
jae 0x4399c4
mov byte [ebp - 0xee], 0x55
mov byte [ebp - 0xed], 0xaa
push edi
push dword [ebp - 0x48]
push dword [ebp - 0x4c]
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x10
cmp eax, dword [ebp - 0x4c]
jne 0x438a0f
cmp edx, dword [ebp - 0x48]
jne 0x438a0f
mov edi, 0x200
push edi
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x4ec]
xor ebx, ebx
push eax
inc ebx
call fcn.00461880
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
add esp, 0xc
test eax, eax
je 0x439a31
push 0
lea eax, [ebp - 0x1c]
push eax
push edi
mov edi, dword [ebp + 0x68]
lea eax, [ebp - 0x2ec]
push eax
push edi
call esi
mov ebx, eax
call fcn.00427700
mov edi, 0x200
cmp dword [ebp + 0x60], 0
jl 0x439b17
jg 0x439a46
cmp dword [ebp + 0x5c], edi
jb 0x439b17
cmp dword [ebp + 0x58], 0
jl 0x439b17
jg 0x439a5b
cmp dword [ebp + 0x54], edi
jbe 0x439b17
cmp byte [ebp - 4], 0
je 0x439b17
push edi
lea eax, [ebp - 0x2ec]
push 0
push eax
call fcn.00461780
mov ebx, dword [ebp + 0x5c]
push 0
push dword [ebp + 0x60]
push ebx
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x1c
cmp eax, ebx
jne 0x438a0f
cmp edx, dword [ebp + 0x60]
jne 0x438a0f
push 0
lea eax, [ebp - 0x1c]
push eax
push edi
lea eax, [ebp - 0x4ec]
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x438a0f
cmp dword [ebp - 0x1c], edi
jne 0x438a0f
push edi
lea eax, [ebp - 0x2ec]
push eax
lea eax, [ebp - 0x4ec]
push eax
call fcn.00461880
add esp, 0xc
test eax, eax
je 0x438df5
push 0
push dword [ebp + 0x60]
push ebx
push dword [ebp + 0x68]
call fcn.0042572e
add esp, 0x10
cmp eax, ebx
jne 0x438a0f
cmp edx, dword [ebp + 0x60]
jne 0x438a0f
push 0
lea eax, [ebp - 0x1c]
push eax
push edi
lea eax, [ebp - 0x2ec]
push eax
push dword [ebp + 0x68]
call esi
mov ebx, eax
cmp byte [ebp + 0xf], 0
je 0x439b25
mov eax, dword [ebp + 0x68]
call fcn.00427712
xor esi, esi
test ebx, ebx
jne 0x439702
jmp 0x438a11