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

Disassembly:
mov edi, dword [esp]
lea esp, [esp + 4]
jmp 0xb95551
btr edx, edi
sbb dh, ch
movzx ebx, byte [esi + 0x11]
jmp 0xb94fd2
push word [esp + 2]
lea esp, [esp + 2]
jmp 0xb96618
cmp dword [ebp + 0xc], 3
jmp 0xb96652
pushfd
pop word [esp]
jmp 0xb3bb9a
lea esp, [esp + 2]
jmp 0xb9666c
mov ebx, dword [ebp + 0xc]
jmp 0xb3bb8f
mov ecx, dword [ebp + 8]
cmc
jmp 0xb96a0b
jmp 0xb96696
xor edx, edx
sub esp, 0x13
mov byte [esp + 1], dl
jmp 0xb9670a
cmp ecx, eax
jmp 0xb966e4
cmp edi, 0x34
jmp 0xb968db
cmp edi, eax
jmp 0xb968c5
jmp 0xb96981
xchg dh, dl
push ebx
add esp, 3
sub esp, 0xc
lea esp, [esp + 1]
jmp 0xb9500e
mov ebx, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
lea esp, [esp + 0xc]
add esi, 0x10
not edx
jmp 0xb9512f
mov edi, 0x77b94a2f
adc cl, byte [ebx - 0x610342c4]
mov ah, 0
mov edi, dword [edi*4 + reloc.MSVCRT.dll_malloc]
and edi, ecx
mov edi, dword [edi*4 + reloc.MSVCRT.dll_malloc]
call fcn.00b9505e
mov dword [esp], eax
add esp, 3
lea esp, [esp + 2]
jmp 0xb9510a
mov edi, edx
shr edi, 0x18
push si
lea esp, [esp + 2]
jmp 0xb950b3
movzx ebx, byte [esi + 5]
jmp 0xb95117
and ebx, ecx
xor edi, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
mov ebx, ebp
jmp 0xb950f4
and edx, ecx
call 0xb95150
xchg ebp, eax
sbb ecx, dword [ebx - 0x254e212]
jl 0xb95139
jne 0xb950ad
cmp cl, cl
push 0x8b5d228b
salc
mov edx, esi
mov edx, dword [esi]
stc
mov di, word [esp]
jmp 0xb950e7
lodsd eax, dword [esi]
and edx, ecx
call fcn.00b95267
test al, 0x2e
mov esp, 0xba8736db
inc ebx
sal dword [esi + reloc.MSVCRT.dll_malloc], cl
xor cl, bh
mov edx, dword [edx*4 + reloc.MSVCRT.dll_malloc]
jmp 0xb9513a
xor edi, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
not bh
lea ebx, [eax*4]
jmp 0xb95416
mov ebx, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
and ebx, ecx
stc
jmp 0xb9537a
mov edx, dword [esi + 0xc]
jmp 0xb953da
sub esp, 0x14
and edx, ecx
lea esp, [esp + 0x14]
xor edi, dword [edx*4 + reloc.MSVCRT.dll_malloc]
jmp 0xb9539c
mov di, cx
jmp 0xb953ff
mov dword [esi + 8], edi
stc
mov ebx, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
and edi, esi
jmp 0xb953c4
shr edi, 0x18
pushal
jmp 0xb954d2
mov edi, edx
jmp 0xb953e9
movzx ebx, byte [esi + 0xd]
and edx, ecx
mov edx, dword [edx*4 + reloc.MSVCRT.dll_malloc]
jmp 0xb953b2
and ebx, ecx
call fcn.00b95425
lea esp, [esp + 0x38]
xor edi, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
mov bx, di
jmp 0xb9548d
mov edi, dword [edi*4 + reloc.MSVCRT.dll_malloc]
push di
sub esp, 0x15
mov word [esp + 0xd], si
lea esp, [esp + 3]
jmp 0xb9543b
mov edx, dword [edx*4 + reloc.MSVCRT.dll_malloc]
jmp 0xb954b2
movzx ebx, byte [esi + 0xe]
mov ebx, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
and edx, ecx
jmp 0xb95477
lea esp, [esp + 3]
jmp 0xb954f5
and ebx, ecx
stc
xor edi, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
sub esp, 0xf
jmp 0xb9549c
mov edi, dword [edi*4 + reloc.MSVCRT.dll_malloc]
and edi, ecx
push edx
clc
jmp 0xb95460
and edx, ecx
call 0xb954df
lea esp, [esp + 0xc]
xor edi, dword [edx*4 + reloc.MSVCRT.dll_malloc]
jmp 0xb95549
add ebp, 0xa
movzx ebx, byte [ebp]
pop ebp
cmc
clc
jmp 0xb95390
lea ecx, [ecx + 0xc]
mov dword [ecx], edi
pop ecx
call 0xb9552d
mov dl, 0x66
mov dword [esp + 1], esp
jmp 0xb95567
dec dword [ebp - 4]
push ecx
mov ecx, esi
jmp 0xb95521
pop esi
push esi
mov bh, 0x79
pop ebx
jmp 0xb95577
lea esp, [esp + 4]
jne 0xb3b7f6
je 0xb3b7bf
pop ebx
leave
ret
mov bl, dl
mov bh, byte [esp]
push ebp
mov ebp, esi
jmp 0xb95512
out 0xe, eax
cdq
and ebx, ecx
lea esp, [esp + 0x28]
xor edi, dword [ebx*4 + reloc.MSVCRT.dll_malloc]
mov bl, 0x1e
or ebx, 0x6a00dc58
jmp 0xb95592
call 0xb961ab
cmp cl, 0x39
push esi
call 0xb961e0
aaa
mov ebx, 0xbbd4e2b
pop ds
pushfd
xor dl, byte [ebp - 0x5c]
adc eax, 0x802b8869
stc
das
mov byte [ebx], ch
cmp cl, 0x2f
call 0xb9619f
inc eax
rcl byte [esi + 0x31], 0xc0
jo 0xb957ce
jge 0xb957bf
je 0xb9575b
cmp ecx, esp
pop edi
jmp 0xb957a9
add byte [eax], al
and dword [edi + reloc.MSVCRT.dll_malloc], esp
pop edx
mov ch, 0xa4
aaa
push edx
mov eax, dword [reloc.MSVCRT.dll_malloc]
xlatb
cmp edi, 3
jne 0xb95881
je 0xb96487
cmp eax, 0xc43552bc
jp 0xb9584e
mov dword [ecx], ebx
js 0xb957d0
cmp byte [ebp + 0x2adfb82a], ch
lcall 0xe906, 0xe0c162cb
ja 0xb9585e
shl eax, 6
jmp 0xb962cd
add byte [eax], al
wait
sbb eax, 0x9427d48d
jmp 0xb958cc
cld
wait
jbe 0xb95827
inc esi
call 0xb963f8
invalid
mov byte [esp + 2], al
call fcn.00b963cd
jns 0xb95865
popal
add bl, dh
jbe 0xb958e9
pushal
pop es
inc edx
jae 0xb958ea
test eax, ebp
call 0x35b95891
mov dh, 0x24
inc ebx
mov esi, 0x3bab250f
pop esi
lodsd eax, dword [esi]
sbb ecx, dword [esi - 0x27]
cmp byte [ebx], bl
jb 0xb95823
call 0xb9636e
xor eax, 0xbe4324b6
invalid
in al, dx
jmp 0xb958c3
push ecx
call 0xb95906
insb byte es:[edi], dx
out dx, eax
jg 0xb958e7
sbb ch, cl
inc esp
mov al, byte [eax]
xchg esi, eax
int1
add byte [edi - 0x1960f3c3], al
adc dword [ebx - reloc.MSVCRT.dll_malloc], eax
or byte [eax], al
add byte [eax + 0x12e78012], dl
jmp 0x96b9e316
mov byte [0x62079712], al
xchg ecx, eax
mov ah, byte cs:[0x24648966]
add al, 0x8d
and al, 2
xchg edi, eax
pop es
bound edx, qword [ecx + 0x66258a2e]
mov dword [esp + 4], esp
lea esp, [esp + 2]
jmp 0xb96332
mov edi, eax
mov al, byte [ecx]
call fcn.00b95a1b
lea esp, [esp + 4]
jne 0xb957d7
je 0xb96214
lea esp, [esp + 4]
pop ecx
jmp 0xb9584e
push 0x3f
jmp 0xb957a4
shl eax, 0xc
call 0xb962b7
sub byte [ebx - 0x72fcdb8c], cl
and al, 0x24
jmp 0xb962f3
or eax, esi
bswap esi
bsr si, bx
add si, di
mov si, di
jmp 0xb962ae
lea esp, [esp + 4]
pop esi
call fcn.00b962dd
shl edx, 6
jmp 0xb964e0
mov dword [esp + 4], ebx
mov dword [esp], edi
lea edi, [ebx*4]
lea edi, [ebx + 0xdb]
jmp 0xb96196
shr edx, 0x10
jmp 0xb963be
neg edx
jmp 0xb9639e
lea esp, [esp + 0x20]
cmp edi, 2
jb 0xb95864
mov dl, 0xe1
bswap edx
jmp 0xb96375
mov edx, eax
shr edx, 8
mov byte [ecx + 1], dl
jmp 0xb95864
imul eax, esi, 0x71168005
xor byte [ebx], 0xbd
lea esp, [esp + 4]
mov byte [ecx], dl
sub esp, 0x1c
push dword [esp + 0x19]
jmp 0xb9638b
inc edi
jmp 0xb95869
call fcn.00b96939
push esi
aam 0x4a
sub eax, 0x41c06cdc
sal dword [eax + reloc.MSVCRT.dll_malloc], 1
cli
aad 0x44
pop ebx
leave
ret
call fcn.00b3bca6
xor al, 0xb2
and byte [edi - 0x4e], al
add esi, dword [esi]
mov bh, 0x27
inc edi
mov dl, 3
mov bh, 0x27
inc edx
mov cl, 0xf
sub al, byte [ebp - 0xc]
out 0xe, eax
out dx, eax
insb byte es:[edi], dx
loop 0xb963b5
je 0xb963f7
sti
jns 0xb9641e
mov byte [ebx - 0x37], bh
fdivr dword [ebx]
adc cl, byte [ebp - 0x769f90e4]
inc esp
and al, 0x14
sub esp, 0x11
lea esp, [esp + 1]
lea esp, [esp + 0x10]
popal
jmp 0xb96358
or eax, ecx
jmp 0xb95881
or eax, edx
jmp 0xb9582f
mov edi, dword [ebp + 0xc]
lea esp, [esp + 8]
jmp 0xb3bb5b
and eax, edx
setle bh
jmp 0xb96682
jne 0xb3bbb2
cli
push dword [edx - 0x37]
je 0xb9663c
leave
dec ebp
frstor dword [edi + edx*2 + reloc.MSVCRT.dll_malloc]
sub esp, esi
push esi
scasd eax, dword es:[edi]
mov dh, 0xa1
loopne 0xb96656
lds ebp, [edx + 0x3e]
push 0x3e
mov ax, 0xe8dd
jmp 0xb96689
mov ebx, eax
jmp 0xb3bb8f
mov eax, dword [esp]
cmc
lea esp, [esp + 4]
and al, 4
cmp ecx, 0x1a
jmp 0xb966d2
cmp ecx, 0x34
jmp 0xb966b7
cmc
mov edi, eax
shr edi, 6
call 0xb9666a
jae 0xb3bc44
call fcn.00b96722
in eax, dx
outsb dx, byte [esi]
cld
wait
jbe 0xb9668f
std
adc dword [ebx], 0x76
test dword [ebx], esi
invalid
jae 0xb3bbde
mov dh, 0xcb
mov dl, bh
lea edx, [ecx + 0x41]
jmp 0xb3bbc8
jae 0xb3bc23
mov dl, byte [esp]
jmp 0xb96702
lea edx, [ecx - 4]
jmp 0xb3bbc8
lea esp, [esp + 3]
jmp 0xb9674a
cmp ecx, eax
lea esp, [esp + 0x10]
setne dl
call fcn.00b96734
ror byte [edx - 0x28], 0xbf
dec edx
int 0x6b
out dx, eax
jg 0xb9677c
jmp 0x96b9eaae
stc
jge 0xb967fd
wait
jmp 0xb966ac
out dx, al
inc esi
mov bh, 0xe9
lcall 0x1d8d, 0xd000001
xchg edi, eax
and eax, 0xeb8c1e9d
xchg edi, eax
out dx, eax
mul cl
and byte [ebx - 0x66], ah
cmp esi, 0x1a
call fcn.00b9679b
push si
push word [esp + 1]
jmp 0xb96875
lea esp, [esp + 0x10]
setne cl
call fcn.00b9685f
jae 0xb3bc86
pushal
jmp 0xb968fc
jae 0xb963fd
mov cx, dx
mov cx, dx
jmp 0xb96908
jae 0xb3bcda
lea ecx, [edi + 0x47]
jmp 0xb3bcf0
lea esp, [esp + 0x20]
lea ecx, [edi + 0x41]
jmp 0xb3bcf0
lea ecx, [esi*4]
mov ecx, 0x9624698f
jmp 0xb96963
lea ecx, [edi - 4]
jmp 0xb3bcf0
mov byte [edx + 2], cl
jmp 0xb96416
mov byte [ecx], dl
sub esp, 7
lea esp, [esp + 3]
lea esp, [esp + 4]
jmp 0xb96817