Function at 0x476762
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
btc edi, edi
movzx ebx, byte [esi + 0x11]
mov dh, 0x62
call 0x476762
inc esi
jmp 0x4a36bd
lea eax, [ebp - 0xcf]
jmp 0x4a3386
call fcn.004a35c0
repe cmpsb byte [esi], byte es:[edi]
jmp 0x4d0598
lea esp, [esp + 4]
push edi
lea esi, [ebp*4]
jmp 0x4a3357
lea esi, [edi*4]
jmp 0x47682e
mov eax, 0x403
jmp 0x4a3d7f
call 0x4a45a0
jmp 0x4a4583
cmp dl, 0x61
jmp 0x4769a5
jb 0x4769dc
call fcn.004a4886
repe cmpsb byte [esi], byte es:[edi]
jmp 0x47e210
cmp dl, 0x30
jmp 0x4a465d
call 0x4a46b7
repe cmpsb byte [esi], byte es:[edi]
jmp 0x47e3a8
call 0x4a463f
dec esi
rol byte [esi + 0x21], 1
shl byte [edi - 0x30], 1
dec ebp
frstor dword [edi + edx*2 - reloc.USER32.dll_MessageBoxA]
mov eax, dword [reloc.USER32.dll_MessageBoxA]
jg 0x476a55
invalid
invalid
adc al, ch
mov dword [reloc.USER32.dll_MessageBoxA], eax
movsd dword es:[edi], dword [esi]
bound edx, qword [0x6c99e810]
add byte [eax], al
mov ebx, 0x5c35a533
scasd eax, dword es:[edi]
insb byte es:[edi], dx
push esp
invalid
push 0x10153c10
call fcn.00484e92
jno 0x47e1e9
dec edi
fistp qword [edx - 0x629d6ab7]
in al, dx
inc esi
and eax, 0x2404c754
invalid
push 0x10155231
call fcn.00484e92
call fcn.0047e3e2
jmp 0x47e53d
adc byte [ecx + 0x681d8d1e], ah
retf
call fcn.0047e494
push 0x1015eae8
call fcn.00484e92
jbe 0x47e51f
pop edx
enter 0x5aaf, 0xffffffffffffffeb
cmp edx, dword [edx]
lea ebx, [edi + ebp*2]
cmp bh, byte [edx + 0x68ba4f28]
mov al, byte [0xe81015e6]
sub ebp, dword [ecx]
add byte [eax - 0x1c], ch
call 0x222ff583
imul eax, dword [eax], reloc.USER32.dll_MessageBoxA
sub cl, byte [ebp - 0x44]
or ah, byte [ecx]
pushal
mov dword [reloc.USER32.dll_MessageBoxA], eax
lodsd eax, dword [esi]
pop esp
push 0x1015e8e4
call fcn.00484e92
and al, 0x28
mov ah, 0x2a
dec ebp
mov esp, 0xa360210a
fidiv dword [reloc.USER32.dll_MessageBoxA]
in eax, dx
dec eax
jmp 0x47e567
lea esp, [esp + 0x24]
call fcn.0048dca5
mov bl, bh
jmp 0x4a3508
mov esi, ecx
pushal
mov word [esp + 0x10], bx
push dword [esp + 2]
mov byte [esp + 0x17], ah
jmp 0x4a333a
mov eax, dword [edx - 8]
sub esp, 0x10
jmp 0x4a33c3
lea edx, [esi + ebx*4 + 8]
mov ch, 0xf0
lea ecx, [esi + 8]
jmp 0x47679c
mov dword [esp + 7], ecx
mov word [esp], di
lea esp, [esp + 2]
jmp 0x4a33fa
mov edi, dword [ecx - 8]
lea esp, [esp + 0x10]
add dword [ebp - 4], 4
sub esp, 0xe
jmp 0x4a33aa
push dword [esp + 2]
push dword [esp + 8]
lea esp, [esp + 0x28]
jle 0x476818
jmp 0x4a339c
push esi
mov esi, ecx
lea esi, [esi - 8]
jmp 0x4a3406
mov dword [esi], eax
pop esi
cmc
lea eax, reloc.USER32.dll_MessageBoxA
lea eax, [ebx*4]
mov al, ah
jmp 0x4a344c
mov dword [ebp - 8], eax
lea esp, [esp + 0x28]
test ebx, ebx
pushal
jmp 0x4a33e6
xchg word [esp + 1], di
mov edi, dword [ecx - 4]
stc
sub esp, 0x16
cmc
jmp 0x4a3458
mov eax, dword [edx - 4]
sub esp, 0x1c
mov dword [edx - 8], edi
push esp
jmp 0x4a342f
lea esp, [esp + 2]
jmp 0x4a34b3
mov word [esp], di
push dword [esp]
shl ebx, 2
pushal
mov dword [esp + 0x19], ecx
jmp 0x4a3423
mov edi, dword [ecx]
jmp 0x4a34eb
mov ecx, edx
lea ecx, [ecx - 4]
mov dword [ecx], edi
pop ecx
jmp 0x4a3482
mov dword [ecx - 4], eax
mov eax, dword [edx]
push ecx
jmp 0x4a3499
lea ebx, [ebx + 4]
mov edi, dword [ebx]
pop ebx
jmp 0x4a3518
push ebx
mov ebx, ecx
jmp 0x4a34bb
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [edx], edi
jmp 0x4a34d3
and dword [ebp - 4], 0
mov bx, word [esp]
mov ebx, eax
push edx
jmp 0x4a3471
mov dword [ecx + 4], eax
mov dword [edx + 4], edi
lea esp, [esp + 0x40]
jmp 0x4a3528
sub ebx, 4
pushal
mov word [esp + 8], sp
cmc
mov dword [esp + 0x17], esi
jmp 0x4a35f0
lea esp, [esp + 0x20]
add ecx, 0x10
call fcn.004a35b5
call fcn.004a363e
xchg bl, bh
btr edi, edx
lea esp, [esp + 2]
jmp 0x4a3623
lea ecx, [eax - 1]
xor dx, 0x6e64
inc edi
jmp 0x4a377d
lea esp, [esp + 0x14]
add esi, 0x10
mov edx, dword [esi]
bswap edi
jmp 0x4a36a3
lea edi, reloc.USER32.dll_MessageBoxA
pushal
cmc
jmp 0x4a374e
mov ebx, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
sub esp, 0x1c
lea esp, [esp + 7]
pop edx
lea edx, [ebp + 0x9f]
lea esp, [esp + 1]
jmp 0x4a3692
mov ecx, 0xff
jmp 0x476752
lea eax, [eax*4]
lea eax, reloc.USER32.dll_MessageBoxA
mov edi, dword [eax]
pop eax
jmp 0x4a371a
and edi, ecx
push eax
mov eax, edi
jmp 0x4a36f7
and ebx, ecx
lea esp, [esp + 0x44]
xor edi, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
mov bx, word [esp]
jmp 0x4a375c
shr edi, 0x18
mov edi, dword [edi*4 + reloc.USER32.dll_MessageBoxA]
jmp 0x4a3713
mov edi, edx
stc
pushal
mov dword [esp + 0xd], ecx
push dword [esp + 6]
jmp 0x4a3733
rcr ebx, 7
sub esp, 0x1a
mov word [esp + 2], dx
lea esp, [esp + 2]
jmp 0x4a378c
mov dword [ebp - 4], ecx
rol bl, 1
push esp
lea esp, [esp + 4]
jmp 0x4a36ed
lea esp, [esp + 0x18]
movzx ebx, byte [esi + 2]
sub esp, 0x10
mov byte [esp + 0xa], dh
mov byte [esp], bh
jmp 0x4a3a2f
and edx, ecx
jmp 0x4a3873
mov byte [esp + 0xb], dh
mov dword [esp + 0x11], ebp
push esp
jmp 0x4a37a4
stc
and edx, ecx
mov edx, dword [edx*4 + reloc.USER32.dll_MessageBoxA]
pushal
jmp 0x4a37ba
mov ebx, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
mov edi, edx
shr edi, 0x18
jmp 0x4a383f
lea ecx, reloc.USER32.dll_MessageBoxA
mov edi, dword [ecx]
pop ecx
jmp 0x4a3817
sub esp, 0x1c
mov edx, dword [esi + 4]
mov dword [esi], edi
lea edi, [esi*4]
jmp 0x4a37e1
and edi, ecx
sub esp, 0x18
clc
pop dword [esp + 0xa]
jmp 0x4a384b
xor edi, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
stc
mov bl, 0x6c
sub bl, ch
stc
jmp 0x4a385b
push ecx
mov ecx, edi
lea ecx, [ecx*4]
jmp 0x4a37ef
mov edi, dword [edi*4 + reloc.USER32.dll_MessageBoxA]
and ebx, ecx
stc
lea esp, [esp + 0x30]
jmp 0x4a3823
movzx ebx, byte [esi + 6]
cmc
push esp
pop word [esp]
lea esp, [esp + 2]
jmp 0x4a38b0
lea esp, [esp + 0x24]
xor edi, dword [edx*4 + reloc.USER32.dll_MessageBoxA]
neg dh
lea edx, [ecx + 0x8b]
mov dx, word [esp]
jmp 0x4a3806
lea esi, reloc.USER32.dll_MessageBoxA
mov ebx, dword [esi]
pop esi
push edx
stc
push dword [esp]
jmp 0x4a38dc
push esi
mov esi, ebx
lea esi, [esi*4]
jmp 0x4a388f
btr ebx, edx
xchg bh, bl
bsr bx, cx
movzx ebx, byte [esi + 5]
stc
jmp 0x4a37d4
and ebx, ecx
push edx
pop word [esp]
cmc
lea esp, [esp + 2]
jmp 0x4a3970
movzx ebx, byte [esi + 9]
sub esp, 0x1c
mov dword [esp + 0x15], ecx
mov dword [esp + 1], ebp
jmp 0x4a393a
sub esp, 0
sub esp, 0xc
mov word [esp], sp
lea esp, [esp + 0x38]
xor edi, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
jmp 0x4a38c9
and edx, ecx
call 0x4a391a
and edx, ecx
lea esp, [esp + 0x4c]
xor edi, dword [edx*4 + reloc.USER32.dll_MessageBoxA]
mov edx, dword [esp]
call fcn.004a39d3
outsd dx, dword [esi]
jbe 0x4a39ba
sub esp, 0xc
jmp 0x4a3941
lea esp, [esp + 8]
xor edi, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
neg bl
mov bl, bh
jmp 0x4a38ed
xor esp, dword [esi - 0x77]
adc al, 0x24
cmc
pop word [esp]
lea esp, [esp + 2]
popal
jmp 0x4a39fa
pushal
pop dword [esp + 8]
lea edi, [edi*4]
not edi
mov edi, edx
jmp 0x4a3a09
lea eax, [eax + 4]
mov dword [eax], edi
pop eax
mov ebx, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
jmp 0x4a39d5
shr edi, 0x18
mov edi, dword [edi*4 + reloc.USER32.dll_MessageBoxA]
and edi, ecx
jmp 0x4a56e3
sub esp, 0x1e
lea esp, [esp + 2]
mov ebx, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
and ebx, ecx
jmp 0x4a3903
push esp
jmp 0x4a521f
call 0x4a558a
sbb dword [edx], 0xffffff88
out dx, eax
sbb ch, byte [ecx - 0x75108019]
jns 0x4a3e58
ror byte [ebp - 0x24], cl
das
pushal
mov byte [esp + 0xd], bh
jmp 0x4a4ad2
ja 0x4a4bc0
pushal
lea esp, [esp + 0x20]
movzx eax, al
stc
jmp 0x4a4abb
xor edi, dword [ebx*4 + reloc.USER32.dll_MessageBoxA]
movzx ebx, byte [esi + 0xa]
call 0x4a3b21
cmp al, 0x9d
call 0xf4a8674
mov dh, 0x5e
or ch, al
mov edx, 0x54fffffc
push esp
pushal
jmp 0x4a3ebc
push edx
push edx
lea esp, [esp + 8]
and al, 8
jmp 0x4a4c12
or eax, 0x60e20000
not byte [ecx - 0x62e35aa0]
or eax, 0x6c66a754
jg 0x4a3ede
call fcn.004a4c0c
jno 0x4a3e81
xor byte [ebx - 0x31], 0xf3
jb 0x4a3e86
xchg dword [edx - 0x34], esi
ljmp 0x7c88
mov byte [esp + 9], bh
mov dword [esp + 5], ebp
jmp 0x4a4c60
mov edi, dword [edi]
sub esp, 0x10
pushal
pop word [esp + 0xb]
lea esp, [esp + 2]
jmp 0x4a4cca
jmp 0x4a4d48
pop ds
invalid
pushal
pop dword [esp + 6]
jmp 0x4a4e48
call fcn.004a4ecb
out 0x6f, eax
call [edx - 0x7ff04b97]
push ss
jno 0x4a3eaf
xor al, 0xb3
cmp eax, 0xf347b4ad
mov word [edx - 0x77], ss
add al, 0x24
push edx
mov dword [esp], eax
mov word [esp], di
jmp 0x4a4dbc
pushal
jmp 0x4a4e71
or al, 0x88
je 0x4a401b
or cl, ch
mov edx, 0x58000010
lds edx, [ebp + 0x3c]
iretd
je 0x4a402e
add byte [eax], al
mov ecx, dword [ebp + 8]
mov edx, eax
sub esp, 0x1a
lea esp, [esp + 2]
jmp 0x4a5168
add byte [eax], al
sbb al, 0xbe
sub al, 0x4b
mov byte [ecx + 0xf], 0x93
add esp, dword [esi - 0x6b]
push esi
xchg esi, eax
add eax, eax
sub eax, 0xffffffa4
invalid
call 0x4a51e7
mov word [ecx], ss
add byte [eax], al
sub byte [edi + 0x9a95a3f], ch
inc esi
rcl byte [esi + 0x31], 0xc0
add edi, eax
jge 0x4a4057
je 0x4a3ff3
inc esi
int3
pushal
pop dword [esp + 4]
pop dword [esp + 6]
jmp 0x4a4d1b
call fcn.004a4f7f
push esp
aam 0x4a
sub eax, 0x41c262dc
sal dword [eax + reloc.USER32.dll_MessageBoxA], 1
cli
aad 0x44
lea esp, [esp + 4]
jne 0x47693a
je 0x47696d
jnp 0x4a44ed
invalid
lea esp, [esp + 8]
mov dl, byte [ecx + 2]
push esp
call 0x4a4563
arpl word fs:[esi], ax
cmc
dec esp
jp 0x4a458c
sar edi, cl
invalid
push 0xd
cld
aas
popal
mov al, byte [0xcde81ae3]
and edi, ebp
dec dword [ebp - reloc.USER32.dll_MessageBoxA]
cli
pop edx
push esp
pop word [esp]
lea esp, [esp + 1]
jmp 0x4a4b3b
jb 0x476a3b
cmp dl, 0x39
call fcn.004a4620
jne 0x47693a
je 0x4769fa
push es
pushfd
xor dl, byte [ebp - 0x5c]
adc byte [eax - 0x17], dh
jns 0x4a4699
jmp 0x4a46de
lea esp, [esp + 0x20]
cmp dl, 0x3d
push esp
lea esp, [esp + 4]
jmp 0x4a466b
and al, 0x24
mov cl, byte [ecx + 3]
sub esp, 0x10
push word [esp + 1]
lea esp, [esp + 9]
jmp 0x4a46fd
je 0x4769fa
pushal
jmp 0x4a468a
daa
mov ecx, 0xfbb4829
sbb byte [ebx + 0x52], bh
int 0x5c
scasd eax, dword es:[edi]
lea esp, [esp + 3]
lea esp, [esp + 1]
je 0x4769fa
cmp dl, 0x2f
jmp 0x4a46cf
lea esp, [esp + 1]
jmp 0x4a478e
lea esp, [esp + 8]
cmp cl, 0x41
call fcn.004a474d
add eax, 4
jmp 0x4a3e17
lea esp, [esp + 0x20]
cmp al, 0x39
push esp
push dword [esp + 2]
lea esp, [esp + 8]
jmp 0x4a3e37
lea esp, [esp]
lea esp, [esp + 1]
jbe 0x4769fa
ja 0x47699c
sub eax, 0x41
jmp 0x4a3e17
call fcn.004a4aa2
lea esp, [esp + 0x28]
jne 0x4a3e7e
pushal
mov dword [esp + 0xf], esi
jmp 0x4a4be8
mov byte [esp + 0x16], ah
lea esp, [esp + 0x20]
push 0x3f
jmp 0x4a3e98
movzx esi, bl
clc
cmp bl, 0x39
jmp 0x4a4d68
lea esp, [esp + 0x20]
sub esi, 0x47
jmp 0x4a3e67
jb 0x4a44d9
sub esp, 0xe
lea esp, [esp + 2]
lea esp, [esp + 0xc]
jmp 0x4a4cfd
lea esp, [esp + 0x50]
cmp edi, 2
push esp
pop word [esp]
lea esp, [esp + 2]
jmp 0x4a4c9e
cmp dl, 0x2b
pushal
lea esp, [esp + 0x20]
jne 0x4a40e6
call fcn.004a4cb1
xchg edx, eax
adc al, 0x8a
in eax, dx
sbb al, 0xdf
add eax, eax
sub ebx, 0xffffffcf
push edx
jmp 0x4a4daa
push esp
mov word [esp], bx
mov dword [esp], eax
lea esp, [esp + 4]
cmp bl, 0x5a
call 0x4a4d19
fst dword [ecx - 0x3f]
mov al, byte [0xd350e053]
dec edx
in eax, 0x14
xchg dword [edi], ecx
xchg dword [ecx + esi*8 - 1], esp
call dword [edx - 0x73]
and al, 4
ja 0x4a3ed2
push edx
lea esp, [esp + 4]
add esi, 4
jmp 0x4a3e67
lea esp, [esp + 0x1c]
cmp dl, 0x2f
jne 0x4a3f37
call fcn.004a4d93
mov dword [esp], esi
lea esp, [esp + 4]
cmp dl, 0x39
push esp
jmp 0x4a4fa1
movzx edx, dl
call 0x4a4e2c
xor al, 0x8d
and al, 4
ja 0x4a3fb3
call fcn.004a4ea8
xor ebp, dword [ebx + reloc.USER32.dll_MessageBoxA]
pop ebx
int3
pop dword [esp]
lea esp, [esp + 0x18]
cmp dl, 0x5a
jmp 0x4a4e23
movzx edx, dl
stc
add edx, 4
jmp 0x4a3f1f
lea esp, [esp + 0x20]
sub edx, 0x47
jmp 0x4a3f1f
lea esp, [esp + 4]
ja 0x4a3f00
clc
pushal
lea esp, [esp + 0x20]
jmp 0x4a4e65
mov byte [ecx], dl
pushal
stc
sub esp, 0xe
mov dword [esp + 0xf], eax
lea esp, [esp + 2]
jmp 0x4a5175
shr edx, 0x10
cmc
sub esp, 0x18
lea esp, [esp + 0x38]
jmp 0x4a5145
sbb byte [ebp - 0x14c7db9c], cl
ror byte [ebp - 0x7cd3db9c], 1
inc dword [edx]
lea esp, [esp + 0x2c]
and al, 0x2c
cmp edi, 2
jb 0x4a4056
bswap edx
jmp 0x4a51b4
jno 0x4a5176
jl 0x4a51a5
test byte [esi + 0x61], 3
xchg ebx, eax
test byte [0xe95246b5], 0x86
push edx
invalid
xchg dh, ch
invalid
shr edx, 8
call 0x4a5247
out dx, al
jno 0x4a5185
xor byte [ebx - 0x39], 0xd0
jb 0x4a518a
jae 0x4a516e
sal byte [edx - 0x20], 1
xchg dword [edx - 0xb], esi
ja 0x4a5197
xor byte [ecx - 0x46], 0xea
mov dh, byte [esp]
and dh, bh
mov edx, eax
sub esp, 4
jmp 0x4a5199
lea esp, [esp + 4]
pop edi
pop ebx
call 0x4a522b
in eax, dx
add byte [eax], al
add ch, ch
pushal
jmp 0x4a5268
lea esp, [esp + 0x20]
leave
call fcn.004a52f4
clc
jle 0x4a5227
mov eax, dword [esi - reloc.USER32.dll_MessageBoxA]
cmpsb byte [esi], byte es:[edi]
push ebp
nop
push esi
rol dword [eax - reloc.USER32.dll_MessageBoxA], 0x34
and al, 0x8d
and al, 0xc
mov byte [ecx + 1], dl
jmp 0x4a4056
pop word [esp + 7]
lea esp, [esp + 2]
jmp 0x4a522e
mov edi, dword [edi*4 + reloc.USER32.dll_MessageBoxA]
and ebx, ecx
lea esp, [esp + 0x44]
jmp 0x4a3e57
call 0x4d057c
push 0x1014357c
call fcn.00484e92
push 0x10146fb2
call fcn.00484e92
lahf
sbb byte [esi - 0xc24e717], cl
jne 0x4d059f
xor eax, 0xebe81014
dec eax
sti
jmp [eax - 0x4e]
invalid