Function at 0x40d640
Capabilities:
Encrypt data using rc4 via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x7dc]
sub esp, 0x92c
mov dword [ebp - 0x8f4], 5
mov dword [ebp - 0x8ec], 4
lea esi, [esi]
nop
mov byte [ebx + eax], al
add eax, 1
cmp eax, 0x7d0
jne 0x40d670
lea eax, [ebp - 0x8fc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8001
mov eax, dword [0x42b014]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptCreateHash]
mov dword [ebp - 0x910], eax
call eax
sub esp, 0x14
test eax, eax
jne 0x40d6f7
mov eax, 0x68c
call fcn.00401310
mov eax, dword fs:[0x18]
mov edx, dword [eax + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], edx
cmp dword [eax + 0x34], 0x80090008
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x7d0
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x8fc]
mov esi, dword fs:[0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptHashData]
mov dword [ebp - 0x914], eax
call eax
sub esp, 0x10
mov edi, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x691
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str._08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 0x10
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8dc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8fc]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_CryptGetHashParam]
sub esp, 0x14
mov edi, eax
mov eax, 0x695
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8f8]
mov dword [esp + 0xc], 0x380000
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x8fc]
mov dword [esp + 4], 0x6801
mov dword [esp + 8], eax
mov eax, dword [0x42b014]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptDeriveKey]
mov dword [ebp - 0x918], eax
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x698
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 4
mov edi, dword [sym.imp.advapi32.dll_CryptGetKeyParam]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8f0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 9
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov dword [ebp - 0x904], edi
call edi
sub esp, 0x14
mov edi, eax
mov eax, 0x69c
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, 0x69d
call fcn.00401310
mov eax, dword [ebp - 0x8f0]
mov dword [esp + 4], str.Expected_56__got__ld_n
cmp eax, 0x38
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 4
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8f0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 8
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov edi, dword [ebp - 0x904]
call edi
sub esp, 0x14
mov edi, eax
mov eax, 0x6a1
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, 0x6a2
call fcn.00401310
mov eax, dword [ebp - 0x8f0]
mov dword [esp + 4], str.Expected_0__got__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov edi, dword [ebp - 0x904]
call edi
sub esp, 0x14
mov edi, eax
mov eax, 0x6a6
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8dc]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov edi, dword [ebp - 0x904]
call edi
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 0
sub esp, 0x14
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov dword [ebp - 0x904], edi
call edi
sub esp, 0x14
mov edi, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6ab
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str._08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8dc]
mov dword [esp + 8], eax
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov edi, dword [ebp - 0x904]
call edi
sub esp, 0x14
mov edi, eax
mov eax, 0x6ad
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 4
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8e8]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov edi, dword [ebp - 0x904]
call edi
sub esp, 0x14
mov edi, eax
mov eax, 0x6b1
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, 0x6b2
call fcn.00401310
mov eax, dword [ebp - 0x8e8]
mov edx, 1
test eax, eax
jne 0x40de05
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Expected_0__got__ld_n
mov esi, dword fs:[0x18]
call fcn.00401ac0
mov eax, dword [ebp - 0x8fc]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptDestroyHash]
mov dword [ebp - 0x91c], eax
call eax
sub esp, 4
mov edi, eax
mov eax, 0x6b6
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8f4]
mov dword [ebp - 0x8f4], 0x10
mov dword [esp + 0x18], 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptEncrypt]
mov dword [ebp - 0x90c], eax
call eax
sub esp, 0x1c
mov edi, eax
mov eax, 0x6ba
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea edx, [ebp - 0x8f4]
mov dword [ebp - 0x8f4], 0x10
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0x18
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x90c]
call eax
sub esp, 0x1c
mov edi, eax
mov eax, 0x6bd
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, 0x6bf
call fcn.00401310
mov eax, dword [ebp - 0x8f4]
mov dword [esp], ebx
mov dword [esp + 4], 0x418fac
mov dword [esp + 8], eax
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.RC4_encryption_failed__n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
lea eax, [ebp - 0x8f4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_CryptDecrypt]
sub esp, 0x18
mov edi, eax
mov eax, 0x6c2
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptSetKeyParam]
mov dword [ebp - 0x908], eax
call eax
sub esp, 0x10
mov edi, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6c6
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str.setting_salt_failed:__08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x904]
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x6c9
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [0x42b010]
sub eax, 1
cmp eax, 1
jbe 0x40de1f
mov eax, 0x6cd
call fcn.00401310
mov eax, dword [ebp - 0x8ec]
mov edx, 1
test eax, eax
je 0x40ddef
mov edi, dword [0x42b004]
test edi, edi
je 0x40dded
cmp eax, 0xb
je 0x40e43b
xor edx, edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.expected_salt_length_0__got__ld_n
mov dword [esp], edx
call fcn.00401ac0
jmp 0x40de4c
mov edx, dword [0x42b050]
test edx, edx
sete cl
xor edx, edx
cmp eax, 1
sete dl
and edx, ecx
jmp 0x40db24
mov eax, 0x6cb
call fcn.00401310
mov eax, dword [ebp - 0x8ec]
mov dword [esp + 4], str.expected_salt_length_11__got__ld_n
cmp eax, 0xb
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
mov dword [ebp - 0x8e0], ebx
xor edi, edi
mov esi, dword fs:[0x18]
lea esi, [esi]
nop
lea eax, [ebp - 0x8e4]
mov dword [ebp - 0x8e4], edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0xa
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x908]
call eax
sub esp, 0x10
mov dword [ebp - 0x900], eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6d4
mov eax, dword [esi + 0x34]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.setting_salt_failed_for_size__d:__08lx_n
mov ecx, dword [ebp - 0x900]
mov dword [esp], ecx
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x904]
call eax
sub esp, 0x14
mov dword [ebp - 0x900], eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6d7
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x900]
mov dword [esp], ecx
call fcn.00401ac0
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6d8
mov eax, dword [ebp - 0x8ec]
mov dword [esp + 8], edi
cmp eax, edi
mov dword [esp + 0xc], eax
sete al
mov dword [esp + 4], str.size__d:_unexpected_salt_length__ld_n
add edi, 1
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
cmp edi, 0x18
jne 0x40de60
lea eax, [ebp - 0x8e4]
mov dword [esi + 0x34], 0xdeadbeef
mov dword [ebp - 0x8e4], 0x19
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 0xa
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x908]
call eax
sub esp, 0x10
mov edi, eax
mov eax, 0x6dd
call fcn.00401310
mov edx, dword [esi + 0x34]
mov eax, 1
test edi, edi
je 0x40dfe0
mov ecx, dword [0x42b050]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str._08lx_n
mov esi, dword fs:[0x18]
call fcn.00401ac0
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_CryptDestroyKey]
mov dword [ebp - 0x900], eax
call eax
sub esp, 4
mov edi, eax
mov eax, 0x6e2
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8fc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8003
mov eax, dword [0x42b014]
mov dword [esp], eax
mov eax, dword [ebp - 0x910]
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x6e6
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x7d0
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0x8fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x914]
call eax
sub esp, 0x10
mov edi, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6e9
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str._08lx_n
call fcn.00401ac0
lea eax, [ebp - 0x8f8]
mov dword [esp + 0xc], 0x280004
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x8fc]
mov dword [esp + 4], 0x6801
mov dword [esp + 8], eax
mov eax, dword [0x42b014]
mov dword [esp], eax
mov eax, dword [ebp - 0x918]
call eax
sub esp, 0x14
mov edi, eax
mov eax, 0x6ec
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], edi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea eax, [ebp - 0x8f4]
mov dword [ebp - 0x8f4], 0x10
mov dword [ebp - 0x7dc], 0xafafafaf
mov dword [ebp - 0x7d8], 0xafafafaf
mov dword [ebp - 0x7d4], 0xafafafaf
mov dword [ebp - 0x7d0], 0xafafafaf
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 0x18], 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x90c]
call eax
sub esp, 0x1c
mov edi, eax
call fcn.00412e10
mov dword [eax], 0x41605d
mov dword [eax + 4], 0x6f1
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00401ac0
mov eax, 0x6f2
call fcn.00401310
mov edx, dword [0x42b010]
mov eax, dword [ebp - 0x8f4]
test edx, edx
mov dword [esp + 8], eax
je 0x40e3fd
mov dword [esp + 4], 0x418f8c
mov dword [esp], ebx
lea edi, [ebp - 0x8dc]
call sub.msvcrt.dll_memcmp
mov dword [esp + 4], str.RC4_encryption_failed__n
test eax, eax
sete al
movzx eax, al
mov dword [esp], eax
mov ebx, dword fs:[0x18]
call fcn.00401ac0
lea eax, [ebp - 0x8ec]
mov dword [ebp - 0x8ec], 4
mov dword [ebp - 0x8f0], 0x3039
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x8f0]
mov dword [esp + 0x10], 0
mov dword [esp + 8], eax
mov dword [esp + 4], 9
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x904]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0x6f9
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, 0x6fa
call fcn.00401310
mov eax, dword [ebp - 0x8f0]
mov dword [esp + 4], str.Expected_40__got__ld_n
cmp eax, 0x28
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
mov eax, 0xafafafaf
lea edx, [ebp - 0x8ec]
mov ecx, 0x40
rep stosd dword es:[edi], eax
mov dword [ebp - 0x8ec], 0x100
mov dword [esp + 0xc], edx
lea edx, [ebp - 0x8dc]
mov dword [esp + 8], edx
mov dword [esp + 0x10], 0
mov dword [esp + 4], 2
mov eax, dword [ebp - 0x8f8]
mov dword [esp], eax
mov eax, dword [ebp - 0x904]
call eax
sub esp, 0x14
mov esi, eax
mov eax, 0x6ff
call fcn.00401310
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str._08lx_n
mov dword [esp], esi
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [0x42b010]
test eax, eax
je 0x40e40a
mov eax, 0x701
call fcn.00401310
mov eax, dword [ebp - 0x8ec]
mov dword [esp + 4], str.Expected_11__got__ld_n
cmp eax, 0xb
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x8f8]
mov esi, dword fs:[0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x900]
call eax
sub esp, 4
mov ebx, eax
mov eax, 0x706
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
mov eax, dword [ebp - 0x8fc]
mov dword [esp], eax
mov eax, dword [ebp - 0x91c]
call eax
sub esp, 4
mov ebx, eax
mov eax, 0x709
call fcn.00401310
mov eax, dword [esi + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str._08lx_n
mov dword [esp + 8], eax
call fcn.00401ac0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x418f9c
jmp 0x40e20c
mov eax, 0x703
call fcn.00401310
mov eax, dword [ebp - 0x8ec]
mov dword [esp + 4], str.Expected_0__got__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00401ac0
jmp 0x40e380
mov esi, dword [0x42b050]
xor edx, edx
test esi, esi
sete dl
jmp 0x40ddef