Function at 0x4d061c
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x14
push 0
push 0
dec ecx
jne 0x4d0624
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d1159
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x4bcdf0]
call fcn.00402e7c
mov dword [ebp - 0x10], eax
mov dl, 1
mov eax, dword [0x40fee4]
call fcn.00402e7c
mov dword [ebp - 0x28], eax
mov eax, dword [0x53bbbc]
mov edx, dword [eax]
mov dword [0x53df80], edx
mov edx, dword [eax + 4]
mov dword [0x53df84], edx
mov eax, dword [0x53bbbc]
mov edx, dword [eax]
mov dword [0x53df88], edx
mov edx, dword [eax + 4]
mov dword [0x53df8c], edx
mov dword [0x53df90], 0
mov dword [0x53df94], 0
mov eax, 0x53df98
mov edx, 0x4d1170
call fcn.00403c4c
mov eax, dword [0x53df48]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x4d10f9
inc eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
mov eax, dword [0x53df48]
call fcn.00411b18
mov ebx, eax
cmp byte [ebx + 0x18], 2
jne 0x4d10ed
cmp dword [ebx + 0xc], 0
jne 0x4d06f6
cmp dword [ebx + 8], 0x7d000
ja 0x4d0a54
jmp 0x4d06fc
jg 0x4d0a54
lea eax, [ebp - 0x50]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x50]
lea edx, [ebp - 0x4c]
call fcn.004bedd4
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.00433cf8
mov eax, dword [ebp - 0x28]
mov edx, dword [eax]
call dword [edx + 8]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x4bcdf0]
call fcn.00402e7c
mov dword [ebp - 0x14], eax
mov eax, dword [0x53becc]
mov eax, dword [eax]
call eax
add eax, dword [ebp - 0x18]
mov edx, dword [0x53df48]
mov esi, dword [edx + 8]
dec esi
sub esi, eax
jl 0x4d085a
inc esi
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov eax, dword [0x53df48]
call fcn.00411b18
mov ebx, eax
cmp byte [ebx + 0x18], 2
jne 0x4d0850
cmp dword [ebx + 0xc], 0
jne 0x4d0793
cmp dword [ebx + 8], 0x7d000
jbe 0x4d0799
jmp 0x4d0850
jg 0x4d0850
mov byte [ebx + 0x18], 0
lea eax, [ebp - 0x54]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x54]
mov dx, 0x20
call fcn.004bd720
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4d0841
mov eax, dword [ebp - 0x14]
call fcn.00413ff8
mov dword [ebp - 0x30], eax
lea edx, [ebp - 0x1c]
mov ecx, 4
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 8]
xor ecx, ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
call fcn.004140bc
cdq
cmp edx, dword [ebx + 0xc]
jne 0x4d0807
cmp eax, dword [ebx + 8]
jne 0x4d0807
mov edx, ebx
mov eax, dword [ebp - 0x28]
call fcn.004119bc
mov eax, dword [ebx + 8]
add dword [ebp - 0x2c], eax
jmp 0x4d0812
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
call fcn.00414008
mov eax, dword [0x53c2c8]
cmp byte [eax], 0
je 0x4d0839
mov eax, dword [0x53c020]
mov edx, dword [0x53c028]
add edx, 0x10c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x4d0841
mov eax, dword [ebp - 8]
call fcn.00402eac
mov eax, dword [ebp - 0x14]
call fcn.00414014
cmp eax, 0x400000
jg 0x4d085a
inc dword [ebp - 0x1c]
dec esi
jne 0x4d0766
mov eax, dword [ebp - 0x14]
mov dword [0x53df2e], eax
mov eax, dword [ebp - 0x18]
shl eax, 8
mov edx, dword [0x53b974]
mov edx, dword [edx]
shr edx, 8
add eax, edx
mov dword [0x53df3a], eax
mov edx, 0x20
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx]
mov edx, 0x20
mov eax, dword [ebp - 0x10]
call fcn.00414008
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 4]
mov byte [esi + 0xd], 0xc
mov byte [esi + 0xc], 0xd6
mov eax, dword [ebp - 0x10]
call fcn.00414014
mov dword [esi + 4], eax
mov byte [esi + 0xe], 0
mov eax, dword [0x53becc]
mov eax, dword [eax]
call eax
mov edx, dword [0x53df3a]
mov dword [esi + eax*4 + 0x10], edx
mov eax, dword [ebp - 0x14]
call fcn.00414014
mov dword [esi + 0x14], eax
mov eax, esi
call fcn.004d049c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
xor edx, edx
call fcn.004c6098
mov eax, dword [0x53be68]
cmp byte [eax], 7
je 0x4d090f
mov eax, dword [0x53df2e]
call fcn.00414014
test eax, eax
jle 0x4d090f
mov eax, dword [ebp - 0x2c]
push eax
push 1
mov cl, 1
mov dl, 4
mov eax, dword [ebp - 4]
call fcn.004cfa90
cmp byte [0x53df2c], 0
jne 0x4d0a1c
mov eax, dword [ebp - 0x2c]
cdq
add dword [0x53df0c], eax
adc dword [0x53df10], edx
cmp dword [0x53df08], 0
jne 0x4d0940
cmp dword [0x53df04], 0
jbe 0x4d097a
jmp 0x4d0942
jle 0x4d097a
push dword [0x53df08]
push dword [0x53df04]
push 0
push 0x64
mov eax, dword [0x53df0c]
mov edx, dword [0x53df10]
call fcn.004067a4
call fcn.004067ea
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2ec]
call fcn.004c6098
jmp 0x4d098d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2ec]
mov edx, 0x64
call fcn.004c6098
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
mov edx, 0x64
call fcn.004c6098
lea eax, [ebp - 0x20]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x44]
call fcn.00403db0
push dword [0x53df10]
push dword [0x53df0c]
lea eax, [ebp - 0x58]
call fcn.004ce850
mov ecx, dword [ebp - 0x58]
lea eax, [ebp - 0x20]
mov edx, 0x4d117c
call fcn.004ce9e4
mov eax, dword [0x53df04]
mov edx, dword [0x53df08]
sub eax, dword [0x53df0c]
sbb edx, dword [0x53df10]
push edx
push eax
lea eax, [ebp - 0x5c]
call fcn.004ce850
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x20]
mov edx, 0x4d1188
call fcn.004ce9e4
mov eax, dword [0x50e6c4]
mov eax, dword [eax + 0x2e0]
mov edx, dword [ebp - 0x20]
call fcn.00433cf8
mov eax, dword [0x53c2c8]
cmp byte [eax], 0
je 0x4d0a47
mov eax, dword [0x53c020]
mov edx, dword [0x53c028]
add edx, 0x10c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00402b1c
jne 0x4d10c8
mov eax, dword [ebp - 0x14]
call fcn.00402eac
jmp 0x4d10c8
mov byte [ebp - 0x39], 0
mov eax, dword [0x53b948]
cmp dword [eax], 0
je 0x4d0ae0
push dword [0x53df5c]
push dword [ebx]
push 0x4d1194
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.00403f38
mov eax, dword [0x53b948]
push dword [eax]
lea edx, [ebp - 0x60]
mov eax, dword [0x53df5c]
call fcn.0040961c
push dword [ebp - 0x60]
push dword [ebx]
push 0x4d1194
lea eax, [ebp - 0x44]
mov edx, 4
call fcn.00403f38
mov eax, dword [ebp - 0x40]
call fcn.00409260
inc eax
je 0x4d0afa
lea edx, [ebp - 0x64]
mov eax, dword [ebp - 0x44]
call fcn.004095c0
mov eax, dword [ebp - 0x64]
call fcn.00462398
push 2
lea eax, [ebp - 0x44]
call fcn.00404048
push eax
lea eax, [ebp - 0x40]
call fcn.00404048
push eax
call sub.kernel32.dll_MoveFileExA
jmp 0x4d0afa
push dword [0x53df5c]
push dword [ebx]
push 0x4d1194
lea eax, [ebp - 0x44]
mov edx, 3
call fcn.00403f38
cmp dword [ebx + 0xc], 0
jne 0x4d0b0b
cmp dword [ebx + 8], 0x500000
jae 0x4d0b19
jmp 0x4d0b0d
jge 0x4d0b19
mov eax, dword [ebp - 0x44]
call fcn.004092c8
test al, al
je 0x4d0b95
lea eax, [ebp - 0x68]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x44]
call fcn.004d058c
test al, al
jne 0x4d0b95
lea eax, [ebp - 0x6c]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x600]
call fcn.00403db0
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00433cf8
mov eax, dword [0x53c268]
cmp dword [eax], 0
jne 0x4d0b95
push 1
lea edx, [ebp - 0x70]
mov eax, dword [ebx]
call fcn.0040961c
mov eax, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x74]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x44]
pop ecx
call fcn.0050345c
lea eax, [ebp - 0x78]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x68]
call fcn.00403db0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d8]
call fcn.00433cf8
lea eax, [ebp - 0x7c]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x44]
call fcn.004d058c
test al, al
je 0x4d0d0e
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x44]
call fcn.0040961c
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.00433cf8
mov dl, 1
mov eax, dword [0x4106bc]
call fcn.00402e7c
mov edi, eax
mov edx, dword [ebp - 0x44]
mov eax, edi
call fcn.00414440
mov dword [0x53df2e], edi
mov eax, dword [ebp - 0x18]
add eax, 0x2710
shl eax, 8
mov edx, dword [0x53b974]
mov edx, dword [edx]
shr edx, 8
add eax, edx
mov dword [0x53df3a], eax
mov edx, 0x20
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx]
mov edx, 0x20
mov eax, dword [ebp - 0x10]
call fcn.00414008
mov edx, dword [ebx]
mov eax, dword [ebp - 0x10]
call fcn.004bd530
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 4]
mov byte [esi + 0xd], 0xc
mov byte [esi + 0xc], 0xe0
mov eax, dword [ebp - 0x10]
call fcn.00414014
mov dword [esi + 4], eax
mov byte [esi + 0xe], 0
mov eax, dword [0x53df3a]
mov dword [esi + 0x10], eax
mov eax, edi
call fcn.00414014
mov dword [esi + 0x14], eax
mov eax, esi
call fcn.004d049c
mov eax, dword [ebp - 0x10]
call fcn.00414014
test eax, eax
jns 0x4d0c9d
add eax, 0x3ffff
sar eax, 0x12
call fcn.004beaa4
mov byte [ebp - 0x21], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
xor edx, edx
call fcn.004c6098
mov eax, dword [0x53be68]
cmp byte [eax], 7
je 0x4d0cd8
push 0
push 1
mov cl, byte [ebp - 0x21]
mov dl, 5
mov eax, dword [ebp - 4]
call fcn.004cfa90
mov byte [ebp - 0x39], 1
cmp byte [0x53df2c], 0
jne 0x4d0d07
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
mov edx, 0x64
call fcn.004c6098
lea eax, [ebp - 0x20]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x44]
call fcn.00403db0
mov eax, edi
call fcn.00402eac
mov eax, dword [0x53be68]
cmp byte [eax], 7
je 0x4d10c8
lea eax, [ebp - 0x88]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov edx, dword [ebp - 0x88]
lea eax, [ebp - 0x84]
call fcn.004043fc
mov eax, dword [ebp - 0x84]
mov dx, 0x20
call fcn.004bd6d0
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4d10c8
lea eax, [ebp - 0x90]
mov ecx, dword [ebx]
mov edx, dword [0x53df5c]
call fcn.00403ec4
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004bedd4
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2dc]
call fcn.00433cf8
mov eax, dword [ebp - 0xc]
mov dword [0x53df2e], eax
mov eax, dword [ebp - 0x18]
shl eax, 8
mov edx, dword [0x53b974]
mov edx, dword [edx]
shr edx, 8
add eax, edx
mov dword [0x53df3a], eax
mov eax, dword [ebp - 0xc]
call fcn.00490b78
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
mov eax, dword [0x53b974]
mov eax, dword [eax]
cdq
push edx
push eax
mov eax, dword [0x53b974]
mov eax, dword [eax]
cdq
add eax, dword [ebp - 0x38]
adc edx, dword [ebp - 0x34]
sub eax, 1
sbb edx, 0
call fcn.004067ea
mov esi, eax
mov dword [0x53df36], esi
push esi
mov eax, 0x53df32
mov ecx, 1
mov edx, dword [0x4ce4c4]
call fcn.004057f8
add esp, 4
mov eax, dword [0x53df6c]
call fcn.004e2190
cmp byte [ebp - 0x39], 0
je 0x4d0e21
mov al, 1
mov byte [0x53df2d], 0
jmp 0x4d0e2a
xor eax, eax
mov byte [0x53df2d], 1
mov esi, dword [0x53df36]
dec esi
test esi, esi
jl 0x4d0e4f
inc esi
mov dword [ebp - 0x1c], 0
mov edx, dword [0x53df32]
mov ecx, dword [ebp - 0x1c]
mov byte [edx + ecx], al
inc dword [ebp - 0x1c]
dec esi
jne 0x4d0e3d
mov edx, 0x20
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx]
mov edx, 0x20
mov eax, dword [ebp - 0x10]
call fcn.00414008
lea edx, [ebp - 0x38]
mov ecx, 8
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
call dword [esi + 8]
mov edx, dword [ebx]
mov eax, dword [ebp - 0x10]
call fcn.004bd530
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 4]
mov byte [esi + 0xd], 0xc
mov byte [esi + 0xc], 0xd0
mov eax, dword [ebp - 0x10]
call fcn.00414014
mov dword [esi + 4], eax
mov byte [esi + 0xe], 0
mov eax, dword [0x53df3a]
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 4]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x1c], eax
mov byte [0x53df70], 0
mov eax, esi
call fcn.004d049c
mov eax, 0xa
call fcn.004beaa4
cmp byte [0x53df70], 0
je 0x4d0f15
mov eax, dword [0x53df6c]
call fcn.004e2190
mov byte [0x53df2d], 1
cmp byte [ebp - 0x39], 0
je 0x4d0f15
mov esi, dword [0x53df36]
dec esi
test esi, esi
jl 0x4d0f15
inc esi
mov dword [ebp - 0x1c], 0
mov eax, dword [0x53df32]
mov edx, dword [ebp - 0x1c]
mov byte [eax + edx], 0
inc dword [ebp - 0x1c]
dec esi
jne 0x4d0f03
lea edx, [ebp - 0x94]
mov eax, dword [ebx]
call fcn.004bd188
mov eax, dword [ebp - 0x94]
push eax
lea eax, [ebp - 0x98]
mov edx, dword [0x53b830]
call fcn.00403e1c
mov eax, dword [ebp - 0x98]
pop edx
call fcn.004bd448
xor al, 1
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
xor edx, edx
call fcn.004c6098
mov eax, dword [0x53be68]
cmp byte [eax], 7
je 0x4d0f8c
mov eax, dword [ebp - 0xc]
call fcn.00490b78
cmp edx, 0
jne 0x4d0f79
cmp eax, 0
jbe 0x4d0f8c
jmp 0x4d0f7b
jle 0x4d0f8c
push 0
push 0
mov cl, byte [ebp - 0x21]
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004cfa90
cmp byte [0x53df2c], 0
jne 0x4d10a7
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
add dword [0x53df0c], eax
adc dword [0x53df10], edx
cmp dword [0x53df08], 0
jne 0x4d0fbf
cmp dword [0x53df04], 0
jbe 0x4d0ff9
jmp 0x4d0fc1
jle 0x4d0ff9
push dword [0x53df08]
push dword [0x53df04]
push 0
push 0x64
mov eax, dword [0x53df0c]
mov edx, dword [0x53df10]
call fcn.004067a4
call fcn.004067ea
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2ec]
call fcn.004c6098
jmp 0x4d100c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2ec]
mov edx, 0x64
call fcn.004c6098
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e8]
mov edx, 0x64
call fcn.004c6098
lea eax, [ebp - 0x20]
mov edx, dword [0x53b780]
mov edx, dword [edx]
mov edx, dword [edx + 0x44]
call fcn.00403db0
push dword [0x53df10]
push dword [0x53df0c]
lea eax, [ebp - 0x9c]
call fcn.004ce850
mov ecx, dword [ebp - 0x9c]
lea eax, [ebp - 0x20]
mov edx, 0x4d117c
call fcn.004ce9e4
mov eax, dword [0x53df04]
mov edx, dword [0x53df08]
sub eax, dword [0x53df0c]
sbb edx, dword [0x53df10]
push edx
push eax
lea eax, [ebp - 0xa0]
call fcn.004ce850
mov ecx, dword [ebp - 0xa0]
lea eax, [ebp - 0x20]
mov edx, 0x4d1188
call fcn.004ce9e4
mov eax, dword [0x50e6c4]
mov eax, dword [eax + 0x2e0]
mov edx, dword [ebp - 0x20]
call fcn.00433cf8
mov eax, dword [0x53bd5c]
cmp dword [eax], 0x17ec04
je 0x4d10c0
mov eax, 0x4d11a8
call fcn.004f3218
jmp 0x4d10c8
mov eax, dword [ebp - 0xc]
call fcn.00402eac
mov eax, dword [0x53bcfc]
cmp byte [eax], 0
je 0x4d10da
mov eax, dword [0x53be68]
mov byte [eax], 7
mov eax, dword [0x53be68]
cmp byte [eax], 7
je 0x4d10f9
cmp dword [0x53df78], 0
jle 0x4d10f9
inc dword [ebp - 0x18]
dec dword [ebp - 0x48]
jne 0x4d06c8
mov eax, dword [ebp - 0x28]
call fcn.00402eac
mov eax, dword [ebp - 0x10]
call fcn.00402eac
call fcn.004f87f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d1160
lea eax, [ebp - 0xa0]
mov edx, 7
call fcn.00403c1c
lea eax, [ebp - 0x84]
call fcn.004042bc
lea eax, [ebp - 0x80]
mov edx, 0xe
call fcn.00403c1c
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.00403c1c
lea eax, [ebp - 0x20]
call fcn.00403bf8
ret