Function at 0x409d10
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
cmp dword [esi + 0x1f40], ebx
jbe 0x40aa36
push esi
call fcn.00406770
add esp, 4
cmp eax, ebx
je 0x40aa36
mov eax, dword [esi + 0x1f40]
cmp eax, ebx
jbe 0x40aa36
dec eax
lea edi, [esi + 0x1e00]
add esi, 0xa00
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
jmp 0x409d70
mov esi, dword [ebp - 0x14]
mov ecx, 0x4bd760
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409da0
test dl, dl
je 0x409d9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409da0
add eax, 2
add ecx, 2
test dl, dl
jne 0x409d80
xor eax, eax
jmp 0x409da5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409de9
mov esi, dword [ebp - 0x14]
add esi, 0xfffff600
call fcn.00406aa0
test eax, eax
je 0x40a185
mov ecx, dword [ebp + 8]
push eax
mov edx, ebx
mov dword [ebp - 0xc], 1
call fcn.00407450
add esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x40a185
mov esi, str.RSA_Key_s_selected__n
jmp 0x40a1a0
mov ecx, 0x4bd58c
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409e10
test dl, dl
je 0x409e0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409e10
add eax, 2
add ecx, 2
test dl, dl
jne 0x409df0
xor eax, eax
jmp 0x409e15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a156
mov ecx, 0x4bd5b4
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409e44
test dl, dl
je 0x409e40
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409e44
add eax, 2
add ecx, 2
test dl, dl
jne 0x409e24
xor eax, eax
jmp 0x409e49
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a156
mov esi, dword [ebp + 8]
add esi, 0x2058
mov ecx, str.cds_data_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409e81
test dl, dl
je 0x409e7d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409e81
add eax, 2
add ecx, 2
test dl, dl
jne 0x409e61
xor eax, eax
jmp 0x409e86
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409eda
mov esi, str.AES_KeyCDS_DATA_KEY_selected__n
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], ebx
call fcn.004052b0
push 0x20
call fcn.0046c902
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov dword [ecx], eax
mov edi, eax
mov ecx, 8
mov esi, 0x4975e0
mov eax, 0x20
rep movsd dword es:[edi], dword [esi]
add esp, 4
mov dword [edx + 0xf0], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], 0xd91de0
mov edi, edx
jmp 0x40a185
mov ecx, str.cds_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409f01
test dl, dl
je 0x409efd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409f01
add eax, 2
add ecx, 2
test dl, dl
jne 0x409ee1
xor eax, eax
jmp 0x409f06
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x409f72
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20d8], 4
jne 0x409f72
mov esi, str.AES_KeyCDS_KEY_v4_selected__n
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], ebx
call fcn.004052b0
mov esi, 0x10
push esi
call fcn.0046c902
mov dword [edi], eax
mov ecx, dword [0x497640]
mov dword [eax], ecx
mov edx, dword [0x497644]
mov dword [eax + 4], edx
mov ecx, dword [0x497648]
mov dword [eax + 8], ecx
mov edx, dword [0x49764c]
mov dword [eax + 0xc], edx
add esp, 4
mov dword [edi + 0xf0], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], 0x497650
jmp 0x40a185
mov ecx, str.cds_key
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409fa0
test dl, dl
je 0x409f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x409f80
xor eax, eax
jmp 0x409fa5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a04e
mov eax, dword [ebp + 8]
cmp dword [eax + 0x20d8], 4
jae 0x40a04e
mov esi, str.RC5_KeyCDS_KEY_selected__n
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], ebx
call fcn.004052b0
push 8
call fcn.0046c902
mov ecx, dword [ebp + 8]
mov dword [edi], eax
mov ecx, dword [ecx + 0x20d8]
add esp, 4
cmp ecx, 1
jne 0x40a002
mov edx, dword [0x497660]
mov dword [eax], edx
mov ecx, dword [0x497664]
mov dword [ebp - 8], 0x497668
jmp 0x40a038
cmp ecx, 2
jne 0x40a01e
mov edx, dword [0x497670]
mov dword [eax], edx
mov ecx, dword [0x497674]
mov dword [ebp - 8], 0x497678
jmp 0x40a038
cmp ecx, 3
jne 0x40a03b
mov edx, dword [0x497680]
mov dword [eax], edx
mov ecx, dword [0x497684]
mov dword [ebp - 8], 0x497688
mov dword [eax + 4], ecx
mov eax, 8
mov dword [edi + 0xf0], eax
mov dword [ebp - 0x10], eax
jmp 0x40a185
mov esi, dword [ebp + 8]
mov ecx, 0x4bd7f0
lea eax, [esi + 0x1fc4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a080
test dl, dl
je 0x40a07c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a080
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a060
xor eax, eax
jmp 0x40a085
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a0bd
mov ecx, str.vcs128
lea eax, [esi + 0x1fc4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a0b4
test dl, dl
je 0x40a0b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a0b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a094
xor eax, eax
jmp 0x40a0b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a0d3
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], ebx
mov dword [ebp - 0x10], 4
jmp 0x40a185
mov eax, dword [ebp - 0x14]
mov ecx, str.vcs003
jmp 0x40a0e0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a100
test dl, dl
je 0x40a0fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a100
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a0e0
xor eax, eax
jmp 0x40a105
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a185
mov esi, str.VCS003_Key_selected__n
mov dword [ebp - 0xc], 1
mov dword [ebp - 4], ebx
call fcn.004052b0
mov eax, dword [edi]
push 1
lea edx, [ebp - 0x220]
push edx
push 0xc8
mov esi, 0x20
push eax
mov dword [ebp - 0x10], esi
call fcn.00402730
mov edx, dword [edi]
push esi
lea ecx, [ebp - 0x220]
push ecx
push edx
call fcn.00478340
add esp, 0x1c
mov dword [edi + 0xf0], esi
jmp 0x40a185
mov esi, dword [ebp - 0x14]
add esi, 0xfffff600
call fcn.00406aa0
test eax, eax
je 0x40a185
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
mov dword [ebp - 0xc], 1
call fcn.00408500
add esp, 8
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x40a19b
sub dword [ebp - 0x14], 0xffffff80
inc ebx
add edi, 4
mov dword [ebp - 0x18], edi
cmp ebx, dword [ebp - 0x1c]
jbe 0x409d70
jmp 0x40a1b0
mov esi, str.CDS_Key_s_selected__n
mov edi, ebx
shl edi, 7
add edi, dword [ebp + 8]
call fcn.004052e0
mov dword [ebp - 4], ebx
mov edi, dword [ebp - 4]
mov ebx, dword [ebp + 8]
mov esi, edi
shl esi, 7
add esi, ebx
mov ecx, str.cds_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a1e4
test dl, dl
je 0x40a1e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a1e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a1c4
xor eax, eax
jmp 0x40a1e9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a24d
mov ecx, str.cds_nc_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a214
test dl, dl
je 0x40a210
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a214
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a1f4
xor eax, eax
jmp 0x40a219
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a24d
mov ecx, str.cds_xm_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a244
test dl, dl
je 0x40a240
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a244
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a224
xor eax, eax
jmp 0x40a249
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a254
mov dword [ebp - 8], str.cadence_design_systema
mov ecx, str.cds_data_key
lea eax, [ebx + 0x2058]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a280
test dl, dl
je 0x40a27c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a280
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a260
xor eax, eax
jmp 0x40a285
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
mov ecx, str.cds_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a2b4
test dl, dl
je 0x40a2b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a2b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a294
xor eax, eax
jmp 0x40a2b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
mov ecx, str.cds_nc_key
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a2e8
test dl, dl
je 0x40a2e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a2e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a2c8
xor eax, eax
jmp 0x40a2ed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
mov ecx, str.cds_xm_key
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a320
test dl, dl
je 0x40a31c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a320
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a300
xor eax, eax
jmp 0x40a325
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
lea eax, [edi + 0x14]
shl eax, 7
mov ecx, str.vcs003
add eax, ebx
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a360
test dl, dl
je 0x40a35c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a360
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a340
xor eax, eax
jmp 0x40a365
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a4a7
cmp dword [ebx + 0x20d8], 0
jne 0x40a4a7
mov ecx, str.aes128_cbc
lea eax, [ebx + 0x1fc4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a3a5
test dl, dl
je 0x40a3a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a3a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a385
xor eax, eax
jmp 0x40a3aa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a48d
mov ecx, str.aes128_cfb
lea eax, [ebx + 0x1fc4]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a3e0
test dl, dl
je 0x40a3dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a3e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a3c0
xor eax, eax
jmp 0x40a3e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a48d
mov ecx, str.aes192_cbc
lea eax, [ebx + 0x1fc4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a418
test dl, dl
je 0x40a414
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a418
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a3f8
xor eax, eax
jmp 0x40a41d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a48d
mov ecx, str.aes256_cbc
lea eax, [ebx + 0x1fc4]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a450
test dl, dl
je 0x40a44c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a450
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a430
xor eax, eax
jmp 0x40a455
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a48d
mov ecx, 0x4bd5b4
lea eax, [ebx + 0x1fc4]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a484
test dl, dl
je 0x40a480
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a484
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a464
xor eax, eax
jmp 0x40a489
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a4a7
mov edx, dword [ebx + 0x2044]
add dword [ebx + 0x204c], 0xfffffff0
mov dword [ebp - 8], edx
mov dword [ebx + 0x2048], 0x10
cmp dword [ebp - 0xc], 0
jne 0x40a4c1
push str.No_one_of_known_keys_was_not_found__n
call fcn.0046e24e
add esp, 4
push 0
call fcn.00470ab0
cmp dword [ebp - 0x10], 0
jne 0x40a4db
push str.Know_key_found__key_decrypt_error__n
call fcn.0046e24e
add esp, 4
push 0
call fcn.00470ab0
mov esi, ebx
lea ebx, [esi + 0x1fc4]
mov ecx, 0x4bd58c
mov eax, ebx
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a510
test dl, dl
je 0x40a50c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a510
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a4f0
xor eax, eax
jmp 0x40a515
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a538
cmp dword [esi + 0x20d8], eax
jne 0x40a538
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
push eax
push ecx
mov ecx, esi
call fcn.00408aa0
add esp, 8
jmp 0x40a8d7
mov ecx, str.des_cbc
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a560
test dl, dl
je 0x40a55c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a560
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a540
xor eax, eax
jmp 0x40a565
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a576
mov edx, dword [ebp - 4]
call fcn.004083b0
jmp 0x40a8d7
mov ecx, str.3des_cbc
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a5a0
test dl, dl
je 0x40a59c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a5a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a580
xor eax, eax
jmp 0x40a5a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a5b7
mov edx, dword [ebp - 4]
push edx
call fcn.00408440
jmp 0x40a8d4
mov ecx, str.aes128_cbc
mov eax, ebx
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a5e0
test dl, dl
je 0x40a5dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a5e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a5c0
xor eax, eax
jmp 0x40a5e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a649
mov ecx, str.aes128_cfb
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a610
test dl, dl
je 0x40a60c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a610
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a5f0
xor eax, eax
jmp 0x40a615
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a649
mov ecx, 0x4bd5b4
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a640
test dl, dl
je 0x40a63c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a640
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a620
xor eax, eax
jmp 0x40a645
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a668
cmp dword [esi + 0x20d8], 0
jne 0x40a668
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
push eax
mov edx, 0x80
call fcn.00408e90
jmp 0x40a8d4
mov ecx, str.aes192_cbc
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a690
test dl, dl
je 0x40a68c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a690
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a670
xor eax, eax
jmp 0x40a695
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a6af
mov ecx, dword [ebp - 8]
push ecx
mov ecx, dword [ebp - 4]
mov edx, 0xc0
call fcn.00408e90
jmp 0x40a8d4
mov ecx, str.aes256_cbc
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a6d6
test dl, dl
je 0x40a6d2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a6d6
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a6b6
xor eax, eax
jmp 0x40a6db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a6f5
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
push edx
mov edx, 0x100
call fcn.00408e90
jmp 0x40a8d4
mov ecx, str.blowfish_cbc
mov eax, ebx
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a720
test dl, dl
je 0x40a71c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a720
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a700
xor eax, eax
jmp 0x40a725
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a736
mov ecx, dword [ebp - 4]
call fcn.00409420
jmp 0x40a8d7
mov ecx, str.bf_cbc
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a760
test dl, dl
je 0x40a75c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a760
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a740
xor eax, eax
jmp 0x40a765
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a776
mov ecx, dword [ebp - 4]
call fcn.00409420
jmp 0x40a8d7
mov ecx, str.blowfish
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a7a0
test dl, dl
je 0x40a79c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a7a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a780
xor eax, eax
jmp 0x40a7a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a7b6
mov ecx, dword [ebp - 4]
call fcn.00409390
jmp 0x40a8d7
mov ecx, 0x4bd7f0
mov eax, ebx
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a7e0
test dl, dl
je 0x40a7dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a7e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a7c0
xor eax, eax
jmp 0x40a7e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a7fc
mov eax, esi
mov ecx, dword [eax + 0x204c]
push eax
call fcn.00409740
jmp 0x40a8d4
mov ecx, str.vcs128
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a823
test dl, dl
je 0x40a81f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a823
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a803
xor eax, eax
jmp 0x40a828
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a83e
mov edi, esi
mov ecx, dword [edi + 0x204c]
call fcn.004094c0
jmp 0x40a8d7
mov ecx, 0x4bd5b4
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a865
test dl, dl
je 0x40a861
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a865
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a845
xor eax, eax
jmp 0x40a86a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40a887
cmp dword [esi + 0x20d8], eax
je 0x40a887
mov eax, dword [ebp - 8]
push eax
mov ecx, esi
push ecx
call fcn.00409110
add esp, 8
jmp 0x40a8d7
mov ecx, 0x4bd58c
mov eax, ebx
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a8b0
test dl, dl
je 0x40a8ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a8b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a890
xor eax, eax
jmp 0x40a8b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40aa3d
cmp dword [esi + 0x20d8], eax
je 0x40aa3d
mov ecx, dword [ebp - 8]
mov edx, esi
push edx
call fcn.00408cb0
add esp, 4
mov edi, eax
mov ecx, str.vcs_xor
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a900
test dl, dl
je 0x40a8fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a900
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a8e0
xor eax, eax
jmp 0x40a905
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a94b
mov ecx, str.vcs128
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a930
test dl, dl
je 0x40a92c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a930
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a910
xor eax, eax
jmp 0x40a935
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40a94b
mov esi, dword [ebp + 0xc]
push str.IP_Decryptor_begin
call fcn.00409cb0
add esp, 4
jmp 0x40a97f
mov esi, dword [ebp + 0xc]
push esi
call fcn.00470534
mov cx, word [0x5f0bac]
add esp, 4
cmp cl, 0xd
jne 0x40a96d
cmp ch, 0xa
jne 0x40a97f
add eax, 0xfffffffe
jmp 0x40a973
cmp ch, 0xa
jne 0x40a97f
dec eax
push 0
push eax
push esi
call fcn.004706d0
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x204c]
mov edx, dword [eax + 0x2048]
add edx, dword [eax + 0x2044]
push esi
sub ecx, edi
push ecx
add edx, edi
push 1
push edx
call fcn.00470326
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x204c]
sub edx, edi
add esp, 0x10
cmp eax, edx
je 0x40a9c8
push str.File_can_not_be_writed__n
call fcn.0046e24e
add esp, 4
push 0
call fcn.00470ab0
mov ecx, str.vcs_xor
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40a9f0
test dl, dl
je 0x40a9ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40a9f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x40a9d0
xor eax, eax
jmp 0x40a9f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40aa36
mov ecx, str.vcs128
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40aa20
test dl, dl
je 0x40aa1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40aa20
add eax, 2
add ecx, 2
test dl, dl
jne 0x40aa00
xor eax, eax
jmp 0x40aa25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40aa36
push str.IP_Decryptor_end
call fcn.00409cb0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push str.Unknow_data_method__s__n
call fcn.0046e24e
add esp, 8
push 0
call fcn.00470ab0
int3