Function at 0x411980
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e0
mov eax, dword [0x438330]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov byte [ebp - 0x2c], 0
xor eax, eax
mov dword [ebp - 0x2b], eax
mov dword [ebp - 0x27], eax
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1f], eax
mov dword [ebp - 0x1b], eax
mov dword [ebp - 0x17], eax
mov dword [ebp - 0x13], eax
mov word [ebp - 0xf], ax
mov byte [ebp - 0xd], al
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x23c], 0
push 0x1ee
push 0
lea eax, [ebp - 0x238]
push eax
call fcn.00418940
add esp, 0xc
mov byte [ebp - 0x29c], 0
push 0x5f
push 0
lea eax, [ebp - 0x29b]
push eax
call fcn.00418940
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
push str._iReadKeyFile__Read_keyfile_:__s
push 3
call fcn.0040ebe0
add esp, 0xc
push 0x42b624
mov eax, dword [ebp + 0xc]
push eax
call fcn.00417fc3
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x411a75
push str._iReadKeyFile__no__new__keyfile_found
push 1
call fcn.0040ebe0
add esp, 8
or eax, 0xffffffff
jmp 0x412071
mov eax, dword [ebp - 8]
push eax
push 1
push 0x3a
mov ecx, dword [ebp + 8]
add ecx, 0x292
push ecx
call fcn.0041819d
add esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 1
je 0x411abb
push str._iReadKeyFile_:_Can
push 1
call fcn.0040ebe0
add esp, 8
mov eax, dword [ebp - 8]
push eax
call fcn.00417e88
add esp, 4
or eax, 0xffffffff
jmp 0x412071
mov eax, dword [ebp - 8]
push eax
call fcn.00417e88
add esp, 4
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2a8], 0
je 0x411be8
push str._iReadKeyFile_:_Takeover:_at_once__
push 3
call fcn.0040ebe0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2a8]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
shr eax, 0x10
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x238], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x318], 1
je case.0x411b51.1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2a8]
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x40]
shr eax, 0x1c
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2e0], eax
mov ecx, dword [ebp - 0x2e0]
sub ecx, 1
mov dword [ebp - 0x2e0], ecx
cmp dword [ebp - 0x2e0], 4
ja case.0x411b51.1
mov edx, dword [ebp - 0x2e0]
jmp dword [edx*4 + 0x412084]
mov eax, dword [ebp + 8]
mov dword [eax + 0x234], 1
push str._iReadKeyFile__Crypting_mode:_DES__
push 2
call fcn.0040ebe0
add esp, 8
jmp case.0x411b51.1
mov eax, dword [ebp + 8]
mov dword [eax + 0x234], 3
push str._iReadKeyFile__Crypting_mode:_3DES__
push 2
call fcn.0040ebe0
add esp, 8
jmp case.0x411b51.1
mov eax, dword [ebp + 8]
mov dword [eax + 0x234], 5
push str._iReadKeyFile__Crypting_mode:_AES128__
push 2
call fcn.0040ebe0
add esp, 8
jmp case.0x411b51.1
mov eax, dword [ebp + 8]
mov dword [eax + 0x234], 4
push str._iReadKeyFile__Crypting_mode:_AES256__
push 2
call fcn.0040ebe0
add esp, 8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2a8]
and ecx, 0xffff
mov edx, dword [ebp + 8]
mov dword [edx + 0x2a8], ecx
jmp 0x411c02
push 4
mov eax, dword [ebp + 8]
add eax, 0x2a4
push eax
mov ecx, dword [ebp + 8]
add ecx, 8
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2a0]
push ecx
push str._iReadKeyFile_:_Key_Version_No:__d
push 3
call fcn.0040ebe0
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2a0]
mov dword [eax + 0x2ec], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2a0], 0xffff
jne 0x411c4b
mov eax, dword [ebp + 8]
mov dword [eax + 0x230], 1
jmp 0x411c5d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x546]
mov dword [eax + 0x230], edx
push str._iReadKeyFile_:_Crypted_keydata__hex_:
push 5
call fcn.0040ebe0
add esp, 8
push 0x20
mov eax, dword [ebp + 8]
add eax, 0x2ac
push eax
push 5
call fcn.0040e880
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x234]
mov dword [ebp - 0x2e0], ecx
mov edx, dword [ebp - 0x2e0]
sub edx, 1
mov dword [ebp - 0x2e0], edx
cmp dword [ebp - 0x2e0], 4
ja case.0x411caf.1
mov eax, dword [ebp - 0x2e0]
jmp dword [eax*4 + 0x412098]
mov eax, dword [ebp + 8]
add eax, 0x3a8
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x380
push ecx
call sub.Crypto32.dll_Ordinal_3_1
mov dword [ebp - 0x30], 4
sub esp, 8
fld qword [0x42bd58]
fstp qword [esp]
sub esp, 8
fld qword [0x42d038]
fstp qword [esp]
call fcn.00418900
add esp, 0x10
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x411d09
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
shl eax, 3
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 0
jmp 0x411d24
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
shl eax, 3
cmp eax, dword [ebp - 0x34]
jae 0x411d55
mov eax, dword [ebp + 8]
add eax, 0x3a8
push eax
mov ecx, dword [ebp - 0x30]
lea edx, [ebp + ecx*8 - 0x2c]
push edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax*8 + 0x2ac]
push edx
call sub.Crypto32.dll_Ordinal_2_2
jmp 0x411d1b
jmp case.0x411caf.1
mov dword [ebp - 0x30], 2
sub esp, 8
fld qword [0x42bd60]
fstp qword [esp]
sub esp, 8
fld qword [0x42d038]
fstp qword [esp]
call fcn.00418900
add esp, 0x10
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x411d95
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
shl eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2ac
push ecx
lea edx, [ebp - 0x2c]
push edx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
add eax, 0x320
push eax
lea ecx, [ebp - 0x29c]
push ecx
call sub.Crypto32.dll_Ordinal_6_2
add esp, 8
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x30], 0
jmp 0x411de8
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
shl eax, 4
cmp eax, dword [ebp - 0x34]
jae 0x411e11
mov eax, dword [ebp - 0x44]
push eax
lea ecx, [ebp - 0x29c]
push ecx
call sub.Crypto32.dll_Ordinal_8_1
add esp, 8
mov eax, dword [ebp - 0x44]
add eax, 0x10
mov dword [ebp - 0x44], eax
jmp 0x411ddf
lea eax, [ebp - 0x29c]
push eax
call sub.Crypto32.dll_Ordinal_9_1
add esp, 4
jmp case.0x411caf.1
mov dword [ebp - 0x30], 2
sub esp, 8
fld qword [0x42bd60]
fstp qword [esp]
sub esp, 8
fld qword [0x42d038]
fstp qword [esp]
call fcn.00418900
add esp, 0x10
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x411e60
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
shl eax, 4
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x2ac
push ecx
lea edx, [ebp - 0x2c]
push edx
call fcn.00418250
add esp, 0xc
push 1
push 0x10
mov eax, dword [ebp + 8]
add eax, 0x320
push eax
push 0
lea ecx, [ebp - 0x23c]
push ecx
call sub.Crypto32.dll_Ordinal_10_2
add esp, 0x14
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x44]
push edx
lea eax, [ebp - 0x23c]
push eax
call sub.Crypto32.dll_Ordinal_12
add esp, 0x10
push str._iReadKeyFile_:_Data__hex_:
push 5
call fcn.0040ebe0
add esp, 8
push 0x20
lea eax, [ebp - 0x2c]
push eax
push 5
call fcn.0040e880
mov eax, dword [ebp + 8]
movzx esi, word [eax + 0x29a]
push 0
push 0x20
lea ecx, [ebp - 0x2c]
push ecx
call sub.Crypto32.dll_Ordinal_5_1
movzx edx, ax
cmp esi, edx
je 0x411f1b
push str._iReadKeyFile_:_Incorrect_CRC__so_data_or_key_wrong__
push 1
call fcn.0040ebe0
add esp, 8
mov eax, 0xffff
jmp 0x412071
mov eax, dword [ebp + 8]
cmp dword [eax + 0x234], 4
je 0x411f33
mov eax, dword [ebp + 8]
cmp dword [eax + 0x234], 5
jne 0x411f96
push 0x20
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x360
push ecx
call fcn.00418250
add esp, 0xc
push 0x3a
mov eax, dword [ebp + 8]
add eax, 0x292
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x258
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2a8], 0
je 0x411f91
push 0x20
mov eax, dword [ebp + 8]
add eax, 0x360
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x340
push ecx
call fcn.00418250
add esp, 0xc
jmp 0x412062
push 8
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x398
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x234], 3
jne 0x411fdb
push 8
mov eax, 1
shl eax, 3
lea ecx, [ebp + eax - 0x2c]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x3a0
push edx
call fcn.00418250
add esp, 0xc
push 0x3a
mov eax, dword [ebp + 8]
add eax, 0x292
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x258
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2a8], 0
je 0x412062
mov eax, dword [ebp + 8]
add eax, 0x3a8
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x398
push ecx
call sub.Crypto32.dll_Ordinal_3_1
push 8
mov eax, dword [ebp + 8]
add eax, 0x398
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x388
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x234], 3
jne 0x412062
push 8
mov eax, dword [ebp + 8]
add eax, 0x3a0
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x390
push ecx
call fcn.00418250
add esp, 0xc
mov eax, dword [ebp + 8]
mov dword [eax + 0x54a], 1
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00418922
mov esp, ebp
pop ebp
ret 8