Function at 0x457280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x444
mov eax, dword [0x601018]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x430], eax
lea eax, [ebx + eax - 8]
push esi
push edi
mov dword [ebp - 0x418], ebx
mov dword [ebp - 0x41c], eax
cmp ebx, eax
jae 0x4573e8
jmp 0x4572cc
mov eax, dword [ebp - 0x41c]
mov ecx, dword [ebp - 0x414]
sub eax, ecx
push 9
push eax
mov edi, str.108_66_re
call fcn.004ff1f0
add esp, 8
mov dword [ebp - 0x414], eax
test eax, eax
je 0x4573e8
mov esi, eax
xor edi, edi
mov al, byte [esi]
test al, al
je 0x457308
cmp al, 0xa
je 0x457308
cmp al, 0xd
je 0x457308
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4572f6
jmp 0x457320
mov al, byte [esi]
test al, al
je 0x457320
mov edi, edi
cmp al, 0xa
je 0x457318
cmp al, 0xd
jne 0x457320
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x457310
mov eax, 0x5cf000
mov ecx, esi
call fcn.00457170
test eax, eax
jne 0x457338
inc edi
cmp edi, 0xa
jl 0x4572f0
jmp 0x457344
mov edi, 0x5cf004
mov edx, esi
call fcn.004571f0
mov esi, dword [ebp - 0x414]
xor edi, edi
lea esp, [esp]
mov cl, byte [esi]
mov eax, esi
test cl, cl
je 0x45736c
cmp cl, 0xa
je 0x45736c
cmp cl, 0xd
je 0x45736c
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x457358
jmp 0x4573a2
mov cl, byte [eax]
test cl, cl
je 0x4573a2
cmp cl, 0xa
je 0x45737c
cmp cl, 0xd
jne 0x457386
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x457372
jmp 0x4573a2
mov cl, byte [eax]
test cl, cl
je 0x4573a2
lea esp, [esp]
cmp cl, 0xa
je 0x4573a2
cmp cl, 0xd
je 0x4573a2
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x457390
lea esi, [eax + 1]
test esi, esi
je 0x4573cd
mov eax, 0x5cf000
mov ecx, esi
call fcn.00457170
test eax, eax
jne 0x4573c1
inc edi
cmp edi, 0xa
jl 0x457350
jmp 0x4573cd
mov edi, 0x5cf004
mov edx, esi
call fcn.004571f0
mov eax, dword [ebp - 0x414]
add eax, 9
mov dword [ebp - 0x414], eax
cmp eax, dword [ebp - 0x41c]
jb 0x4572c0
mov ecx, dword [ebp - 0x430]
lea ecx, [ebx + ecx - 4]
mov eax, ebx
mov dword [ebp - 0x414], ecx
cmp ebx, ecx
jae 0x4575d1
mov ecx, dword [ebp - 0x414]
add ecx, 0xfffffffb
mov ebx, eax
cmp eax, ecx
ja 0x4575d1
sub eax, str._235
mov ecx, eax
lea esp, [esp]
cmp byte [ebx], 0x20
jne 0x457446
mov eax, str._235
lea ebx, [ebx]
mov dl, byte [ecx + eax]
cmp dl, byte [eax]
jne 0x45743f
inc eax
cmp eax, 0x5cf00d
jb 0x457430
cmp eax, 0x5cf00d
je 0x45745a
mov eax, dword [ebp - 0x414]
inc ebx
add eax, 0xfffffffb
inc ecx
cmp ebx, eax
jbe 0x457420
jmp 0x4575d1
mov eax, ebx
cmp ebx, dword [ebp - 0x418]
jb 0x4575d1
jmp 0x457470
mov edx, dword [ebp - 0x418]
cmp eax, edx
je 0x457495
mov cl, byte [eax - 1]
dec eax
test cl, cl
je 0x457499
cmp cl, 0xa
je 0x457499
cmp cl, 0xd
je 0x457499
cmp eax, edx
jae 0x457470
jmp 0x4575d1
mov ecx, eax
jmp 0x45749c
lea ecx, [eax + 1]
test ecx, ecx
je 0x4575d1
mov eax, 0x5cf010
call fcn.00457170
test eax, eax
je 0x4575c2
mov al, byte [ebx]
mov esi, ebx
test al, al
je 0x4574d2
mov edi, edi
cmp al, 0xa
je 0x4574d2
cmp al, 0xd
je 0x4574d2
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4574c0
jmp 0x4574e8
mov al, byte [esi]
test al, al
je 0x4574e8
cmp al, 0xa
je 0x4574e0
cmp al, 0xd
jne 0x4574e8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x4574d8
mov eax, 0x5cf000
mov ecx, esi
call fcn.00457170
test eax, eax
je 0x457586
mov edi, 0x5cf014
mov edx, esi
call fcn.004571f0
mov cl, byte [esi]
mov eax, esi
test cl, cl
je 0x457524
cmp cl, 0xa
je 0x457524
cmp cl, 0xd
je 0x457524
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457510
jmp 0x457542
mov cl, byte [eax]
test cl, cl
je 0x457542
lea ebx, [ebx]
cmp cl, 0xa
je 0x45753a
cmp cl, 0xd
jne 0x457542
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457530
cmp byte [eax], 0x66
jne 0x4575c2
mov cl, 0x66
lea esp, [esp]
cmp cl, 0xa
je 0x457566
cmp cl, 0xd
je 0x457566
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457550
mov edx, eax
jmp 0x4575b8
mov cl, byte [eax]
test cl, cl
je 0x457582
lea esp, [esp]
cmp cl, 0xa
je 0x45757a
cmp cl, 0xd
jne 0x457582
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457570
mov edx, eax
jmp 0x4575b8
cmp byte [esi], 0x66
jne 0x4575c2
mov edx, esi
mov al, 0x66
nop
cmp al, 0xa
je 0x4575a2
cmp al, 0xd
je 0x4575a2
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x457590
jmp 0x4575b8
mov al, byte [edx]
test al, al
je 0x4575b8
cmp al, 0xa
je 0x4575b0
cmp al, 0xd
jne 0x4575b8
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x4575a8
mov edi, 0x5cf014
call fcn.004571f0
lea eax, [ebx + 5]
cmp eax, dword [ebp - 0x414]
jb 0x457402
mov eax, dword [ebp - 0x418]
mov ecx, dword [ebp - 0x430]
lea edi, [eax + ecx - 2]
mov dword [ebp - 0x414], edi
cmp eax, edi
jae 0x457760
jmp 0x4575f7
mov edi, dword [ebp - 0x414]
lea ecx, [edi - 3]
mov esi, eax
mov dword [ebp - 0x420], esi
cmp eax, ecx
ja 0x457760
sub eax, 0x5cf000
mov ecx, eax
cmp byte [esi], 0x20
jne 0x457636
mov eax, 0x5cf000
jmp 0x457620
mov dl, byte [ecx + eax]
cmp dl, byte [eax]
jne 0x45762f
inc eax
cmp eax, 0x5cf003
jb 0x457620
cmp eax, 0x5cf003
je 0x45764a
inc esi
lea eax, [edi - 3]
inc ecx
mov dword [ebp - 0x420], esi
cmp esi, eax
jbe 0x457611
jmp 0x457760
mov eax, esi
cmp esi, dword [ebp - 0x418]
jb 0x45774b
mov edx, dword [ebp - 0x418]
cmp eax, edx
je 0x45767d
mov cl, byte [eax - 1]
dec eax
test cl, cl
je 0x457681
cmp cl, 0xa
je 0x457681
cmp cl, 0xd
je 0x457681
cmp eax, edx
jae 0x457660
jmp 0x45774b
mov ebx, eax
jmp 0x457684
lea ebx, [eax + 1]
test ebx, ebx
je 0x45774b
mov eax, 0x5cf000
mov ecx, ebx
call fcn.00457170
test eax, eax
je 0x45774b
mov dl, byte [ebx]
mov eax, ebx
test dl, dl
je 0x4576c4
mov cl, dl
lea ebx, [ebx]
cmp cl, 0xa
je 0x4576c4
cmp cl, 0xd
je 0x4576c4
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x4576b0
jmp 0x457702
mov cl, byte [eax]
test cl, cl
je 0x457702
lea ebx, [ebx]
cmp cl, 0xa
je 0x4576da
cmp cl, 0xd
jne 0x4576e4
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x4576d0
jmp 0x457702
mov cl, byte [eax]
test cl, cl
je 0x457702
lea ebx, [ebx]
cmp cl, 0xa
je 0x457702
cmp cl, 0xd
je 0x457702
mov cl, byte [eax - 1]
dec eax
test cl, cl
jne 0x4576f0
inc eax
je 0x45774b
cmp byte [eax], 0x68
jne 0x45774b
mov esi, ebx
test dl, dl
je 0x457722
mov al, dl
cmp al, 0xa
je 0x457722
cmp al, 0xd
je 0x457722
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x457712
cmp byte [esi], 0
je 0x457737
mov al, byte [esi]
cmp al, 0xa
je 0x457731
cmp al, 0xd
jne 0x457737
inc esi
cmp byte [esi], 0
jne 0x457727
cmp byte [esi], 0x66
jne 0x45774b
mov edi, 0x5cf018
mov edx, ebx
call fcn.004571f0
mov byte [esi], 0x20
mov eax, dword [ebp - 0x420]
add eax, 3
cmp eax, dword [ebp - 0x414]
jb 0x4575f1
mov eax, dword [ebp - 0x418]
cmp eax, dword [ebp - 0x41c]
jae 0x457a73
mov edx, dword [ebp - 0x41c]
add edx, 0xfffffff7
mov ecx, eax
mov dword [ebp - 0x428], ecx
cmp eax, edx
ja 0x457a73
sub eax, str._0_0_120
mov esi, eax
cmp byte [ecx], 0x20
jne 0x4577b6
mov eax, str._0_0_120
lea esp, [esp]
mov dl, byte [esi + eax]
cmp dl, byte [eax]
jne 0x4577af
inc eax
cmp eax, 0x5cf025
jb 0x4577a0
cmp eax, 0x5cf025
je 0x4577d0
mov eax, dword [ebp - 0x41c]
inc ecx
add eax, 0xfffffff7
inc esi
mov dword [ebp - 0x428], ecx
cmp ecx, eax
jbe 0x457792
jmp 0x457a73
mov eax, ecx
cmp ecx, dword [ebp - 0x418]
jb 0x457a5e
mov edx, dword [ebp - 0x418]
cmp eax, edx
je 0x457804
mov cl, byte [eax - 1]
dec eax
test cl, cl
je 0x457803
cmp cl, 0xa
je 0x457803
cmp cl, 0xd
je 0x457803
cmp eax, edx
jae 0x4577e6
jmp 0x457a5e
inc eax
mov dword [ebp - 0x414], eax
test eax, eax
je 0x457a5e
mov ecx, dword [ebp - 0x414]
mov eax, 0x5cf028
call fcn.00457170
test eax, eax
je 0x457a5e
xor eax, eax
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x43c], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x438]
push ecx
lea edx, [ebp - 0x42c]
push edx
lea eax, [ebp - 0x43c]
push eax
mov eax, dword [ebp - 0x414]
lea ecx, [ebp - 0x434]
push ecx
lea edx, [ebp - 0x440]
push edx
push str._d__d__d__d__d__d_cm
push eax
call dword [sym.imp.MSVCR100.dll_sscanf]
add esp, 0x20
cmp eax, 6
jne 0x457a5e
cmp dword [ebp - 0x434], 0
jne 0x457a5e
cmp dword [ebp - 0x43c], 0
jne 0x457a5e
cmp dword [ebp - 0x42c], 0x78
jne 0x457a5e
mov eax, dword [ebp - 0x414]
jmp 0x4578d0
cmp eax, dword [ebp - 0x41c]
jae 0x457a5e
mov cl, byte [eax]
cmp cl, 0x51
jne 0x4578e9
cmp byte [eax + 1], 0xd
je 0x457924
test cl, cl
je 0x457904
lea ecx, [ecx]
cmp cl, 0xa
je 0x457904
cmp cl, 0xd
je 0x457904
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4578f0
jmp 0x4578d0
mov cl, byte [eax]
test cl, cl
je 0x4578d0
lea ebx, [ebx]
cmp cl, 0xa
je 0x45791a
cmp cl, 0xd
jne 0x4578d0
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457910
jmp 0x4578d0
call fcn.00457130
call fcn.00457130
call fcn.00457130
mov ecx, eax
mov eax, dword [ebp - 0x414]
mov edx, 0xfffffffe
sub edx, eax
add ecx, edx
push ecx
push 0x20
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x424], 0x5bc564
test ecx, ecx
jne 0x45796c
mov dword [ebp - 0x424], str.grf0d979996
jmp 0x45799d
cmp ecx, 1
jne 0x45797d
mov dword [ebp - 0x424], str.grf0d921997
jmp 0x45799d
cmp ecx, 2
jne 0x45798e
mov dword [ebp - 0x424], str.grf0d882004
jmp 0x45799d
cmp ecx, 3
jne 0x45799d
mov dword [ebp - 0x424], str.grf0d830994
mov edi, dword [ebp - 0x438]
lea eax, [ecx + 1]
mov dword [ebp - 0x444], eax
imul eax, dword [ebp - 0x42c]
cdq
and edx, 3
lea esi, [edx + eax]
mov eax, dword [ebp - 0x440]
lea ebx, [edi + eax]
mov eax, ecx
imul eax, dword [ebp - 0x42c]
cdq
and edx, 3
add eax, edx
mov edx, dword [ebp - 0x424]
push edx
sar esi, 2
add esi, dword [ebp - 0x420]
sar eax, 2
add eax, dword [ebp - 0x420]
push esi
push edi
push esi
push ebx
push eax
push ebx
push eax
push edi
push str.n__d__d_m__d__d_l__d__d_l__d__d_l__s_r_n
mov esi, 0x400
lea edi, [ebp - 0x404]
call fcn.004f9520
mov eax, edi
add esp, 0x28
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x457a10
sub eax, ecx
mov ecx, dword [ebp - 0x414]
push eax
lea eax, [ebp - 0x404]
push eax
push ecx
call sub.MSVCR100.dll_memcpy
lea eax, [ebp - 0x404]
add esp, 0xc
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x457a40
mov ecx, dword [ebp - 0x444]
sub eax, edx
add dword [ebp - 0x414], eax
cmp ecx, 4
jl 0x457952
mov eax, dword [ebp - 0x428]
add eax, 9
cmp eax, dword [ebp - 0x41c]
jb 0x457772
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x430]
lea edx, [eax + edx - 0x20]
mov dword [ebp - 0x414], edx
cmp eax, edx
jae 0x457c82
jmp 0x457a99
mov edx, dword [ebp - 0x414]
lea ecx, [edx - 0x21]
mov ebx, eax
mov dword [ebp - 0x428], ebx
cmp eax, ecx
ja 0x457c82
sub eax, str._ImageMatrix__450_0_0__338_0_338_
mov ecx, eax
cmp byte [ebx], 0x2f
jne 0x457adc
mov eax, str._ImageMatrix__450_0_0__338_0_338_
lea ecx, [ecx]
mov dl, byte [ecx + eax]
cmp dl, byte [eax]
jne 0x457acf
inc eax
cmp eax, 0x5cf0bd
jb 0x457ac0
cmp eax, 0x5cf0bd
je 0x457afc
mov edx, dword [ebp - 0x414]
inc ebx
lea eax, [edx - 0x21]
inc ecx
mov dword [ebp - 0x428], ebx
cmp ebx, eax
jbe 0x457ab3
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00596083
mov esp, ebp
pop ebp
ret
mov cl, byte [ebx]
mov eax, ebx
test cl, cl
je 0x457b18
cmp cl, 0xa
je 0x457b18
cmp cl, 0xd
je 0x457b18
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457b04
jmp 0x457b32
mov cl, byte [eax]
test cl, cl
je 0x457b32
mov edi, edi
cmp cl, 0xa
je 0x457b2a
cmp cl, 0xd
jne 0x457b32
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457b20
mov cl, byte [eax]
test cl, cl
je 0x457b4c
cmp cl, 0xa
je 0x457b4c
cmp cl, 0xd
je 0x457b4c
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457b38
jmp 0x457b64
mov cl, byte [eax]
test cl, cl
je 0x457b64
cmp cl, 0xa
je 0x457b5c
cmp cl, 0xd
jne 0x457b64
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457b52
mov edi, eax
mov al, byte [eax]
test al, al
je 0x457b82
lea esp, [esp]
cmp al, 0xa
je 0x457b82
cmp al, 0xd
je 0x457b82
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457b70
jmp 0x457b98
mov al, byte [edi]
test al, al
je 0x457b98
cmp al, 0xa
je 0x457b90
cmp al, 0xd
jne 0x457b98
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x457b88
mov esi, edi
lea ebx, [ebx]
cmp esi, dword [ebp - 0x414]
jae 0x457c73
mov cl, byte [esi]
cmp cl, 0x51
jne 0x457bb9
cmp byte [esi + 1], 0xd
je 0x457bf6
mov eax, esi
test cl, cl
je 0x457bd6
nop
cmp cl, 0xa
je 0x457bd6
cmp cl, 0xd
je 0x457bd6
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457bc0
mov esi, eax
jmp 0x457ba0
mov cl, byte [eax]
test cl, cl
je 0x457bf2
lea esp, [esp]
cmp cl, 0xa
je 0x457bea
cmp cl, 0xd
jne 0x457bf2
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x457be0
mov esi, eax
jmp 0x457ba0
lea eax, [ebp - 0x410]
call fcn.00493290
sub esi, edi
test edi, edi
je 0x457c48
cmp esi, 1
jl 0x457c48
lea edx, [esi + edi]
mov ecx, edi
cmp edi, edx
jae 0x457c48
mov eax, dword [ebp - 0x410]
jmp 0x457c20
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, 0xff
shr eax, 8
xor eax, dword [ebp + ebx*4 - 0x404]
inc ecx
mov dword [ebp - 0x410], eax
cmp ecx, edx
jb 0x457c20
mov ebx, dword [ebp - 0x428]
jmp 0x457c4e
mov eax, dword [ebp - 0x410]
not eax
cmp eax, 0x74fd4cf9
jne 0x457c73
add esi, 0xfffffffe
push esi
push 0x20
push edi
call sub.MSVCR100.dll_memset
push 0x3f
push str._DataSource__._logo.jpg___r__file__DCTDecode_filter_r_n___image_r_n
push edi
call sub.MSVCR100.dll_memcpy
add esp, 0x18
lea eax, [ebx + 0x21]
cmp eax, dword [ebp - 0x414]
jb 0x457a93
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00596083
mov esp, ebp
pop ebp
ret