Function at 0x411e20
Capabilities:
Check if file exists
Get file size

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4ec37b
push eax
mov dword fs:[0], esp
sub esp, 0xde4
push ebx
push ebp
push esi
xor ebx, ebx
push edi
push ebx
call fcn.0041aad0
mov esi, dword [esp + 0xe08]
add esp, 4
cmp esi, ebx
je 0x412a8a
cmp word [esi], bx
je 0x412a8a
mov eax, dword [esp + 0xe08]
cmp eax, ebx
je 0x412a8a
cmp word [eax], bx
je 0x412a8a
cmp dword [0x52ddb4], ebx
jne 0x411e8e
push 0x3e6
push 2
jmp 0x412a91
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xbee]
mov word [esp + 0xbec], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0xfd]
mov byte [esp + 0xfc], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xe10]
push 0x60
push 1
mov dword [esp + 0x58], eax
push 5
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xa4]
push 0x80
mov dword [esp + 0xa4], ebx
push 0x120089
push esi
rep stosd dword es:[edi], eax
mov dword [esp + 0x58], 1
mov dword [esp + 0x54], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x7c], ebx
call fcn.00411da0
mov ebp, eax
add esp, 0x18
cmp ebp, 0xffffffff
mov dword [esp + 0x1c], ebp
jne 0x411f5f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x412911
push 0x60
push 1
push 7
push 0x80
push 0x120089
push esi
call fcn.00411da0
mov ebp, eax
add esp, 0x18
cmp ebp, 0xffffffff
mov dword [esp + 0x1c], ebp
je 0x4128b4
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebp
call fcn.00410f10
add esp, 0x1c
test eax, eax
je 0x411fa5
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x865]
mov byte [esp + 0x864], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x864]
push ecx
push ebp
stosb byte es:[edi], al
call fcn.00418740
add esp, 8
test eax, eax
jne 0x4128c8
push ebx
push ebx
push ebp
call fcn.00411130
add esp, 0xc
test eax, eax
je 0x411fe9
mov ecx, 0xdb
xor eax, eax
lea edi, [esp + 0x865]
mov byte [esp + 0x864], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push ebx
lea edx, [esp + 0x868]
push ebx
push edx
push ebp
stosb byte es:[edi], al
call fcn.00419e60
add esp, 0x10
test eax, eax
jne 0x4128f0
lea eax, [esp + 0x94]
push 0x28
push eax
push ebp
call fcn.004281a0
add esp, 0xc
test eax, eax
je 0x412918
mov esi, dword [esp + 0xe08]
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x74]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x14], ebx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x70]
push ecx
push esi
call fcn.00428320
add esp, 8
test eax, eax
je 0x41209c
mov eax, dword [esp + 0x90]
mov edi, 1
cmp eax, ebx
mov dword [esp + 0x14], edi
jne 0x41204f
cmp dword [esp + 0x8c], ebx
je 0x41209c
lea edx, [esp + 0xbec]
push edx
push 0x51a0a0
push esi
call fcn.00412b00
add esp, 0xc
test eax, eax
je 0x41208d
lea eax, [esp + 0xbec]
push eax
push esi
call fcn.00428730
add esp, 8
test eax, eax
je 0x412084
mov dword [esp + 0x2c], edi
jmp 0x41209c
push 0x453
push 0x28
jmp 0x412094
push 0x45b
push 0x24
call fcn.0041aab0
add esp, 8
mov edi, dword [esp + 0xe08]
push 0x60
push 3
push 1
push 0x80
push 0x12019f
push edi
call fcn.00411da0
mov esi, eax
add esp, 0x18
cmp esi, 0xffffffff
mov dword [esp + 0x18], esi
jne 0x4120f8
push 1
push ebx
push edi
call fcn.00428220
push 0x60
push 1
push 7
push 0x80
push 0x12019f
push edi
call fcn.00411da0
mov esi, eax
add esp, 0x24
cmp esi, 0xffffffff
mov dword [esp + 0x18], esi
je 0x412921
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x41210c
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
cmp ecx, ebx
je 0x412114
mov dword [esp + 0x3c], 1
cmp eax, ebx
mov dword [esp + 0x20], 1
je 0x412277
mov eax, dword [esp + 0x2c]
or edi, 0xffffffff
cmp eax, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
je 0x412165
push 0x60
push 1
push 7
push 0x80
lea ecx, [esp + 0xbfc]
push 0x120089
push ecx
call fcn.00411da0
add esp, 0x18
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x412169
mov dword [esp + 0x10], eax
jmp 0x412169
mov dword [esp + 0x10], esi
cmp dword [esp + 0xe0c], ebx
jne 0x412263
cmp dword [esp + 0x10], 0xffffffff
je 0x412263
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x865]
mov byte [esp + 0x864], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x864]
push edx
push eax
call fcn.00418740
add esp, 8
test eax, eax
je 0x412263
mov ecx, dword [esp + 0x864]
mov eax, dword [esp + 0x86c]
mov edx, dword [esp + 0x868]
mov dword [esp + 0xfc], ecx
mov ecx, dword [esp + 0x870]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xe10]
mov dword [esp + 0x108], ecx
mov ecx, 0x66
lea esi, [esp + 0x8ac]
lea edi, [esp + 0x144]
mov dword [esp + 0x100], edx
cmp eax, ebx
mov dword [esp + 0x20], ebx
rep movsd dword es:[edi], dword [esi]
jne 0x412263
mov eax, dword [esp + 0xbe4]
cmp eax, ebx
jbe 0x412263
push eax
call fcn.004d2462
mov ecx, dword [esp + 0xbe8]
mov edx, eax
mov esi, ecx
xor eax, eax
mov edi, edx
mov dword [esp + 0x54], edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0xbe8]
lea eax, [esp + 0x38]
push eax
push ecx
push edx
mov edx, dword [esp + 0x20]
push edx
mov dword [esp + 0x48], ebx
call fcn.00418920
add esp, 0x14
mov eax, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x412273
push eax
call dword [0x531db0]
mov esi, dword [esp + 0x18]
mov ecx, 0xf7
xor eax, eax
lea edi, [esp + 0x485]
mov byte [esp + 0x484], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x484]
push ecx
stosb byte es:[edi], al
call fcn.0041f2a0
add esp, 4
test eax, eax
je 0x41292a
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xfc]
push edx
push eax
call fcn.0041f3d0
add esp, 8
test eax, eax
je 0x412933
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0xbd]
mov byte [esp + 0xbc], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x54]
lea edx, [esp + 0x5c]
stosb byte es:[edi], al
push ecx
lea eax, [esp + 0x34]
push edx
mov edx, dword [esp + 0x2f8]
push eax
mov eax, dword [esp + 0x2f4]
lea ecx, [esp + 0xc8]
push 0x40
push ecx
mov ecx, dword [esp + 0x130]
push edx
push eax
push ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x50], ebx
call fcn.004257c0
add esp, 0x20
cmp eax, ebx
mov dword [esp + 0x34], eax
je 0x41293c
push eax
call fcn.00410a20
add esp, 4
cmp eax, ebx
mov dword [esp + 0x24], eax
je 0x412945
lea edx, [esp + 0x48]
mov dword [esp + 0x48], ebx
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
mov eax, dword [esp + 0x48]
push eax
push edi
push esi
call fcn.00412ac0
add esp, 0xc
test eax, eax
je 0x41294e
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], 1
cmp eax, ebx
je 0x41238f
mov eax, dword [esp + 0x4a8]
or al, 8
mov dword [esp + 0x4a8], eax
cmp dword [esp + 0x54], ebx
je 0x4123a5
mov eax, dword [esp + 0x4a8]
or al, 0x10
mov dword [esp + 0x4a8], eax
push ebp
call fcn.00425ba0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x110], eax
mov dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x128]
mov dword [esp + 0x124], edx
push eax
lea edx, [esp + 0xc4]
push ecx
push edx
mov dword [esp + 0x120], ebx
mov dword [esp + 0x124], edi
call fcn.004293c0
lea eax, [esp + 0x494]
mov dword [esp + 0x144], 0x3e0
push eax
mov dword [esp + 0x14c], ebx
mov dword [esp + 0x150], ebx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x488], ebx
mov dword [esp + 0x48c], ebx
mov dword [esp + 0x490], ebx
mov dword [esp + 0x494], ebx
call fcn.0041f300
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
add esp, 0x14
push ebx
push ebx
push ebx
push esi
call edi
lea ecx, [esp + 0x484]
push 0x3e0
push ecx
push esi
call fcn.00419040
add esp, 0xc
test eax, eax
je 0x412957
push ebx
push ebx
push ebx
push ebp
call edi
mov edx, dword [esp + 0x134]
push ebx
push ebx
push edx
push esi
call edi
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x118]
cmp eax, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
jne 0x4124a8
cmp ecx, ebx
jne 0x4124a8
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ebx
jmp 0x4126fb
cmp ecx, ebx
mov esi, 0x10000
jne 0x4124b7
cmp eax, esi
jae 0x4124b7
mov esi, eax
push esi
call fcn.004d2462
mov ecx, dword [esp + 0x28]
add esp, 4
mov ebp, eax
mov eax, dword [ecx]
push esi
call dword [eax + 8]
add eax, 4
push eax
mov dword [esp + 0x64], eax
call fcn.004d2462
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x68], ebx
push ebx
push ebx
push ecx
push edx
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, esi
xor eax, eax
mov edx, ecx
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push ebx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x2c]
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x50]
push eax
push esi
push ebp
push ecx
mov dword [esp + 0x60], ebx
call fcn.00428510
add esp, 0x14
test eax, eax
je 0x412635
mov eax, dword [esp + 0x4c]
cmp eax, esi
jae 0x412566
cmp eax, ebx
mov dword [esp + 0x14], 1
je 0x4126c8
lea edx, [esp + 0x68]
lea ecx, [esp + 0x20]
push edx
lea edx, [esp + 0x3c]
push ecx
push edx
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x34]
push ecx
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x48]
push ebp
lea ecx, [esp + 0xd8]
push eax
push ecx
push edx
mov dword [esp + 0x60], ebx
call fcn.0041fb10
add esp, 0x28
cmp eax, ebx
jne 0x41263e
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
add ecx, 4
push eax
push ecx
call fcn.004293a0
mov edx, dword [esp + 0x30]
push ebx
mov dword [edx], eax
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x64]
add ecx, 4
push eax
mov eax, dword [esp + 0x28]
push ecx
push edx
push eax
mov dword [esp + 0x74], ebx
call fcn.00428570
add esp, 0x1c
test eax, eax
je 0x4126aa
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jb 0x4126b1
cmp dword [esp + 0x138], ebx
jne 0x41260e
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + 0x138]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x14]
inc ecx
cmp eax, ebx
mov dword [esp + 0x138], ecx
je 0x412501
jmp 0x4126c8
push 0x540
push 0xd
jmp 0x4126b8
jge 0x4126a1
push 0x52cb30
lea ecx, [esp + 0x28]
call fcn.0044fec0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
push 0x554
push edx
mov edx, dword [esp + 0xe0c]
push eax
push ecx
push edx
lea eax, [esp + 0x38]
push str.Error:_Encrypt_Data_Failed__File_s__Algrithm_d__DataLen_lu_KeyLen_lu__LINE_d
push eax
mov dword [esp + 0xe18], ebx
call fcn.004535e0
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00427050
add esp, 0x20
lea ecx, [esp + 0x24]
mov dword [esp + 0xdfc], 0xffffffff
call fcn.00450660
push 0x558
push 0x11
jmp 0x4126b8
push 0x562
jmp 0x4126b6
push 0x569
push 0xe
call fcn.0041aab0
add esp, 8
mov dword [esp + 0x10], 1
cmp ebp, ebx
je 0x4126d5
push ebp
call fcn.004d248b
add esp, 4
mov eax, dword [esp + 0x6c]
cmp eax, ebx
je 0x4126e6
push eax
call fcn.004d248b
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x4126fb
push eax
call fcn.004d248b
add esp, 4
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [esp + 0x14], ebx
je 0x412976
cmp dword [esp + 0x10], ebx
jne 0x412976
test byte [esp + 0xe18], 4
je 0x41273d
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x64]
lea ecx, [esp + 0x44]
push eax
push ecx
push esi
call fcn.00426910
add esp, 0xc
jmp 0x412741
mov esi, dword [esp + 0x1c]
cmp esi, 0xffffffff
je 0x412755
push esi
call dword [0x531db0]
mov dword [esp + 0x1c], 0xffffffff
mov edi, dword [esp + 0x50]
cmp edi, ebx
je 0x412835
mov eax, dword [esp + 0x138]
cmp eax, ebx
jne 0x412780
mov dword [esp + 0x474], 0x3e0
mov dword [esp + 0x478], ebx
jmp 0x4127b3
mov edx, dword [esp + 0x13c]
push ebx
dec eax
push edx
push ebx
push eax
call fcn.00438280
mov ecx, dword [esp + 0x140]
xor esi, esi
add eax, ecx
adc edx, esi
add eax, 0x3e0
adc edx, ebx
mov dword [esp + 0x474], eax
mov dword [esp + 0x478], edx
mov eax, dword [esp + 0x4a4]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0xfc]
push edi
push edx
push eax
push esi
call fcn.004190b0
add esp, 0x10
test eax, eax
je 0x412824
mov eax, dword [esp + 0x4a8]
push edi
or al, 4
mov dword [esp + 0x4ac], eax
call fcn.00429480
add esp, 4
test eax, eax
jne 0x412802
mov eax, dword [esp + 0x4a8]
or al, 1
mov dword [esp + 0x4a8], eax
add edi, 0x10
push edi
call fcn.00429480
add esp, 4
test eax, eax
jne 0x412839
mov eax, dword [esp + 0x4a8]
or al, 2
mov dword [esp + 0x4a8], eax
jmp 0x412839
push 0x5a5
push 0x10
call fcn.0041aab0
add esp, 8
jmp 0x412839
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x484]
push ecx
call fcn.0041f340
lea edx, [esp + 0x100]
lea eax, [esp + 0x488]
push edx
push eax
call fcn.0041f130
add esp, 0xc
test eax, eax
je 0x41295e
push ebx
push ebx
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea ecx, [esp + 0x484]
push 0x3e0
push ecx
push esi
call fcn.00419040
add esp, 0xc
test eax, eax
je 0x412967
test byte [esp + 0xe18], 2
je 0x4128ab
lea edx, [esp + 0x94]
push 0x28
push edx
push esi
call fcn.004281e0
add esp, 0xc
mov dword [esp + 0x40], ebx
jmp 0x412976
push 0x416
push 3
call fcn.0041aab0
add esp, 8
jmp 0x412996
push ebp
call dword [0x531db0]
mov eax, dword [esp + 0xe18]
mov ecx, dword [esp + 0xe08]
push eax
push ebx
push ecx
push esi
call fcn.00416070
add esp, 0x10
xor eax, eax
jmp 0x412a9e
push ebp
call dword [0x531db0]
mov edx, dword [esp + 0xe18]
mov eax, dword [esp + 0xe08]
push edx
push ebx
push eax
push esi
call fcn.00416070
add esp, 0x10
xor eax, eax
jmp 0x412a9e
push 0x43b
push 5
jmp 0x41296e
push 0x47a
push 4
jmp 0x41296e
push 0x4be
push 7
jmp 0x41296e
push 0x4c5
push 8
jmp 0x41296e
push 0x4d4
push 0xb
jmp 0x41296e
push 0x4db
push 0xc
jmp 0x41296e
push 0x4e9
push 0x25
jmp 0x41296e
push 0x511
jmp 0x41296c
push 0x5af
push 0x13
jmp 0x41296e
push 0x5b7
push 0x10
call fcn.0041aab0
add esp, 8
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x412986
push eax
call dword [0x531db0]
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x412996
push eax
call dword [0x531db0]
mov eax, dword [esp + 0xe10]
mov esi, dword [esp + 0xe08]
mov edi, dword [esp + 0x40]
cmp eax, ebx
jne 0x4129bd
mov eax, dword [esp + 0x50]
cmp eax, ebx
je 0x4129bd
push eax
call fcn.004d248b
add esp, 4
cmp edi, ebx
jne 0x4129f4
cmp dword [0x52e368], ebx
je 0x412a59
lea ecx, [esp + 0xfc]
push ecx
push esi
call fcn.0041a150
add esp, 8
test eax, eax
jne 0x412a59
push 0x5d0
push 0x1c
call fcn.0041aab0
add esp, 8
or edi, 0xffffffff
cmp dword [esp + 0x3c], ebx
je 0x412a05
push 1
push esi
call fcn.00428420
add esp, 8
cmp dword [esp + 0x2c], ebx
je 0x412a44
lea ecx, [esp + 0xbec]
push esi
push ecx
call fcn.00428730
add esp, 8
test eax, eax
jne 0x412a44
mov eax, dword [esp + 0xe14]
or edi, 0xffffffff
cmp eax, ebx
je 0x412a44
lea edx, [esp + 0xbec]
push 0x103
push edx
push eax
call fcn.004374c4
add esp, 0xc
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x412a55
push eax
call fcn.004d248b
add esp, 4
mov eax, edi
jmp 0x412a9e
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x412a70
mov edx, dword [esp + 0x64]
push edx
push eax
push esi
call fcn.0041a100
add esp, 0xc
cmp dword [esp + 0x2c], ebx
je 0x412a44
lea eax, [esp + 0xbec]
push 1
push eax
call fcn.00428420
add esp, 8
jmp 0x412a44
push 0x3e0
push 1
call fcn.0041aab0
add esp, 8
mov eax, 1
mov ecx, dword [esp + 0xdf4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xdf0
ret