Function at 0x41a420
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x4ec3db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x88
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x59]
mov byte [esp + 0x58], bl
mov esi, dword [esp + 0xb4]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x38]
push eax
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esi + 0x1f4]
push edx
mov edx, dword [esi + 0x1ec]
lea eax, [esp + 0x64]
push 0x40
push eax
mov eax, dword [esi + 0x20]
push ecx
push edx
push eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x44], ebx
call fcn.004257c0
add esp, 0x20
cmp eax, ebx
mov dword [esp + 0x3c], eax
je 0x41a947
push eax
call fcn.00410a20
add esp, 4
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x41a950
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0x28]
push ecx
push edx
mov dword [esp + 0x30], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0xac]
push ecx
push eax
push edi
mov dword [esp + 0x2c], eax
call fcn.00412ac0
add esp, 0xc
test eax, eax
je 0x41a959
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0xb0]
cmp eax, ebx
mov dword [edx], 1
je 0x41a51a
mov eax, dword [ebp + 0x24]
or al, 8
mov dword [ebp + 0x24], eax
cmp dword [esp + 0x4c], ebx
je 0x41a528
mov eax, dword [ebp + 0x24]
or al, 0x10
mov dword [ebp + 0x24], eax
mov eax, dword [esp + 0xa8]
push eax
call fcn.00425ba0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x28]
lea ecx, [esi + 0x28]
mov dword [esi + 0x24], eax
push ecx
lea eax, [esp + 0x60]
push edx
push eax
mov dword [esi + 0x14], ebx
call fcn.004293c0
mov ecx, dword [esp + 0xb8]
add esp, 0x10
mov dword [esi + 0x38], 0x3e0
mov dword [esi + 0x3c], ebx
push ebx
push ebx
push ebx
push ecx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x378], ebx
mov dword [esi + 0x37c], ebx
mov dword [esi + 0x380], ebx
mov dword [esi + 0x384], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebp
call fcn.0041f300
push 0x3e0
push ebp
push edi
call fcn.00419040
add esp, 0x10
test eax, eax
je 0x41a962
mov eax, dword [esi + 0x18]
mov dword [esp + 0x2c], ebx
cmp eax, ebx
mov dword [esp + 0x10], ebx
jne 0x41a5eb
cmp dword [esi + 0x1c], ebx
jne 0x41a5eb
mov dword [esp + 0x2c], 1
mov dword [esp + 0x10], ebx
jmp 0x41a82a
mov ecx, dword [esi + 0x1c]
mov ebp, 0x10000
cmp ecx, ebx
jne 0x41a5fd
cmp eax, ebp
jae 0x41a5fd
mov ebp, eax
push ebp
call fcn.004d2462
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x48], eax
mov edx, dword [ecx]
push ebp
call dword [edx + 8]
add eax, 4
push eax
mov dword [esp + 0x48], eax
call fcn.004d2462
add esp, 4
mov dword [esp + 0x54], eax
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x38]
push ebx
push ebx
push eax
push edi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x60], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov edi, dword [esp + 0x48]
mov ecx, ebp
mov edx, ecx
xor eax, eax
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 + 0x48]
mov edi, dword [esp + 0x1c]
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 edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0xac]
lea eax, [esp + 0x38]
mov dword [esp + 0x38], ebx
push eax
push ebp
push edi
push ecx
call fcn.00428510
add esp, 0x14
test eax, eax
je 0x41a751
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x41a75a
lea edx, [esp + 0x50]
lea ecx, [esp + 0x30]
push edx
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x24]
push ecx
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x3c]
push edi
lea ecx, [esp + 0x74]
push eax
push ecx
push edx
mov dword [esp + 0x44], ebx
call fcn.0041fb10
add esp, 0x28
cmp eax, ebx
jne 0x41a767
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add ecx, 4
push eax
push ecx
call fcn.004293a0
mov edx, dword [esp + 0x20]
push ebx
mov dword [edx], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
add ecx, 4
push eax
mov eax, dword [esp + 0xbc]
push ecx
push edx
push eax
mov dword [esp + 0x3c], ebx
call fcn.00428570
add esp, 0x1c
test eax, eax
je 0x41a7cb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add ecx, 4
cmp eax, ecx
jb 0x41a7d2
mov eax, dword [esi + 0x3c]
cmp eax, ebx
jne 0x41a745
mov dword [esi + 0x40], ecx
inc eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x3c], eax
jmp 0x41a641
push 0x1c09
push 0xd
jmp 0x41a7d9
mov dword [esp + 0x2c], 1
jmp 0x41a7e9
jge 0x41a7c2
push 0x52cb30
lea ecx, [esp + 0x18]
call fcn.0044fec0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
push 0x1c1c
push edx
push eax
push ecx
lea edx, [esp + 0x24]
push str.Error:_Encrypt_Data_Failed__File__Algrithm_d__DataLen_lu_KeyLen_lu__LINE_d
push edx
mov dword [esp + 0xb8], ebx
call fcn.004535e0
mov eax, dword [esp + 0x2c]
push eax
call fcn.00427050
add esp, 0x1c
lea ecx, [esp + 0x14]
mov dword [esp + 0xa0], 0xffffffff
call fcn.00450660
push 0x1c20
push 0x11
jmp 0x41a7d9
push 0x1c2a
jmp 0x41a7d7
push 0x1c31
push 0xe
call fcn.0041aab0
add esp, 8
mov dword [esp + 0x10], 1
cmp edi, ebx
je 0x41a7f6
push edi
call fcn.004d248b
add esp, 4
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x41a807
push eax
call fcn.004d248b
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x41a81c
push eax
call fcn.004d248b
add esp, 4
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
push edi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
cmp dword [esp + 0x2c], ebx
je 0x41a981
cmp dword [esp + 0x10], ebx
jne 0x41a981
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x40], 1
cmp eax, ebx
je 0x41a914
mov eax, dword [esi + 0x3c]
cmp eax, ebx
jne 0x41a875
mov dword [esi + 0x378], 0x3e0
mov dword [esi + 0x37c], ebx
jmp 0x41a8a5
mov ecx, dword [esi + 0x40]
push ebx
dec eax
push ecx
push ebx
push eax
call fcn.00438280
mov ecx, dword [esi + 0x44]
xor edi, edi
add eax, ecx
adc edx, edi
mov edi, dword [esp + 0xac]
add eax, 0x3e0
adc edx, ebx
mov dword [esi + 0x378], eax
mov dword [esi + 0x37c], edx
mov edx, dword [esp + 0xb8]
mov eax, dword [ebp + 0x20]
push edx
push esi
push eax
push edi
call fcn.0041beb0
add esp, 0x10
test eax, eax
je 0x41a905
mov ecx, dword [ebp + 0x24]
or ecx, 4
mov dword [ebp + 0x24], ecx
mov ecx, dword [esp + 0xb8]
push ecx
call fcn.00429480
add esp, 4
test eax, eax
jne 0x41a8e4
mov eax, dword [ebp + 0x24]
or al, 1
mov dword [ebp + 0x24], eax
mov edx, dword [esp + 0xb8]
add edx, 0x10
push edx
call fcn.00429480
add esp, 4
test eax, eax
jne 0x41a914
mov eax, dword [ebp + 0x24]
or al, 2
mov dword [ebp + 0x24], eax
jmp 0x41a914
push 0x1c76
push 0x10
call fcn.0041aab0
add esp, 8
push ebp
call fcn.0041f340
push esi
push ebp
call fcn.0041f130
add esp, 0xc
test eax, eax
je 0x41a969
push ebx
push ebx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x3e0
push ebp
push edi
call fcn.00419040
add esp, 0xc
test eax, eax
je 0x41a972
jmp 0x41a981
push 0x1b9e
push 0xb
jmp 0x41a979
push 0x1ba5
push 0xc
jmp 0x41a979
push 0x1bb4
push 0x25
jmp 0x41a979
push 0x1bdf
jmp 0x41a977
push 0x1c80
push 0x13
jmp 0x41a979
push 0x1c88
push 0x10
call fcn.0041aab0
add esp, 8
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x40]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x94
ret