Function at 0x472763
Capabilities:
Clear file content
Read file on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0x108
push ebx
push esi
push edi
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp - 0x80]
xor ebx, ebx
push eax
mov dword [ebp + 0x24], ecx
mov dword [ebp - 0x80], ebx
call fcn.0044b721
push 1
push 2
push 0x4c4118
call fcn.00412ebf
push 0x10
push 2
push 0x4bd068
call fcn.00412ebf
mov edx, dword [ebp + 0x78]
add esp, 0x20
mov byte [ebp + 0x6f], bl
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x55], bl
mov byte [ebp - 0x2a], bl
mov byte [ebp + 0x6d], bl
mov byte [ebp - 5], bl
mov byte [ebp + 0x6e], bl
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x3c], ebx
mov dword [ebp - 0x7c], ebx
xor ecx, ecx
jmp 0x472802
mov eax, ecx
call fcn.0043daaf
test al, al
jne 0x47280a
cmp cx, 0x2a
jne 0x4727e5
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x4727fd
cmp cx, 0x2e
jne 0x4727f2
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x4727fd
cmp cx, 0x23
jne 0x4727fd
mov al, byte [edx]
mov byte [ebp + 0x55], al
inc edx
inc edx
mov dword [ebp + 0x78], edx
mov cx, word [edx]
cmp cx, bx
jne 0x4727cd
lea eax, [ebp + 0x78]
push eax
call fcn.0043dae7
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.00443f5b
cmp word [esi], 0x2d
jne 0x472872
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x472857
mov eax, ecx
call fcn.0043daaf
test al, al
jne 0x472857
cmp cx, 0x2c
je 0x472857
lea eax, [ebp - 0x40]
push eax
call fcn.00408ddd
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x472828
cmp esi, dword [ebp + 0x78]
je 0x472872
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
mov word [esi - 2], bx
push dword [ebp + 0x78]
call fcn.00454bdd
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.00443f79
or edi, 0xffffffff
mov eax, 0x200
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], 0x7fffffff
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0x4c], edi
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x30], ebx
mov byte [ebp - 0x29], bl
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ebx
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], ebx
mov byte [ebp - 0x2b], bl
mov byte [ebp + 0x23], bl
mov byte [ebp + 0x22], bl
mov dword [ebp + 0x40], ebx
jmp 0x472a9e
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c768c
call fcn.00445f31
add esp, 0xc
test al, al
je 0x4728f5
mov byte [ebp - 0x2a], 1
jmp 0x472a9e
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472918
mov dword [ebp - 0x24], 0x80000000
jmp 0x472a9e
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.00445fe4
add esp, 0xc
test al, al
jne 0x472ab0
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c75a4
call fcn.00445fe4
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x4729ec
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00408ddd
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x4729a0
inc esi
inc esi
lea eax, [ebp - 4]
push eax
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x40], esi
mov dword [ebp - 4], esi
call fcn.00405615
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x47298d
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044bafc
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004404cb
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x4729dc
cmp eax, ebx
je 0x4729dc
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0043e138
test eax, eax
pop ecx
pop ecx
je 0x4729dc
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x4729dc
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043db4f
mov esi, dword [ebp - 0x40]
jmp 0x472a9e
push 3
push eax
push 0x4c7680
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472a09
mov byte [ebp - 5], 1
jmp 0x472a9e
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4c767c
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472a26
mov byte [ebp + 0x6d], 1
jmp 0x472a9e
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472a43
mov byte [ebp + 0x6e], 1
jmp 0x472a9e
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472a60
mov byte [ebp + 0x22], 1
jmp 0x472a9e
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c7670
call fcn.00445f31
add esp, 0xc
test al, al
jne 0x472af5
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c1aa8
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472a94
mov byte [ebp + 0x5e], 1
jmp 0x472a9e
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x4728d5
jmp 0x472e2e
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00408ddd
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.004404cb
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x4733d6
cmp dword [ebp - 0x48], ebx
je 0x4733d6
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4733d6
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x472e2e
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x472dfb
mov eax, ecx
call fcn.0043daaf
test al, al
jne 0x472dfb
cmp cx, 0x2c
je 0x472dfb
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00408ddd
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.0043eeea
add esp, 0x10
test al, al
je 0x472b90
add dword [ebp + 0x78], 8
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], edx
jmp 0x472deb
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472bcd
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
cdq
jmp 0x472b85
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472c13
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x472deb
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472c5b
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x472deb
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472ca3
add dword [ebp + 0x78], 0xa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x472deb
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472ce0
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472deb
mov byte [ebp - 0x2b], 1
jmp 0x472deb
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472d2e
add dword [ebp + 0x78], 0xc
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x472deb
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043eeea
add esp, 0xc
test al, al
je 0x472d79
add dword [ebp + 0x78], 0xe
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x2c], ebx
call fcn.00450152
test eax, eax
pop ecx
pop ecx
jle 0x472deb
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x472deb
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472d96
mov byte [ebp + 0x6e], 1
jmp 0x472deb
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472db3
mov byte [ebp + 0x22], 1
jmp 0x472deb
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472dd0
mov byte [ebp + 0x22], 0x10
jmp 0x472deb
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4c7680
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472deb
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x472b0a
cmp dword [ebp + 8], ebx
jg 0x472e2e
jl 0x472e07
cmp dword [ebp + 4], ebx
jae 0x472e2e
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004aa130
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x472e2e
jl 0x472e28
cmp eax, ebx
jae 0x472e2e
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00445f31
add esp, 0xc
test al, al
je 0x472e49
mov byte [ebp + 0x22], 1
mov ecx, dword [ebp + 0x24]
push ebx
push 0x2c
lea eax, [ebp]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x78], esi
call fcn.00438c4b
cmp word [eax], 0x2c
jne 0x4733d1
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x4733d1
cmp ax, 0x26
jne 0x472e82
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x472e8a
mov byte [ebp + 0x6f], bl
mov ecx, dword [ebp + 0x24]
push 1
push ebx
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 0x78]
call fcn.00454bdd
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00450152
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x472ec5
jl 0x4733d1
cmp dword [ebp + 0x10], ebx
jb 0x4733d1
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x23
mov dword [ebp + 0x60], 0xfffffffc
mov dword [ebp + 0x64], edi
mov byte [ebp - 0x2c], bl
jne 0x472f03
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043dae7
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x78]
push eax
sete byte [ebp - 0x2c]
call fcn.00450152
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043e06b
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x472f1f
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x472f45
jg 0x472f2d
cmp dword [ebp + 0x4c], ebx
jb 0x472f45
cmp dword [ebp + 0x64], eax
jl 0x472f45
jg 0x472f3c
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x472f45
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043dae7
push dword [ebp + 0x78]
call fcn.004108de
mov esi, dword [ebp + 0x78]
push esi
push str.zero
mov dword [ebp - 4], esi
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.0043ef29
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x472fab
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.004472b5
test eax, eax
pop ecx
pop ecx
je 0x472fab
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x472f9b
cmp ax, 0x2c
jne 0x472fab
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x2c]
mov byte [ebp + 0x21], 2
mov dword [ebp - 0x68], eax
cmp word [esi], bx
mov edi, esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], esi
jne 0x472fc0
xor ebx, ebx
inc ebx
jmp 0x4733d6
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044b64d
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.00443de7
cmp byte [ebp + 0x55], bl
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp + 0x5f], bl
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
je 0x473143
mov esi, 0x4d8d24
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.00443f5b
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.00410728
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x47302e
lea ecx, [ebp + 0xc]
call fcn.0043db4f
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4733c9
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x473059
mov esi, dword [ebp + 0x60]
jg 0x473044
cmp esi, ebx
jbe 0x473059
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x47307e
jg 0x473059
cmp ecx, dword [ebp - 0x3c]
jbe 0x47307e
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp + 4]
mov edx, ebx
sbb edx, dword [ebp + 8]
mov dword [ebp + 0x60], esi
cmp edx, ebx
mov dword [ebp + 0x64], edx
jg 0x47307e
jl 0x473074
cmp esi, ebx
ja 0x47307e
xor esi, esi
xor edx, edx
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], edx
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x4730a0
jg 0x47308c
cmp dword [ebp + 0x4c], ebx
jb 0x4730a0
cmp eax, edx
jg 0x4730a0
jl 0x473097
cmp dword [ebp + 0x4c], esi
jae 0x4730a0
mov esi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], esi
mov dword [ebp + 0x64], eax
lea eax, [esi + 0x200000]
push eax
lea ecx, [ebp - 0x54]
call fcn.00443e29
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x4730ce
lea ecx, [ebp + 0xc]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x474246
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
add edi, 0x100000
and edi, 0xfff00000
cmp dword [ebp + 8], ebx
mov dword [ebp - 0xc], edi
jl 0x4730fb
jg 0x4730f2
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x4730fb
mov eax, dword [ebp - 0x3c]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
add ecx, dword [ebp + 4]
mov eax, esi
cdq
cmp edx, ebx
mov dword [ebp - 0x50], esi
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jl 0x473123
jg 0x473114
cmp eax, ebx
jbe 0x473123
cmp edi, ecx
je 0x473123
push esi
push ecx
push edi
call fcn.00413d9a
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47331e
cmp esi, ebx
je 0x47331e
lea eax, [esi + 2]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x20
cmp word [eax], 0x2e
mov byte [ebp - 0x29], 2
mov byte [ebp + 0x5f], 2
jne 0x47317e
inc eax
inc eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x88], 0x40
push str.EXEDATA
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0045355f
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4d7fa0]
mov word [ebp + 0x2c], cx
mov ecx, dword [ebp - 4]
mov word [esi], bx
mov dx, word [ecx]
add esp, 0xc
cmp dx, 0x2e
mov dword [ebp + 0xc], ebx
jne 0x4731c4
cmp word [ecx + 2], bx
jne 0x4731c4
mov eax, dword [0x4d7c84]
jmp 0x4731d6
cmp dx, bx
je 0x4731d6
push 2
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp + 0xc], eax
cmp eax, ebx
mov cx, word [ebp + 0x2c]
mov word [esi], cx
je 0x4731fd
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.00414db6
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x47320b
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp edi, ebx
je 0x474246
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x473245
jg 0x473229
cmp dword [ebp + 0x60], ebx
jbe 0x473245
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x64]
mov ecx, edi
add ecx, dword [ebp + 4]
mov eax, esi
adc eax, dword [ebp + 8]
cmp eax, dword [ebp - 0x14]
jl 0x47326b
jg 0x473245
cmp ecx, dword [ebp - 0x18]
jbe 0x47326b
mov edi, dword [ebp - 0x18]
sub edi, dword [ebp + 4]
mov esi, dword [ebp - 0x14]
sbb esi, dword [ebp + 8]
mov dword [ebp + 0x60], edi
cmp esi, ebx
mov dword [ebp + 0x64], esi
jg 0x47326b
jl 0x473261
cmp edi, ebx
ja 0x47326b
xor edi, edi
xor esi, esi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], esi
mov eax, dword [ebp - 0x50]
add eax, 0x200000
push eax
lea ecx, [ebp - 0x54]
call fcn.00443e29
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x474246
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004aa020
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x4732bc
jg 0x4732b0
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x4732bc
mov eax, dword [ebp - 0x18]
mov dword [ebp + 4], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 4]
add dword [ebp + 0x30], eax
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x4732e4
jg 0x4732d0
cmp dword [ebp + 0x4c], ebx
jb 0x4732e4
cmp eax, esi
jg 0x4732e4
jl 0x4732db
cmp dword [ebp + 0x4c], edi
jae 0x4732e4
mov edi, dword [ebp + 0x4c]
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], eax
mov eax, edi
mov dword [ebp - 0x50], edi
mov edi, dword [ebp + 0x30]
cdq
add edi, 0x100000
and edi, 0xfff00000
cmp edx, ebx
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
mov dword [ebp - 0xc], edi
jl 0x47331e
jg 0x47330c
cmp eax, ebx
jbe 0x47331e
cmp edi, dword [ebp + 0x30]
je 0x47331e
push eax
push dword [ebp + 0x30]
push edi
call fcn.00413d9a
add esp, 0xc
cmp byte [ebp - 5], bl
mov esi, dword [ebp + 0x3c]
mov byte [ebp + 0x55], bl
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x68], esi
je 0x473343
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.00412ebf
add esp, 0xc
cmp esi, ebx
mov eax, 0x200
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x30], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x56], 1
je 0x473365
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x47337a
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x47337a
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x473485
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00443f5b
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.00410728
cmp eax, ebx
jne 0x473402
lea ecx, [ebp + 0x40]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043db4f
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043db4f
lea ecx, [ebp - 0x70]
call fcn.0043db4f
lea ecx, [ebp - 0x7c]
call fcn.00402cb5
lea ecx, [ebp - 0x80]
call fcn.0043db4f
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x70
leave
ret 8
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x10]
xor eax, eax
cmp eax, ebx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], eax
jg 0x47341d
jl 0x4733ae
cmp ecx, ebx
jbe 0x4733ae
cmp byte [ebp + 0x5f], bl
je 0x47346d
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x47343c
jg 0x473436
cmp ecx, dword [ebp + 0x60]
jbe 0x47343c
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x473455
jg 0x473446
cmp ecx, ebx
jbe 0x473455
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.00413d9a
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x474709
lea ecx, [ebp + 0x40]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4735e8
cmp byte [ebp + 0x5e], bl
je 0x47348f
mov dword [ebp - 0x1c], ebx
jmp 0x4734ac
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044abf8
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x4733c1
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x4734f8
cmp dword [ebp - 0x1c], ebx
jne 0x4734f0
cmp word [ecx], 0x5c
jne 0x4734f0
cmp word [ecx + 2], 0x5c
jne 0x4734f0
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x4734d6
cmp ax, 0x2e
jne 0x4734f0
cmp word [ecx + 6], 0x5c
jne 0x4734f0
cmp ax, 0x3f
jne 0x4734f8
cmp word [ecx + 8], ax
jne 0x4734f8
cmp word [ecx + 0xa], 0x3a
jne 0x4734f8
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x473534
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x473512
push ebx
push ecx
call fcn.004a986d
test eax, eax
pop ecx
pop ecx
je 0x473512
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x473558
push ebx
push ebx
push 4
push ebx
push 7
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x473553
push ebx
push ebx
push 3
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x473585
cmp byte [ebp + 0x23], bl
je 0x473585
cmp dword [ebp - 0x1c], ebx
jg 0x473585
cmp dword [ebp + 0x68], ebx
jne 0x4735a6
push ebx
push 0x2000000
push 4
push ebx
push 3
mov eax, edi
or eax, esi
push eax
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x4735a6
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x4735c4
cmp dword [ebp + 0x58], ebx
je 0x4735c4
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.0044ce46
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x4735e8
cmp dword [ebp + 0x68], ebx
je 0x4735e8
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.0044132f
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x4735e8
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x20]
cmp byte [ebp + 0x23], 2
mov dword [ebp + 0x2c], eax
jne 0x4741f6
cmp dword [ebp + 0x38], ebx
jl 0x4733c1
mov edi, dword [ebp + 0x34]
jg 0x473615
cmp edi, ebx
jbe 0x4733c1
cmp dword [ebp - 0x30], ebx
jl 0x4733c1
jg 0x473629
cmp dword [ebp - 0x34], ebx
jbe 0x4733c1
cmp dword [ebp + 0x50], ebx
jl 0x473658
jg 0x473635
cmp dword [ebp + 0x4c], ebx
jb 0x473658
push dword [ebp + 0x38]
mov ecx, dword [ebp + 0x38]
mov eax, edi
add eax, dword [ebp + 0x4c]
push edi
adc ecx, dword [ebp + 0x50]
sub eax, 1
sbb ecx, ebx
push ecx
push eax
call fcn.004aa080
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x473686
cmp dword [ebp + 0x44], 0xffffffff
jne 0x473671
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x473671
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x473686
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004aa130
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.00412ae5
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0044cd74
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x4736b8
cmp dword [ebp + 0x68], ebx
jne 0x4736b8
lea ecx, [ebp - 0x10]
call fcn.0043db4f
jmp 0x47423e
cmp byte [ebp + 0x22], bl
je 0x473813
cmp dword [ebp - 0x1c], ebx
jg 0x473813
cmp byte [ebp + 0x6d], bl
jg 0x473813
cmp dword [ebp + 0x3c], ebx
jne 0x4736e0
lea ecx, [ebp + 0x58]
call fcn.00402cb5
cmp byte [ebp + 0x6e], bl
je 0x4736f2
push ebx
push ebx
push dword [ebp]
call fcn.0044a9a4
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x47372b
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x473734
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x4736ab
cmp byte [ebp + 0x21], bl
je 0x473813
cmp dword [ebp + 0x48], ebx
jl 0x4741d3
jg 0x473751
cmp dword [ebp + 0x44], ebx
jb 0x473813
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004aa130
cmp dword [ebp + 0x50], ebx
jl 0x473780
jg 0x47376e
cmp dword [ebp + 0x4c], ebx
jb 0x473780
cmp edx, dword [ebp + 0x50]
jl 0x473780
jg 0x47377a
cmp eax, dword [ebp + 0x4c]
jbe 0x473780
mov eax, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
add eax, dword [ebp + 0x10]
mov esi, 0x7fffffff
adc edx, dword [ebp + 0x14]
cmp dword [ebp + 0x48], esi
mov dword [ebp - 0x3c], eax
mov edi, edx
jl 0x4737a6
jg 0x47379d
cmp dword [ebp + 0x44], 0xffffffff
jb 0x4737a6
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x4737c9
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
cmp edx, edi
jg 0x4737c9
jl 0x4737c5
cmp eax, dword [ebp - 0x3c]
jae 0x4737c9
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x4737f8
cmp edx, edi
jne 0x4737f8
cmp dword [ebp + 0x48], esi
jg 0x473813
jl 0x473f4f
cmp dword [ebp + 0x44], 0xffffffff
jae 0x473813
jmp 0x473f4f
cmp dword [ebp + 0x48], esi
jg 0x473813
jl 0x473805
cmp dword [ebp + 0x44], 0xffffffff
jae 0x473813
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x4741d3
jg 0x473827
cmp dword [ebp + 0x44], ebx
jbe 0x4741d3
cmp dword [ebp + 0x50], ebx
jl 0x4741d3
jg 0x47383b
cmp dword [ebp + 0x4c], ebx
jbe 0x4741d3
cmp byte [ebp + 0x21], bl
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x473858
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x47385b
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x473870
mov eax, dword [ebp + 0x10]
cdq
idiv dword [ebp - 0x20]
mov eax, edx
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov esi, dword [ebp + 0x10]
sub esi, dword [ebp - 0x28]
mov edi, dword [ebp + 0x14]
sbb edi, dword [ebp - 0x24]
js 0x4738c4
jg 0x473884
cmp esi, ebx
jbe 0x4738c4
cmp byte [ebp + 0x6d], bl
jg 0x4738c4
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
cmp eax, esi
jne 0x47389f
cmp edx, edi
je 0x4738c4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043db4f
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043db4f
jmp 0x4733d6
mov eax, dword [ebp - 0x10]
cmp word [eax], 0x26
mov edi, dword [ebp + 4]
mov esi, dword [ebp + 8]
sete byte [ebp + 0x5f]
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 4], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], esi
mov dword [ebp + 0x40], ebx
je 0x4739e4
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.00443f5b
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.00410728
cmp eax, ebx
jne 0x47393e
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043db4f
jmp 0x4733c1
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 4], ecx
xor ecx, ecx
cmp ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
jg 0x473978
jl 0x473959
cmp eax, ebx
ja 0x473978
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x473f47
cmp byte [ebp + 0x6d], bl
je 0x4739d1
mov edx, dword [ebp - 0x60]
sub eax, edi
sbb ecx, esi
mov esi, dword [ebp - 0x64]
sub esi, dword [ebp + 0x10]
sbb edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0x50]
jl 0x47399f
jg 0x473999
cmp esi, dword [ebp + 0x4c]
jbe 0x47399f
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x4739ad
jg 0x4739a9
cmp esi, eax
jbe 0x4739ad
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x473960
jg 0x4739b7
cmp esi, ebx
jbe 0x473960
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
add edi, eax
mov eax, dword [ebp - 0x40]
push esi
add ecx, eax
push edi
push ecx
call fcn.00413d9a
add esp, 0xc
jmp 0x473960
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
push 0x4d8d24
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x473ab9
cmp byte [ebp + 0x5f], bl
jg 0x473ab9
lea eax, [ebp - 0x10]
push eax
call fcn.0044acf6
pop ecx
push ebx
push ebx
push 3
push ebx
push 3
movsx eax, al
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
mov dword [ebp - 0xc], eax
call fcn.0040569f
cmp dword [ebp + 0x40], ebx
jne 0x473a4f
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.0040569f
cmp dword [ebp + 0x40], ebx
jne 0x473a4f
lea ecx, [ebp + 0x40]
call fcn.00402cb5
jmp 0x4736ab
cmp dword [ebp - 0xc], ebx
je 0x473a7a
push 0x200
push dword [ebp + 0x40]
call fcn.0044132f
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x473a7a
mov eax, edi
cdq
idiv dword [ebp + 0x30]
mov eax, edx
cdq
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
sub edi, dword [ebp + 0x18]
sbb esi, dword [ebp + 0x1c]
mov ecx, edi
mov eax, esi
cmp eax, ebx
jl 0x473ab9
jg 0x473a8e
cmp ecx, ebx
jbe 0x473ab9
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.0043edf6
add esp, 0x10
cmp eax, edi
jne 0x473aa4
cmp edx, esi
je 0x473ab9
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402cb5
jmp 0x4738a7
cmp dword [ebp - 0x1c], ebx
jle 0x473aed
mov eax, dword [ebp - 0x20]
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, ebx
push ecx
push eax
call fcn.004aa080
push edi
push esi
push edx
push eax
call fcn.004aa130
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x473af9
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp + 0x48], eax
cmp dword [ebp - 0xc], ebx
jle 0x473b27
mov eax, dword [ebp + 0x30]
cdq
mov esi, eax
add eax, dword [ebp + 0x34]
mov edi, edx
mov ecx, edx
adc ecx, dword [ebp + 0x38]
push edi
sub eax, 1
push esi
sbb ecx, ebx
push ecx
push eax
call fcn.004aa080
push edi
push esi
push edx
push eax
call fcn.004aa130
jmp 0x473b2d
mov eax, dword [ebp + 0x34]
mov edx, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], edx
jne 0x473b3d
cmp edx, dword [ebp + 0x48]
je 0x473b47
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x473b49
mov ecx, edx
add eax, 0x8000
adc ecx, ebx
mov esi, eax
add esi, 0x2800
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp + 8], ecx
adc ecx, ebx
cmp dword [ebp - 0x20], eax
mov dword [ebp - 0x74], ecx
jle 0x473b6e
mov eax, dword [ebp - 0x20]
cdq
lea edi, [esi + eax]
lea eax, [edi + 0x100000]
push eax
lea ecx, [ebp + 0x2c]
mov dword [ebp - 0x74], edx
call fcn.00443e04
mov eax, dword [ebp + 0x2c]
add eax, 0x100000
and eax, 0xfff00000
push edi
push dword [ebp - 0x6c]
add esi, eax
push eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0xc], esi
call fcn.004aa020
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp - 0x60], ebx
mov byte [ebp + 0x6f], bl
jl 0x473c17
jg 0x473bbe
cmp dword [ebp + 0x18], ebx
jbe 0x473c17
mov edi, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x30]
mov dword [ebp - 0x18], ebx
push edi
push dword [ebp + 0x40]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp + 0x30]
cdq
sub eax, dword [ebp + 0x18]
sbb edx, dword [ebp + 0x1c]
sub dword [ebp + 0x4c], eax
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
sbb dword [ebp + 0x50], edx
cmp dword [ebp + 0x50], ebx
jg 0x473c07
jl 0x473bfb
cmp dword [ebp + 0x4c], ebx
jae 0x473c07
add eax, dword [ebp + 0x4c]
adc edx, dword [ebp + 0x50]
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
push eax
mov eax, dword [ebp + 0x18]
add eax, edi
push eax
push edi
call fcn.00413d9a
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x473c92
jg 0x473c23
cmp dword [ebp - 0x28], ebx
jbe 0x473c92
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
push ebx
mov edi, eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x74], edx
push esi
push dword [ebp + 0x68]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp + 0x60]
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp - 0x28]
push eax
add ecx, eax
push ecx
call fcn.00413d9a
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.00413d9a
mov eax, dword [ebp - 0x28]
add dword [ebp + 0x60], eax
mov eax, dword [ebp - 0x24]
push ebx
push dword [ebp - 0x74]
adc dword [ebp + 0x64], eax
push edi
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x473c92
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x473e44
jl 0x473caa
cmp dword [ebp + 0x60], ebx
ja 0x473e44
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x473e4f
jg 0x473cc0
cmp dword [ebp + 0x4c], ebx
jbe 0x473e4f
cmp byte [ebp + 0x5e], bl
je 0x473e4f
cmp byte [ebp + 0x6e], bl
je 0x473ddf
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x473ce8
jl 0x473ce3
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x473ce8
mov ecx, dword [ebp - 0x48]
jmp 0x473ced
mov ecx, dword [ebp + 0x4c]
mov esi, eax
mov edx, ecx
add edx, dword [ebp + 0x60]
mov eax, esi
adc eax, dword [ebp + 0x64]
cmp eax, dword [ebp + 8]
jl 0x473d0f
jg 0x473d03
cmp edx, dword [ebp + 4]
jbe 0x473d0f
mov ecx, dword [ebp + 4]
sub ecx, dword [ebp + 0x60]
mov esi, dword [ebp + 8]
sbb esi, dword [ebp + 0x64]
cmp dword [ebp - 0xc], ebx
jle 0x473d35
mov eax, dword [ebp + 0x30]
cdq
mov edi, eax
mov eax, dword [ebp + 0x30]
add edi, ecx
mov dword [ebp - 0x68], edx
adc dword [ebp - 0x68], esi
dec eax
not eax
cdq
and edi, eax
mov eax, dword [ebp - 0x68]
and eax, edx
mov dword [ebp - 0x30], eax
jmp 0x473d3a
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x473d95
mov esi, dword [ebp - 0x3c]
sub esi, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x38]
sbb edi, dword [ebp - 0x58]
cmp edi, dword [ebp - 0x30]
jl 0x473d60
jg 0x473d5a
cmp esi, dword [ebp - 0x34]
jbe 0x473d60
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x473d87
jg 0x473d6c
cmp dword [ebp - 0x34], ebx
jbe 0x473d87
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x5c]
add ecx, eax
mov eax, dword [ebp + 0x60]
push esi
push ecx
mov ecx, dword [ebp + 0x3c]
add eax, ecx
push eax
call fcn.00413d9a
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x473db9
mov ecx, dword [ebp + 0x3c]
push ebx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0x60]
push edi
add eax, ecx
push eax
push dword [ebp + 0x40]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
cmp edi, ebx
jl 0x473e4f
jg 0x473dcb
cmp esi, ebx
jbe 0x473e4f
cmp edi, dword [ebp + 0x50]
jl 0x473e29
jg 0x473dd7
cmp esi, dword [ebp + 0x4c]
jbe 0x473e29
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x473e23
cmp dword [ebp + 0x48], eax
jg 0x473df6
jl 0x473dee
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x473df6
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x473dfb
mov esi, dword [ebp + 0x4c]
mov edi, eax
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
add ecx, esi
adc eax, edi
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
jl 0x473e29
jg 0x473e17
cmp ecx, dword [ebp + 4]
jbe 0x473e29
mov esi, dword [ebp + 4]
sub esi, dword [ebp + 0x60]
mov edi, dword [ebp + 8]
sbb edi, dword [ebp + 0x64]
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x473e38
cmp dword [ebp + 0x50], 0x7fffffff
je 0x473e3e
sub dword [ebp + 0x4c], esi
sbb dword [ebp + 0x50], edi
add dword [ebp + 0x60], esi
adc dword [ebp + 0x64], edi
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0x24], eax
jmp 0x47414a
cmp dword [ebp + 0x64], ebx
jl 0x47419f
jg 0x473e63
cmp dword [ebp + 0x60], ebx
jbe 0x47419f
mov eax, dword [ebp + 0x3c]
mov byte [ebp + 0x5e], bl
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x48]
cmp eax, ecx
jg 0x473e8b
jl 0x473e80
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x473e8b
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x473e94
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp - 0x1c], ebx
mov dword [ebp + 0x24], ebx
jle 0x473eb5
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004ac3d0
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x473ebb
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov edi, dword [ebp + 0x34]
sub edi, dword [ebp + 0x18]
mov esi, dword [ebp + 0x38]
sbb esi, dword [ebp + 0x1c]
mov dword [ebp - 0x78], edi
js 0x473f5c
jg 0x473eda
cmp edi, ebx
jbe 0x473f5c
cmp byte [ebp + 0x6d], bl
je 0x473f02
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.00413d9a
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x4740ee
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.004424a2
add esp, 0x14
test eax, eax
jne 0x4740ee
cmp byte [ebp + 0x56], bl
jne 0x47405f
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x473f3c
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043db4f
lea ecx, [ebp + 0x40]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043db4f
jmp 0x474709
cmp dword [ebp + 0x1c], ebx
jl 0x47401f
jg 0x473f70
cmp dword [ebp + 0x18], ebx
jbe 0x47401f
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004aa020
mov eax, dword [ebp - 0x20]
cdq
push 1
mov esi, eax
push ebx
mov edi, edx
mov dword [ebp - 0x98], esi
sub esi, dword [ebp + 0x18]
push ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x94], edi
sbb edi, dword [ebp + 0x1c]
call fcn.0043edf6
add esp, 0x1c
push ebx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x8c], edx
push dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
push dword [ebp + 0x68]
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x18]
add eax, ecx
mov ecx, dword [ebp - 0x24]
push esi
push eax
mov eax, dword [ebp + 0x60]
add eax, ecx
push eax
call fcn.00413d9a
mov eax, dword [ebp - 0x98]
add dword [ebp + 0x60], esi
push ebx
push dword [ebp - 0x8c]
adc dword [ebp + 0x64], edi
push dword [ebp - 0x90]
mov dword [ebp + 0x34], eax
mov eax, dword [ebp - 0x94]
push dword [ebp + 0x68]
mov dword [ebp + 0x38], eax
call fcn.0043edf6
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x47401f
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x474127
jg 0x474036
cmp dword [ebp + 0x34], ebx
jbe 0x474127
push ebx
lea eax, [ebp + 0x24]
push eax
push dword [ebp + 0x34]
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x474127
cmp byte [ebp + 0x56], bl
je 0x474198
mov byte [ebp + 0x56], 2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov al, byte [ebp + 0x56]
lea ecx, [ebp + 0x58]
mov byte [ebp + 0x57], al
mov byte [ebp + 0x56], bl
mov dword [ebp + 0x24], ebx
call fcn.00402cb5
push ebx
push ebx
push 4
push ebx
push ebx
mov esi, 0xc0000000
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4740ca
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x4740ca
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
mov dword [ebp + 0x68], eax
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.004424a2
add esp, 0x14
test eax, eax
je 0x473f29
cmp byte [ebp + 0x57], 2
je 0x474127
cmp dword [ebp + 0x24], edi
jbe 0x4740f6
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x47410d
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004aa020
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
sub dword [ebp + 0x34], eax
mov byte [ebp + 0x56], bl
sbb dword [ebp + 0x38], ebx
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add dword [ebp - 0x24], edi
jmp 0x473f5c
cmp byte [ebp + 0x6f], bl
je 0x47413e
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004aa020
add esp, 0xc
mov byte [ebp + 0x6f], bl
mov eax, dword [ebp + 0x24]
add dword [ebp - 0x24], eax
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
mov eax, dword [ebp + 0x48]
cmp dword [ebp + 0x64], eax
jg 0x473e6c
jl 0x474164
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x473e6c
cmp dword [ebp + 0x64], ebx
jl 0x473caa
jg 0x474178
cmp dword [ebp + 0x60], ebx
jbe 0x473caa
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x473caa
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.00413d9a
add esp, 0xc
jmp 0x473caa
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x473f2f
cmp dword [ebp + 0x50], ebx
jl 0x4741cb
jg 0x4741b4
cmp dword [ebp + 0x4c], ebx
jbe 0x4741cb
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x473f2f
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x473f2f
mov dword [ebp + 0xc], ebx
jmp 0x473f3f
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x473f4f
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
jmp 0x473f4f
cmp byte [ebp + 0x6d], bl
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp + 0x30], ebx
jne 0x47437d
cmp dword [ebp - 0x1c], 0x11
jne 0x474253
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.0045348b
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x4742bd
jl 0x47423e
cmp eax, ebx
jae 0x4742bd
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043db4f
jmp 0x472fb8
cmp dword [ebp + 0x68], ebx
je 0x4742c3
cmp dword [ebp - 0x1c], ebx
jne 0x474298
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043edf6
mov ecx, dword [ebp + 0x10]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp + 0x14]
sub ecx, 0x400
mov esi, edx
sbb eax, ebx
cmp esi, eax
jg 0x4742c3
jl 0x474288
cmp edi, ecx
jae 0x4742c3
cmp dword [ebp + 0x3c], ebx
jne 0x4742c3
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4742c3
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.004423fb
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x4742c3
jl 0x4742b3
cmp edi, ebx
jae 0x4742c3
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x4742c3
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x4742ee
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x4742ee
mov ecx, edi
sub ecx, dword [ebp + 0x10]
mov eax, esi
sbb eax, dword [ebp + 0x14]
mov dword [ebp + 0x60], ecx
cmp eax, ebx
mov dword [ebp + 0x64], eax
jg 0x4742ee
jl 0x4742e8
cmp ecx, ebx
jae 0x4742ee
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x47435b
cmp dword [ebp - 0x1c], ebx
jne 0x47434e
cmp byte [ebp + 0x6e], bl
je 0x47430e
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044a9a4
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x474365
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.0040569f
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x474365
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x4738af
cmp byte [ebp + 0x6f], bl
je 0x47436d
cmp dword [ebp - 0x1c], ebx
jne 0x474372
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x47437d
mov eax, dword [ebp + 0x10]
xor edx, edx
div dword [ebp - 0x20]
mov dword [ebp + 0x30], edx
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x3c]
mov ecx, dword [ebp + 0x14]
adc ecx, dword [ebp - 0x38]
sub edi, eax
sbb esi, ecx
cmp byte [ebp + 0x6d], bl
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], ecx
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], esi
jne 0x4743dd
movzx eax, word [ebp + 0x30]
mov ecx, dword [ebp + 0x10]
cdq
sub ecx, eax
mov eax, dword [ebp + 0x14]
push ebx
sbb eax, edx
push eax
push ecx
push dword [ebp + 0x68]
call fcn.0043edf6
add esp, 0x10
cmp edx, ebx
jg 0x4743dd
jl 0x4743c8
cmp eax, ebx
jae 0x4743dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043db4f
jmp 0x4738af
cmp byte [ebp - 0x29], bl
je 0x47443a
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x4743fa
jg 0x4743f4
cmp eax, dword [ebp + 0x18]
jbe 0x4743fa
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x474419
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.00413d9a
add esp, 0xc
jmp 0x4746f3
cmp ecx, ebx
jl 0x4746f3
jg 0x47442b
cmp eax, ebx
jbe 0x4746f3
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x4744a7
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x47445c
mov eax, dword [ebp + 0x60]
jg 0x47444a
cmp eax, ebx
jb 0x47445c
cmp ecx, dword [ebp + 0x48]
jg 0x47445c
jl 0x474456
cmp eax, dword [ebp + 0x44]
jae 0x47445c
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], ecx
cmp byte [ebp + 0x57], bl
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x78], eax
je 0x4744b7
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00443ee3
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x47448f
jg 0x47448c
cmp eax, dword [ebp + 0x44]
jbe 0x47448f
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x4746f3
push dword [ebp - 0x1c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, ecx
cdq
push edx
push eax
push dword [ebp + 0x3c]
push dword [ebp + 0x68]
call fcn.00453642
add esp, 0x18
jmp 0x4746f3
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.00443e04
mov eax, dword [ebp - 0x60]
add eax, esi
lea edi, [esi - 1]
not edi
and edi, eax
movzx eax, word [ebp + 0x30]
sub esi, eax
cmp dword [ebp + 0x48], ebx
mov al, byte [ebp - 0x2a]
mov dword [ebp - 0xc], esi
mov dword [ebp + 0x34], ebx
mov dword [ebp + 0x38], ebx
mov byte [ebp + 0x57], bl
mov byte [ebp + 0x6e], al
jl 0x4746eb
jle 0x4746e2
cmp dword [ebp + 0x38], ebx
jg 0x474511
jl 0x474505
cmp dword [ebp + 0x34], ebx
ja 0x474511
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x4746eb
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x4746eb
cmp dword [ebp + 0x48], ebx
jl 0x47468a
jg 0x474531
cmp dword [ebp + 0x44], ebx
jbe 0x47468a
cmp dword [ebp + 0x38], ebx
jg 0x474664
jl 0x474545
cmp dword [ebp + 0x34], ebx
ja 0x474664
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x47468a
lea eax, [ebp + 0x78]
push eax
call fcn.0043dae7
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2a
pop ecx
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
jne 0x4745c5
inc eax
inc eax
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x34]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x38], ebx
call fcn.00450152
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x4745c5
cmp si, 0x2a
je 0x47465e
cmp si, 0x28
je 0x4745ed
cmp si, 0x30
jb 0x4745ac
cmp si, 0x39
jbe 0x4745cd
cmp byte [ebp + 0x6e], bl
je 0x4745c0
or esi, 0x20
cmp si, 0x61
jb 0x4745c0
cmp si, 0x7a
jbe 0x4745cd
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x474590
cmp word [eax], 0x30
jne 0x474604
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x474604
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x474609
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.00450152
pop ecx
pop ecx
jmp 0x47465e
cmp byte [ebp + 0x6e], bl
je 0x474642
lea eax, [ebp + 0x24]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x24], 2
call fcn.00444c21
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.004439f7
add esp, 0x10
test al, al
jne 0x474656
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x474656
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004503bc
cmp eax, 1
pop ecx
pop ecx
jl 0x47468a
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x47468a
mov al, byte [ebp + 0x18]
mov byte [ebp + 0x57], al
add dword [ebp + 0x34], 0xffffffff
mov eax, dword [ebp - 4]
mov cl, byte [ebp + 0x57]
adc dword [ebp + 0x38], 0xffffffff
mov byte [eax + edi], cl
inc eax
add dword [ebp + 0x44], 0xffffffff
mov dword [ebp - 4], eax
adc dword [ebp + 0x48], 0xffffffff
cmp eax, dword [ebp - 0xc]
jl 0x47451d
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x4746eb
cmp byte [ebp + 0x6d], bl
je 0x4746b4
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.00413d9a
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x4746cd
push dword [ebp + 0x2c]
movzx eax, word [ebp + 0x30]
push eax
mov eax, esi
cdq
push edx
push eax
push edi
push dword [ebp + 0x68]
call fcn.00453642
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x4744f9
jl 0x4746eb
cmp dword [ebp + 0x44], ebx
ja 0x4744f9
lea ecx, [ebp - 0x60]
call fcn.0043db4f
cmp dword [ebp + 0x68], ebx
je 0x474701
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043db4f
cmp byte [ebp + 0x55], bl
je 0x47471c
cmp dword [ebp + 0x68], ebx
je 0x47471c
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x474769
cmp dword [ebp + 0x68], ebx
je 0x474769
push 2
lea ecx, [ebp - 0x78]
push ecx
push ebx
xor eax, eax
push eax
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x474769
push ebx
push 0x4d820c
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0043ef59
mov eax, dword [0x4d820c]
add esp, 0x10
cmp eax, ebx
je 0x474769
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push dword [ebp + 0x68]
call eax
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043db4f
mov ebx, dword [ebp + 0xc]
jmp 0x4733d6