Function at 0x474562
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.0044c930
push 1
push 2
push str.SeBackupPrivilege
call fcn.0041347b
push 0x10
push 2
push str.SeRestorePrivilege
call fcn.0041347b
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 0x474601
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x474609
cmp cx, 0x2a
jne 0x4745e4
mov al, byte [edx]
mov byte [ebp + 0x6f], al
jmp 0x4745fc
cmp cx, 0x2e
jne 0x4745f1
mov al, byte [edx]
mov byte [ebp + 0x57], al
jmp 0x4745fc
cmp cx, 0x23
jne 0x4745fc
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 0x4745cc
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
mov esi, dword [ebp + 0x78]
pop ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x40], esi
call fcn.00444a10
cmp word [esi], 0x2d
jne 0x474671
xor ecx, ecx
mov cx, word [esi + 2]
cmp cx, bx
je 0x474656
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x474656
cmp cx, 0x2c
je 0x474656
lea eax, [ebp - 0x40]
push eax
call fcn.00409168
mov esi, dword [ebp - 0x40]
cmp word [esi], 0x2d
pop ecx
je 0x474627
cmp esi, dword [ebp + 0x78]
je 0x474671
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.00455dfb
mov eax, dword [ebp - 0x70]
push 1
lea ecx, [ebp]
mov dword [ebp + 0x78], eax
call fcn.00444a2e
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 0x47489d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ca89c
call fcn.00446a34
add esp, 0xc
test al, al
je 0x4746f4
mov byte [ebp - 0x2a], 1
jmp 0x47489d
push 4
lea eax, [ebp + 0x78]
push eax
push str._dir
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474717
mov dword [ebp - 0x24], 0x80000000
jmp 0x47489d
push 5
lea eax, [ebp + 0x78]
push eax
push str._free
call fcn.00446ae7
add esp, 0xc
test al, al
jne 0x4748af
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ca7b4
call fcn.00446ae7
add esp, 0xc
test al, al
lea eax, [ebp + 0x78]
je 0x4747eb
mov esi, dword [ebp + 0x78]
push eax
mov dword [ebp + 0xc], esi
call fcn.00409168
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
cmp word [esi], 0x3f
pop ecx
mov dword [ebp - 0xc], ebx
jne 0x47479f
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.00405a01
mov eax, dword [ebp - 4]
cmp word [eax], bx
pop ecx
je 0x47478c
mov word [eax], bx
mov ecx, dword [ebp + 0x24]
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x40]
call fcn.0044cd0b
mov dword [ebp + 0xc], eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00440eb8
mov eax, dword [ebp - 0x6c]
cmp eax, edi
pop ecx
pop ecx
mov esi, eax
je 0x4747db
cmp eax, ebx
je 0x4747db
lea ecx, [ebp - 0x7c]
push ecx
push eax
mov dword [ebp + 0x40], ebx
call fcn.0043eab5
test eax, eax
pop ecx
pop ecx
je 0x4747db
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
mov dword [ebp + 0x3c], eax
jne 0x4747db
mov dword [ebp + 0x3c], esi
lea ecx, [ebp - 0xc]
call fcn.0043e48d
mov esi, dword [ebp - 0x40]
jmp 0x47489d
push 3
push eax
push 0x4ca890
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474808
mov byte [ebp - 5], 1
jmp 0x47489d
push 2
lea eax, [ebp + 0x78]
push eax
push 0x4ca88c
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474825
mov byte [ebp + 0x6d], 1
jmp 0x47489d
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474842
mov byte [ebp + 0x6e], 1
jmp 0x47489d
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446a34
add esp, 0xc
test al, al
je 0x47485f
mov byte [ebp + 0x22], 1
jmp 0x47489d
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ca880
call fcn.00446a34
add esp, 0xc
test al, al
jne 0x4748f4
push 5
lea eax, [ebp + 0x78]
push eax
push 0x4c4b10
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474893
mov byte [ebp + 0x5e], 1
jmp 0x47489d
lea eax, [ebp + 0x78]
push eax
call fcn.00409168
pop ecx
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
je 0x4746d4
jmp 0x474c2d
mov eax, dword [ebp + 0x78]
mov dword [ebp + 0x2c], eax
lea eax, [ebp + 0x78]
push eax
call fcn.00409168
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.00440eb8
add esp, 0xc
cmp dword [ebp - 0x48], edi
je 0x4751d5
cmp dword [ebp - 0x48], ebx
je 0x4751d5
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x4751d5
mov eax, dword [ebp + 0x78]
cmp word [eax], 0x2d
mov byte [ebp + 0x23], 1
mov byte [ebp + 0x6f], 1
jne 0x474c2d
mov eax, dword [ebp + 0x78]
xor ecx, ecx
mov cx, word [eax + 2]
cmp cx, bx
je 0x474bfa
mov eax, ecx
call fcn.00402d55
test al, al
jne 0x474bfa
cmp cx, 0x2c
je 0x474bfa
mov eax, dword [ebp + 0x78]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.00409168
push 4
push dword [ebp + 0x78]
push str._bs
call fcn.0043f884
add esp, 0x10
test al, al
je 0x47498f
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
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 0x474bea
push 5
push dword [ebp + 0x78]
push str._ibs
call fcn.0043f884
add esp, 0xc
test al, al
je 0x4749cc
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
cdq
jmp 0x474984
push 5
push dword [ebp + 0x78]
push str._obs
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474a12
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
cdq
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
jmp 0x474bea
push 7
push dword [ebp + 0x78]
push str._count
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474a5a
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x48], eax
jmp 0x474bea
push 5
push dword [ebp + 0x78]
push str._len
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474aa2
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x50], eax
jmp 0x474bea
push 6
push dword [ebp + 0x78]
push str._conv
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474adf
add dword [ebp + 0x78], 0xc
push 7
push dword [ebp + 0x78]
push str.notrunc
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474bea
mov byte [ebp - 0x2b], 1
jmp 0x474bea
push 6
push dword [ebp + 0x78]
push str._skip
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474b2d
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x58], eax
jmp 0x474bea
push 7
push dword [ebp + 0x78]
push str._skipb
call fcn.0043f884
add esp, 0xc
test al, al
je 0x474b78
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.00451370
test eax, eax
pop ecx
pop ecx
jle 0x474bea
mov eax, dword [ebp + 0x28]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 8], eax
jmp 0x474bea
push 7
lea eax, [ebp + 0x78]
push eax
push str._sparse
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474b95
mov byte [ebp + 0x6e], 1
jmp 0x474bea
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474bb2
mov byte [ebp + 0x22], 1
jmp 0x474bea
push 7
lea eax, [ebp + 0x78]
push eax
push str._qspace
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474bcf
mov byte [ebp + 0x22], 0x10
jmp 0x474bea
push 3
lea eax, [ebp + 0x78]
push eax
push 0x4ca890
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474bea
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
mov dword [ebp + 0x78], eax
cmp word [eax], 0x2d
je 0x474909
cmp dword [ebp + 8], ebx
jg 0x474c2d
jl 0x474c06
cmp dword [ebp + 4], ebx
jae 0x474c2d
push dword [ebp - 0x58]
push dword [ebp - 0x5c]
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004ad070
cmp edx, ebx
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
jg 0x474c2d
jl 0x474c27
cmp eax, ebx
jae 0x474c2d
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
push 6
lea eax, [ebp + 0x78]
push eax
push str._quick
call fcn.00446a34
add esp, 0xc
test al, al
je 0x474c48
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.004395a0
cmp word [eax], 0x2c
jne 0x4751d0
mov eax, dword [ebp]
mov ax, word [eax]
cmp ax, bx
je 0x4751d0
cmp ax, 0x26
jne 0x474c81
mov byte [ebp + 0x6d], 1
cmp byte [ebp + 0x6d], bl
je 0x474c89
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.00455dfb
mov eax, dword [ebp - 0x70]
mov dword [ebp + 0x78], eax
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.00451370
cmp dword [ebp + 0x14], ebx
pop ecx
pop ecx
jg 0x474cc4
jl 0x4751d0
cmp dword [ebp + 0x10], ebx
jb 0x4751d0
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 0x474d02
add dword [ebp + 0x78], 2
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
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.00451370
add esp, 0xc
push 0x3b
lea eax, [ebp + 0x78]
push 0x2c
push eax
call fcn.0043e9e8
mov eax, dword [ebp + 0x78]
add esp, 0xc
cmp word [eax], bx
je 0x474d1e
add dword [ebp + 0x78], 2
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x474d44
jg 0x474d2c
cmp dword [ebp + 0x4c], ebx
jb 0x474d44
cmp dword [ebp + 0x64], eax
jl 0x474d44
jg 0x474d3b
mov ecx, dword [ebp + 0x60]
cmp ecx, dword [ebp + 0x4c]
jbe 0x474d44
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], eax
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
push dword [ebp + 0x78]
call fcn.00410e25
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.0043f8c3
add esp, 0x10
cmp al, bl
mov byte [ebp + 0x21], al
jne 0x474daa
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp - 4]
push eax
call fcn.00447dd3
test eax, eax
pop ecx
pop ecx
je 0x474daa
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, bx
je 0x474d9a
cmp ax, 0x2c
jne 0x474daa
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 0x474dbf
xor ebx, ebx
inc ebx
jmp 0x4751d5
lea eax, [ebp - 4]
push 1
push eax
mov dword [ebp - 4], esi
call fcn.0044c85c
pop ecx
pop ecx
lea ecx, [ebp - 0x54]
mov esi, eax
call fcn.0044489c
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 0x474f42
mov esi, 0x4dbd30
push esi
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0xc]
call fcn.00444a10
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push edi
call fcn.00410c6f
cmp eax, ebx
mov dword [ebp + 0x2c], eax
jne 0x474e2d
lea ecx, [ebp + 0xc]
call fcn.0043e48d
push esi
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x4751c8
mov edx, dword [ebp + 0x64]
cmp edx, ebx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
jl 0x474e58
mov esi, dword [ebp + 0x60]
jg 0x474e43
cmp esi, ebx
jbe 0x474e58
mov ecx, esi
add ecx, dword [ebp + 4]
mov eax, edx
adc eax, dword [ebp + 8]
cmp eax, ebx
jl 0x474e7d
jg 0x474e58
cmp ecx, dword [ebp - 0x3c]
jbe 0x474e7d
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 0x474e7d
jl 0x474e73
cmp esi, ebx
ja 0x474e7d
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 0x474e9f
jg 0x474e8b
cmp dword [ebp + 0x4c], ebx
jb 0x474e9f
cmp eax, edx
jg 0x474e9f
jl 0x474e96
cmp dword [ebp + 0x4c], esi
jae 0x474e9f
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.004448de
mov edi, dword [ebp - 0x54]
cmp edi, ebx
jne 0x474ecd
lea ecx, [ebp + 0xc]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x476045
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 0x474efa
jg 0x474ef1
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x3c]
jbe 0x474efa
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 0x474f22
jg 0x474f13
cmp eax, ebx
jbe 0x474f22
cmp edi, ecx
je 0x474f22
push esi
push ecx
push edi
call fcn.00414356
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp + 0x5f], 1
mov byte [ebp - 0x29], 1
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x47511d
cmp esi, ebx
je 0x47511d
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 0x474f7d
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.0045477d
mov cx, word [esi]
mov dword [ebp - 0x60], eax
mov eax, dword [0x4daf98]
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 0x474fc3
cmp word [ecx + 2], bx
jne 0x474fc3
mov eax, dword [0x4dac7c]
jmp 0x474fd5
cmp dx, bx
je 0x474fd5
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 0x474ffc
lea ecx, [ebp - 0x88]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push dword [ebp - 0x60]
push dword [ebp + 0x30]
push eax
call fcn.00415338
add esp, 0x14
mov edi, eax
cmp dword [ebp + 0xc], ebx
je 0x47500a
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
cmp edi, ebx
je 0x476045
cmp dword [ebp + 0x64], ebx
mov eax, dword [ebp - 0x50]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
jl 0x475044
jg 0x475028
cmp dword [ebp + 0x60], ebx
jbe 0x475044
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 0x47506a
jg 0x475044
cmp ecx, dword [ebp - 0x18]
jbe 0x47506a
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 0x47506a
jl 0x475060
cmp edi, ebx
ja 0x47506a
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.004448de
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp + 0x30], eax
je 0x476045
mov ecx, dword [ebp - 0x18]
push 0x1ff
add ecx, eax
push ebx
push ecx
call fcn.004acf60
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp dword [ebp + 8], eax
jl 0x4750bb
jg 0x4750af
mov eax, dword [ebp + 4]
cmp eax, dword [ebp - 0x18]
jbe 0x4750bb
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 0x4750e3
jg 0x4750cf
cmp dword [ebp + 0x4c], ebx
jb 0x4750e3
cmp eax, esi
jg 0x4750e3
jl 0x4750da
cmp dword [ebp + 0x4c], edi
jae 0x4750e3
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 0x47511d
jg 0x47510b
cmp eax, ebx
jbe 0x47511d
cmp edi, dword [ebp + 0x30]
je 0x47511d
push eax
push dword [ebp + 0x30]
push edi
call fcn.00414356
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 0x475142
push 0x40
push 2
push str.SeManageVolumePrivilege
call fcn.0041347b
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 0x475164
mov byte [ebp + 0x56], bl
cmp byte [ebp + 0x23], bl
je 0x475179
cmp byte [ebp - 0x2b], bl
sete byte [ebp + 0x55]
cmp byte [ebp + 0x5f], bl
jne 0x475179
mov byte [ebp + 0x23], 2
cmp byte [ebp + 0x6d], bl
mov esi, 0xc0000000
je 0x475284
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00444a10
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp]
call fcn.00410c6f
cmp eax, ebx
jne 0x475201
lea ecx, [ebp + 0x40]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043e48d
mov ebx, 0x80070057
lea ecx, [ebp]
call fcn.0043e48d
lea ecx, [ebp - 0x70]
call fcn.0043e48d
lea ecx, [ebp - 0x7c]
call fcn.00402cb5
lea ecx, [ebp - 0x80]
call fcn.0043e48d
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 0x47521c
jl 0x4751ad
cmp ecx, ebx
jbe 0x4751ad
cmp byte [ebp + 0x5f], bl
je 0x47526c
mov esi, dword [ebp + 0x10]
sub ecx, esi
sbb eax, dword [ebp + 0x14]
cmp eax, dword [ebp + 0x64]
jl 0x47523b
jg 0x475235
cmp ecx, dword [ebp + 0x60]
jbe 0x47523b
mov ecx, dword [ebp + 0x60]
mov eax, dword [ebp + 0x64]
cmp eax, ebx
jl 0x475254
jg 0x475245
cmp ecx, ebx
jbe 0x475254
push dword [ebp + 0x18]
add esi, edx
push edi
push esi
call fcn.00414356
add esp, 0xc
lea ecx, [ebp + 0x40]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x476508
lea ecx, [ebp + 0x40]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x4753e7
cmp byte [ebp + 0x5e], bl
je 0x47528e
mov dword [ebp - 0x1c], ebx
jmp 0x4752ab
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp]
push eax
call fcn.0044be07
movsx eax, al
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x1c], eax
jl 0x4751c0
cmp byte [ebp + 0x6f], bl
mov ecx, dword [ebp]
jne 0x4752f7
cmp dword [ebp - 0x1c], ebx
jne 0x4752ef
cmp word [ecx], 0x5c
jne 0x4752ef
cmp word [ecx + 2], 0x5c
jne 0x4752ef
mov ax, word [ecx + 4]
cmp ax, 0x3f
je 0x4752d5
cmp ax, 0x2e
jne 0x4752ef
cmp word [ecx + 6], 0x5c
jne 0x4752ef
cmp ax, 0x3f
jne 0x4752f7
cmp word [ecx + 8], ax
jne 0x4752f7
cmp word [ecx + 0xa], 0x3a
jne 0x4752f7
mov edi, dword [ebp - 0x24]
mov byte [ebp + 0x5e], bl
jmp 0x475333
cmp byte [ebp + 0x6f], bl
mov byte [ebp + 0x5e], 1
jne 0x475311
push ebx
push ecx
call fcn.004ac7b0
test eax, eax
pop ecx
pop ecx
je 0x475311
mov byte [ebp + 0x6f], 0x20
cmp dword [ebp + 0x3c], ebx
mov edi, dword [ebp - 0x24]
jne 0x475357
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.00405a2a
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x475352
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.00405a2a
mov dword [ebp + 0x68], eax
cmp byte [ebp + 0x5e], bl
je 0x475384
cmp byte [ebp + 0x23], bl
je 0x475384
cmp dword [ebp - 0x1c], ebx
jg 0x475384
cmp dword [ebp + 0x68], ebx
jne 0x4753a5
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.00405a2a
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
jne 0x4753a5
push ebx
push 0x2000000
push 3
push ebx
push 3
or edi, esi
push edi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x40], ebx
je 0x4753c3
cmp dword [ebp + 0x58], ebx
je 0x4753c3
push dword [ebp + 0x40]
push dword [ebp + 0x58]
push dword [ebp + 0x24]
call fcn.0041046b
add esp, 0xc
mov dword [ebp + 0x58], ebx
cmp dword [ebp - 0x1c], ebx
je 0x4753e7
cmp dword [ebp + 0x68], ebx
je 0x4753e7
mov edi, 0x200
push edi
push dword [ebp + 0x68]
call fcn.00441d1c
cmp eax, edi
pop ecx
pop ecx
mov dword [ebp - 0x20], eax
jge 0x4753e7
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 0x475ff5
cmp dword [ebp + 0x38], ebx
jl 0x4751c0
mov edi, dword [ebp + 0x34]
jg 0x475414
cmp edi, ebx
jbe 0x4751c0
cmp dword [ebp - 0x30], ebx
jl 0x4751c0
jg 0x475428
cmp dword [ebp - 0x34], ebx
jbe 0x4751c0
cmp dword [ebp + 0x50], ebx
jl 0x475457
jg 0x475434
cmp dword [ebp + 0x4c], ebx
jb 0x475457
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.004acfc0
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x475485
cmp dword [ebp + 0x44], 0xffffffff
jne 0x475470
mov eax, 0x7fffffff
cmp dword [ebp + 0x48], eax
jne 0x475470
or dword [ebp + 0x4c], 0xffffffff
mov dword [ebp + 0x50], eax
jmp 0x475485
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp + 0x38]
push edi
call fcn.004ad070
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], edx
push dword [ebp - 0x10]
call fcn.004130a1
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0044df7a
cmp byte [ebp + 0x6d], bl
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
jg 0x4754b7
cmp dword [ebp + 0x68], ebx
jne 0x4754b7
lea ecx, [ebp - 0x10]
call fcn.0043e48d
jmp 0x47603d
cmp byte [ebp + 0x22], bl
je 0x475612
cmp dword [ebp - 0x1c], ebx
jg 0x475612
cmp byte [ebp + 0x6d], bl
jg 0x475612
cmp dword [ebp + 0x3c], ebx
jne 0x4754df
lea ecx, [ebp + 0x58]
call fcn.00402cb5
cmp byte [ebp + 0x6e], bl
je 0x4754f1
push ebx
push ebx
push dword [ebp]
call fcn.0044bbb3
add esp, 0xc
cmp dword [ebp + 0x3c], ebx
jne 0x47552a
push ebx
push ebx
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x475533
push ebx
push 0x2000000
push 4
push ebx
push 3
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
mov dword [ebp + 0x68], eax
cmp dword [ebp + 0x68], ebx
je 0x4754aa
cmp byte [ebp + 0x21], bl
je 0x475612
cmp dword [ebp + 0x48], ebx
jl 0x475fd2
jg 0x475550
cmp dword [ebp + 0x44], ebx
jb 0x475612
push dword [ebp + 0x48]
push dword [ebp + 0x44]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.004ad070
cmp dword [ebp + 0x50], ebx
jl 0x47557f
jg 0x47556d
cmp dword [ebp + 0x4c], ebx
jb 0x47557f
cmp edx, dword [ebp + 0x50]
jl 0x47557f
jg 0x475579
cmp eax, dword [ebp + 0x4c]
jbe 0x47557f
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 0x4755a5
jg 0x47559c
cmp dword [ebp + 0x44], 0xffffffff
jb 0x4755a5
mov dword [ebp - 0x3c], 0xfffffdff
mov edi, esi
cmp byte [ebp + 0x55], bl
jne 0x4755c8
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f790
add esp, 0x10
cmp edx, edi
jg 0x4755c8
jl 0x4755c4
cmp eax, dword [ebp - 0x3c]
jae 0x4755c8
mov byte [ebp + 0x55], 1
push ebx
push edi
push dword [ebp - 0x3c]
push dword [ebp + 0x68]
call fcn.0043f790
add esp, 0x10
cmp eax, dword [ebp - 0x3c]
jne 0x4755f7
cmp edx, edi
jne 0x4755f7
cmp dword [ebp + 0x48], esi
jg 0x475612
jl 0x475d4e
cmp dword [ebp + 0x44], 0xffffffff
jae 0x475612
jmp 0x475d4e
cmp dword [ebp + 0x48], esi
jg 0x475612
jl 0x475604
cmp dword [ebp + 0x44], 0xffffffff
jae 0x475612
push ebx
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f790
add esp, 0x10
cmp dword [ebp + 0x48], ebx
jl 0x475fd2
jg 0x475626
cmp dword [ebp + 0x44], ebx
jbe 0x475fd2
cmp dword [ebp + 0x50], ebx
jl 0x475fd2
jg 0x47563a
cmp dword [ebp + 0x4c], ebx
jbe 0x475fd2
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 0x475657
cmp byte [ebp + 0x5f], bl
mov byte [ebp + 0x6e], 1
je 0x47565a
mov byte [ebp + 0x6e], bl
cmp dword [ebp - 0x1c], ebx
jle 0x47566f
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 0x4756c3
jg 0x475683
cmp esi, ebx
jbe 0x4756c3
cmp byte [ebp + 0x6d], bl
jg 0x4756c3
push ebx
push edi
push esi
push dword [ebp + 0x68]
call fcn.0043f790
add esp, 0x10
cmp eax, esi
jne 0x47569e
cmp edx, edi
je 0x4756c3
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x10]
call fcn.0043e48d
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043e48d
jmp 0x4751d5
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 0x4757e3
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea ecx, [ebp + 0x3c]
call fcn.00444a10
mov ecx, dword [ebp + 0x24]
push ebx
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x10]
call fcn.00410c6f
cmp eax, ebx
jne 0x47573d
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
lea ecx, [ebp + 0x40]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043e48d
jmp 0x4751c0
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 0x475777
jl 0x475758
cmp eax, ebx
ja 0x475777
mov dword [ebp + 0xc], 0x80070057
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
jmp 0x475d46
cmp byte [ebp + 0x6d], bl
je 0x4757d0
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 0x47579e
jg 0x475798
cmp esi, dword [ebp + 0x4c]
jbe 0x47579e
mov esi, dword [ebp + 0x4c]
mov edx, dword [ebp + 0x50]
cmp edx, ecx
jl 0x4757ac
jg 0x4757a8
cmp esi, eax
jbe 0x4757ac
mov esi, eax
mov edx, ecx
cmp edx, ebx
jl 0x47575f
jg 0x4757b6
cmp esi, ebx
jbe 0x47575f
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.00414356
add esp, 0xc
jmp 0x47575f
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
push 0x4dbd30
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
cmp byte [ebp + 0x6e], bl
je 0x4758b8
cmp byte [ebp + 0x5f], bl
jg 0x4758b8
lea eax, [ebp - 0x10]
push eax
call fcn.0044bf05
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.00405a2a
cmp dword [ebp + 0x40], ebx
jne 0x47584e
push ebx
push 0x2000000
push 3
push ebx
push 3
push 0x80000000
push dword [ebp - 0x10]
lea ecx, [ebp + 0x40]
call fcn.00405a2a
cmp dword [ebp + 0x40], ebx
jne 0x47584e
lea ecx, [ebp + 0x40]
call fcn.00402cb5
jmp 0x4754aa
cmp dword [ebp - 0xc], ebx
je 0x475879
push 0x200
push dword [ebp + 0x40]
call fcn.00441d1c
cmp dword [ebp - 0xc], ebx
pop ecx
pop ecx
mov dword [ebp + 0x30], eax
jle 0x475879
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 0x4758b8
jg 0x47588d
cmp ecx, ebx
jbe 0x4758b8
push ebx
push eax
push ecx
push dword [ebp + 0x40]
call fcn.0043f790
add esp, 0x10
cmp eax, edi
jne 0x4758a3
cmp edx, esi
je 0x4758b8
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x40]
mov ebx, eax
call fcn.00402cb5
jmp 0x4756a6
cmp dword [ebp - 0x1c], ebx
jle 0x4758ec
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.004acfc0
push edi
push esi
push edx
push eax
call fcn.004ad070
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], edx
jmp 0x4758f8
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 0x475926
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.004acfc0
push edi
push esi
push edx
push eax
call fcn.004ad070
jmp 0x47592c
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 0x47593c
cmp edx, dword [ebp + 0x48]
je 0x475946
add eax, dword [ebp + 0x44]
mov ecx, edx
adc ecx, dword [ebp + 0x48]
jmp 0x475948
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 0x47596d
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.004448b9
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.004acf60
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 0x475a16
jg 0x4759bd
cmp dword [ebp + 0x18], ebx
jbe 0x475a16
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 0x475a06
jl 0x4759fa
cmp dword [ebp + 0x4c], ebx
jae 0x475a06
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.00414356
add esp, 0xc
cmp dword [ebp - 0x24], ebx
jl 0x475a91
jg 0x475a22
cmp dword [ebp - 0x28], ebx
jbe 0x475a91
push 1
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f790
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.00414356
push dword [ebp - 0x28]
push esi
push dword [ebp + 0x3c]
call fcn.00414356
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.0043f790
add esp, 0x28
cmp byte [ebp + 0x21], bl
je 0x475a91
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x64], ebx
mov byte [ebp + 0x5e], 1
jg 0x475c43
jl 0x475aa9
cmp dword [ebp + 0x60], ebx
ja 0x475c43
mov eax, dword [ebp + 0x50]
cmp eax, ebx
jl 0x475c4e
jg 0x475abf
cmp dword [ebp + 0x4c], ebx
jbe 0x475c4e
cmp byte [ebp + 0x5e], bl
je 0x475c4e
cmp byte [ebp + 0x6e], bl
je 0x475bde
mov esi, dword [ebp - 0x44]
cmp esi, eax
jg 0x475ae7
jl 0x475ae2
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [ebp + 0x4c]
ja 0x475ae7
mov ecx, dword [ebp - 0x48]
jmp 0x475aec
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 0x475b0e
jg 0x475b02
cmp edx, dword [ebp + 4]
jbe 0x475b0e
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 0x475b34
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 0x475b39
mov edi, ecx
mov dword [ebp - 0x30], esi
cmp byte [ebp + 0x5f], bl
mov dword [ebp - 0x34], edi
je 0x475b94
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 0x475b5f
jg 0x475b59
cmp esi, dword [ebp - 0x34]
jbe 0x475b5f
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jl 0x475b86
jg 0x475b6b
cmp dword [ebp - 0x34], ebx
jbe 0x475b86
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.00414356
add esp, 0xc
add dword [ebp - 0x5c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
adc dword [ebp - 0x58], edi
jmp 0x475bb8
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 0x475c4e
jg 0x475bca
cmp esi, ebx
jbe 0x475c4e
cmp edi, dword [ebp + 0x50]
jl 0x475c28
jg 0x475bd6
cmp esi, dword [ebp + 0x4c]
jbe 0x475c28
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x50]
jmp 0x475c22
cmp dword [ebp + 0x48], eax
jg 0x475bf5
jl 0x475bed
mov ecx, dword [ebp + 0x44]
cmp ecx, dword [ebp + 0x4c]
ja 0x475bf5
mov esi, dword [ebp + 0x44]
mov edi, dword [ebp + 0x48]
jmp 0x475bfa
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 0x475c28
jg 0x475c16
cmp ecx, dword [ebp + 4]
jbe 0x475c28
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 0x475c37
cmp dword [ebp + 0x50], 0x7fffffff
je 0x475c3d
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 0x475f49
cmp dword [ebp + 0x64], ebx
jl 0x475f9e
jg 0x475c62
cmp dword [ebp + 0x60], ebx
jbe 0x475f9e
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 0x475c8a
jl 0x475c7f
mov edx, dword [ebp + 0x44]
cmp edx, dword [ebp + 0x60]
ja 0x475c8a
mov ecx, dword [ebp + 0x44]
mov dword [ebp + 0x34], ecx
mov dword [ebp + 0x38], eax
jmp 0x475c93
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 0x475cb4
mov eax, dword [ebp - 0x20]
cdq
push edx
push eax
push dword [ebp + 0x38]
push dword [ebp + 0x34]
call fcn.004af360
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], edx
jmp 0x475cba
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 0x475d5b
jg 0x475cd9
cmp edi, ebx
jbe 0x475d5b
cmp byte [ebp + 0x6d], bl
je 0x475d01
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push edi
push dword [ebp - 0x24]
add ecx, eax
push ecx
call fcn.00414356
add esp, 0xc
add dword [ebp + 0x10], edi
mov dword [ebp + 0x24], edi
adc dword [ebp + 0x14], esi
jmp 0x475eed
push dword [ebp - 0x20]
lea eax, [ebp + 0x24]
push eax
push edi
push dword [ebp - 0x24]
push dword [ebp + 0x68]
call fcn.00442fd3
add esp, 0x14
test eax, eax
jne 0x475eed
cmp byte [ebp + 0x56], bl
jne 0x475e5e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, ebx
jne 0x475d3b
xor eax, eax
inc eax
mov dword [ebp + 0xc], eax
lea ecx, [ebp + 0x2c]
call fcn.0043e48d
lea ecx, [ebp + 0x40]
call fcn.00402cb5
lea ecx, [ebp - 0x10]
call fcn.0043e48d
jmp 0x476508
cmp dword [ebp + 0x1c], ebx
jl 0x475e1e
jg 0x475d6f
cmp dword [ebp + 0x18], ebx
jbe 0x475e1e
push dword [ebp - 0x20]
push ebx
push dword [ebp + 0xc]
call fcn.004acf60
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.0043f790
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.00414356
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.0043f790
mov edi, dword [ebp - 0x78]
add esp, 0x1c
cmp byte [ebp + 0x21], bl
je 0x475e1e
mov byte [ebp + 0x6f], 1
cmp dword [ebp + 0x38], ebx
mov dword [ebp + 0x24], ebx
jl 0x475f26
jg 0x475e35
cmp dword [ebp + 0x34], ebx
jbe 0x475f26
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 0x475f26
cmp byte [ebp + 0x56], bl
je 0x475f97
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.00405a2a
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x475ec9
push ebx
push ebx
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x475ec9
push ebx
mov eax, 0x2000000
push eax
push 3
push ebx
push ebx
push esi
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
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.00442fd3
add esp, 0x14
test eax, eax
je 0x475d28
cmp byte [ebp + 0x57], 2
je 0x475f26
cmp dword [ebp + 0x24], edi
jbe 0x475ef5
mov dword [ebp + 0x24], edi
cmp byte [ebp + 0x6f], bl
je 0x475f0c
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004acf60
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 0x475d5b
cmp byte [ebp + 0x6f], bl
je 0x475f3d
push dword [ebp + 0x24]
push ebx
push dword [ebp - 0x24]
call fcn.004acf60
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 0x475c6b
jl 0x475f63
mov eax, dword [ebp + 0x44]
cmp dword [ebp + 0x60], eax
jae 0x475c6b
cmp dword [ebp + 0x64], ebx
jl 0x475aa9
jg 0x475f77
cmp dword [ebp + 0x60], ebx
jbe 0x475aa9
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp - 0x24]
je 0x475aa9
push dword [ebp + 0x60]
push dword [ebp - 0x24]
push eax
call fcn.00414356
add esp, 0xc
jmp 0x475aa9
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x60], ebx
jne 0x475d2e
cmp dword [ebp + 0x50], ebx
jl 0x475fca
jg 0x475fb3
cmp dword [ebp + 0x4c], ebx
jbe 0x475fca
cmp dword [ebp + 0x4c], 0xffffffff
jne 0x475d2e
cmp dword [ebp + 0x50], 0x7fffffff
jne 0x475d2e
mov dword [ebp + 0xc], ebx
jmp 0x475d3e
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0x14]
je 0x475d4e
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0x68]
call fcn.0043f790
add esp, 0x10
jmp 0x475d4e
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 0x47617c
cmp dword [ebp - 0x1c], 0x11
jne 0x476052
lea eax, [ebp - 0x48]
push eax
push ebx
push dword [ebp + 0x68]
call fcn.004546a9
add esp, 0xc
cmp edx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jg 0x4760bc
jl 0x47603d
cmp eax, ebx
jae 0x4760bc
lea ecx, [ebp + 0x58]
call fcn.00402cb5
lea ecx, [ebp - 0x54]
call fcn.0043e48d
jmp 0x474db7
cmp dword [ebp + 0x68], ebx
je 0x4760c2
cmp dword [ebp - 0x1c], ebx
jne 0x476097
push 2
push ebx
push ebx
push dword [ebp + 0x68]
call fcn.0043f790
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 0x4760c2
jl 0x476087
cmp edi, ecx
jae 0x4760c2
cmp dword [ebp + 0x3c], ebx
jne 0x4760c2
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x4760c2
push dword [ebp - 0x1c]
push dword [ebp + 0x68]
call fcn.00442f2c
mov esi, edx
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
jg 0x4760c2
jl 0x4760b2
cmp edi, ebx
jae 0x4760c2
or edi, 0xffffffff
mov esi, 0x7fffffff
jmp 0x4760c2
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x48]
cmp byte [ebp - 0x2c], bl
je 0x4760ed
cmp dword [ebp + 0x60], 0xfffffffc
jne 0x4760ed
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 0x4760ed
jl 0x4760e7
cmp ecx, ebx
jae 0x4760ed
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
cmp dword [ebp + 0x68], ebx
jne 0x47615a
cmp dword [ebp - 0x1c], ebx
jne 0x47614d
cmp byte [ebp + 0x6e], bl
je 0x47610d
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp]
call fcn.0044bbb3
add esp, 0xc
push ebx
push ebx
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x476164
push ebx
push 0x2000000
push 4
push ebx
push 3
push 0xc0000000
push dword [ebp]
lea ecx, [ebp + 0x58]
call fcn.00405a2a
cmp eax, ebx
mov dword [ebp + 0x68], eax
jne 0x476164
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov ebx, eax
jmp 0x4756ae
cmp byte [ebp + 0x6f], bl
je 0x47616c
cmp dword [ebp - 0x1c], ebx
jne 0x476171
or edi, 0xffffffff
mov esi, 0x7fffffff
cmp dword [ebp - 0x1c], ebx
je 0x47617c
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 0x4761dc
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.0043f790
add esp, 0x10
cmp edx, ebx
jg 0x4761dc
jl 0x4761c7
cmp eax, ebx
jae 0x4761dc
call dword [sym.imp.KERNEL32.DLL_GetLastError]
lea ecx, [ebp + 0x3c]
mov ebx, eax
call fcn.0043e48d
jmp 0x4756ae
cmp byte [ebp - 0x29], bl
je 0x476239
mov ecx, dword [ebp + 0x48]
cmp ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x44]
jl 0x4761f9
jg 0x4761f3
cmp eax, dword [ebp + 0x18]
jbe 0x4761f9
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
cmp byte [ebp + 0x6d], bl
je 0x476218
mov ecx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x40]
push dword [ebp - 0xc]
add ecx, eax
push ecx
call fcn.00414356
add esp, 0xc
jmp 0x4764f2
cmp ecx, ebx
jl 0x4764f2
jg 0x47622a
cmp eax, ebx
jbe 0x4764f2
push dword [ebp + 0x2c]
movzx edx, word [ebp + 0x30]
push edx
push ecx
push eax
push dword [ebp - 0xc]
jmp 0x4762a6
mov ecx, dword [ebp + 0x64]
cmp ecx, ebx
jl 0x47625b
mov eax, dword [ebp + 0x60]
jg 0x476249
cmp eax, ebx
jb 0x47625b
cmp ecx, dword [ebp + 0x48]
jg 0x47625b
jl 0x476255
cmp eax, dword [ebp + 0x44]
jae 0x47625b
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 0x4762b6
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
lea ecx, [ebp + 0x3c]
call fcn.00444998
push dword [ebp + 0x3c]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, eax
cdq
cmp edx, dword [ebp + 0x48]
jl 0x47628e
jg 0x47628b
cmp eax, dword [ebp + 0x44]
jbe 0x47628e
mov ecx, dword [ebp + 0x44]
cmp ecx, ebx
jle 0x4764f2
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.00454860
add esp, 0x18
jmp 0x4764f2
mov esi, dword [ebp - 0x20]
lea eax, [esi + esi]
push eax
lea ecx, [ebp - 0x60]
call fcn.004448b9
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 0x4764ea
jle 0x4764e1
cmp dword [ebp + 0x38], ebx
jg 0x476310
jl 0x476304
cmp dword [ebp + 0x34], ebx
ja 0x476310
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x4764ea
cmp dword [ebp - 0xc], ebx
mov dword [ebp - 4], ebx
jle 0x4764ea
cmp dword [ebp + 0x48], ebx
jl 0x476489
jg 0x476330
cmp dword [ebp + 0x44], ebx
jbe 0x476489
cmp dword [ebp + 0x38], ebx
jg 0x476463
jl 0x476344
cmp dword [ebp + 0x34], ebx
ja 0x476463
mov eax, dword [ebp + 0x78]
cmp word [eax], bx
je 0x476489
lea eax, [ebp + 0x78]
push eax
call fcn.0043e425
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 0x4763c4
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.00451370
mov eax, dword [ebp + 0x78]
pop ecx
pop ecx
jmp 0x4763c4
cmp si, 0x2a
je 0x47645d
cmp si, 0x28
je 0x4763ec
cmp si, 0x30
jb 0x4763ab
cmp si, 0x39
jbe 0x4763cc
cmp byte [ebp + 0x6e], bl
je 0x4763bf
or esi, 0x20
cmp si, 0x61
jb 0x4763bf
cmp si, 0x7a
jbe 0x4763cc
inc eax
inc eax
mov dword [ebp + 0x78], eax
mov si, word [eax]
cmp si, bx
jne 0x47638f
cmp word [eax], 0x30
jne 0x476403
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x78
jne 0x476403
add eax, 4
mov byte [ebp + 0x6e], 1
mov dword [ebp + 0x78], eax
jmp 0x476408
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x1c], ebx
call fcn.00451370
pop ecx
pop ecx
jmp 0x47645d
cmp byte [ebp + 0x6e], bl
je 0x476441
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.00445724
mov eax, dword [ebp + 0x78]
movzx eax, word [eax]
push eax
call fcn.004aadc6
add esp, 0x10
test al, al
jne 0x476455
mov al, byte [ebp - 0x2a]
mov byte [ebp + 0x6e], al
jmp 0x476455
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp + 0x78]
push eax
call fcn.004515da
cmp eax, 1
pop ecx
pop ecx
jl 0x476489
mov eax, dword [ebp + 0x78]
cmp eax, dword [ebp + 0x40]
je 0x476489
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 0x47631c
mov esi, dword [ebp - 4]
cmp esi, ebx
jle 0x4764ea
cmp byte [ebp + 0x6d], bl
je 0x4764b3
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp + 0x10]
push esi
add ecx, eax
push edi
push ecx
call fcn.00414356
mov eax, esi
cdq
add esp, 0xc
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp 0x4764cc
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.00454860
add esp, 0x18
cmp dword [ebp + 0x48], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp - 0xc], 0x200
jg 0x4762f8
jl 0x4764ea
cmp dword [ebp + 0x44], ebx
ja 0x4762f8
lea ecx, [ebp - 0x60]
call fcn.0043e48d
cmp dword [ebp + 0x68], ebx
je 0x476500
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_FlushFileBuffers]
lea ecx, [ebp + 0x3c]
call fcn.0043e48d
cmp byte [ebp + 0x55], bl
je 0x47651b
cmp dword [ebp + 0x68], ebx
je 0x47651b
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.DLL_SetEndOfFile]
cmp byte [ebp - 5], bl
je 0x476568
cmp dword [ebp + 0x68], ebx
je 0x476568
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 0x476568
push ebx
push 0x4db204
push str.Kernel32.DLL
push str.SetFileValidData
call fcn.0043f92c
mov eax, dword [0x4db204]
add esp, 0x10
cmp eax, ebx
je 0x476568
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.0043e48d
mov ebx, dword [ebp + 0xc]
jmp 0x4751d5