Function at 0x10038570
Capabilities:
Encrypt data using aes mixcolumns step
Resolve function by parsing pe exports

Disassembly:
mov ebx, dword [esi + 8]
lea esi, [esi + 0xc]
add word [ebp + ebx], ax
shr bp, 0x40
jmp dword [esi]
ret
mov ax, word [ebp - 8]
jne 0x10035d3d
mov ebx, ebx
je 0x100288d8
dec ebx
and esp, dword [ecx - 0x2ba07bf1]
add byte [eax], al
je 0x10035d3d
xor eax, 0x2d587de
adc byte [eax + eax], cl
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
popfd
push eax
add dl, byte [eax]
cmp byte [eax], al
add byte [eax], al
push eax
add byte [eax], al
add byte [esi], ah
push esi
add eax, 0x3c10
add byte [eax + eax], bh
add byte [eax], al
clc
add eax, 0x1210
add byte [eax + eax], bh
add byte [eax], al
std
stosb byte es:[edi], al
add eax, 0x843c10
add byte [eax], dl
add byte [eax], al
fcom dword [esp + eax]
adc dl, ch
inc dword [ecx]
adc byte [ebx + edi*4 - 0xeffe], dl
add byte [eax], al
cmp al, 0
add byte [eax], al
fcom dword [esp + eax]
adc dl, dh
inc dword [ecx]
adc cl, bl
syscall
adc byte [ecx], dl
add byte [eax], al
add byte [eax], dl
add byte [eax], al
xchg esp, eax
mov ebx, 0xffff1002
add byte [eax], al
push eax
add byte [eax], al
add al, bl
adc al, 4
adc ah, bh
lahf
add edx, dword [eax]
rcl dword [edi], cl
add dl, byte [eax]
push eax
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
fcom dword [esp + eax]
adc byte [0xa51003a0], cl
sub al, byte [0x5010]
add byte [edx], cl
add edx, dword es:[eax]
and byte [eax], al
add byte [eax], al
inc eax
add byte [eax], al
add byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [ecx], ah
add byte [eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax], cl
add byte [eax], al
add byte [edx - 0x2f], dh
add al, 0x10
adc dword [edx + eax], ebp
adc byte [ecx], bh
add byte [eax], al
add byte [ecx], bh
add byte [eax], al
add byte [esi], dh
cmp al, 4
adc al, ch
jbe 0x100289b9
adc byte [ecx - 0x3ceffa56], cl
mov dword [edx], eax
stosb byte es:[edi], al
add eax, 0x289c310
adc bh, dh
mov ch, 0x9c
mov dword [edx + 0x76e81005], ebp
add dl, byte [eax]
xor al, 0xeb
mov byte [esi + 0xbb], al
ja 0x100534dc
jbe 0x100289df
mov esp, 0xf02d471
xchg bh, dh
stosb byte es:[edi], al
add al, byte [eax]
jbe 0x100534dc
and eax, 0xc3f76697
dec esi
aam 0x81
loop 0x100289ee
invalid
inc dword [eax]
add byte [edi], cl
or byte [edi - 0x7fffc97], 0x81
rcl dword [ecx], 0
add byte [eax], al
xchg bp, ax
xchg bp, ax
mov edx, edx
push dword [esi + 4]
shr ch, 0x40
lea esi, [esi + 8]
mov dword [ebp + 0x48], esp
jne 0x1003acc1
je 0x10029ef7
push cs
adc dl, byte [edx - 0x74a1a96e]
inc esi
add al, 0xe8
test al, 0x60
add byte [eax], al
push 1
lea edx, [ebp - 0x100]
push ecx
push ecx
pop ecx
jmp 0x100324bb
push edx
call fcn.10038f72
add esp, 0x10
test ax, ax
jb 0x1004dd75
and byte [eax + edi*4 - 0x7bf0ffff], 0xc1
into
add dword [eax], eax
je 0x1004f398
jne 0x100324df
jle 0x100324cc
cmc
in eax, 0xdc
in eax, dx
jmp 0x100324e0
push eax
shr ebx, 0x40
mov ecx, ecx
mov eax, dword [esi]
push eax
call fcn.1003c459
add esp, 8
pop esi
mov esp, ebp
ja 0x1004f391
jbe 0x10032506
int 0xa9
mov ch, 0xdb
fisttp word [edi]
xchg byte [ebp - 0x25fffe32], al
imul esp, dword [esi - 0x69], 0x66
xchg edi, eax
jbe 0x1004f391
fisubr dword [ebx + 0x66]
xchg edi, eax
xchg di, ax
push esi
pop esi
shr ch, 0x40
ja 0x10029eda
jbe 0x10032522
adc dword [edi - 0x1b], edx
jbe 0x10029eda
fld dword [0x424648d]
mov ebp, ebp
mov ah, ah
mov eax, dword [esi + 4]
mov eax, dword [ebp + eax]
mov ebx, dword [esi + 8]
mov eax, dword [eax]
jne 0x10040fdf
je 0x10032549
add eax, 0x840f53da
je 0x10040fdf
nop
ljmp 0xf766
mov ecx, 0x661ff766
shl ebp, 0x20
jmp dword [esi]
mov eax, dword [0x1008df74]
test eax, eax
jb 0x1004045d
jne 0x10034f1f
je 0x10034ef3
cld
cpuid
ret
call fcn.1002df7b
cmp ch, ch
test eax, eax
jb 0x1004d74a
mov cl, cl
jne 0x10034f1f
je 0x10034f10
cpuid
ret
xor ax, ax
jb 0x1004dbaa
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 4]
push 0
jmp 0x10034f25
push eax
mov eax, dword [ebp + 8]
mov ah, ah
lea ecx, [ebp - 0xc]
push 6
shl di, 0x20
jmp 0x10034f36
push ecx
lea edx, [ebp - 0xc]
push 6
mov eax, eax
jmp 0x10034f40
push edx
push 0x9c402450
push eax
mov word [ebp - 0xc], 0
mov word [ebp - 0xa], 0
call dword [0x1008e788]
test eax, eax
jb 0x1004dbb2
jne 0x10034f7d
je 0x10034f6d
xor eax, 0xd666ebc
invalid
or ax, 0xffff
jb 0x100324a0
mov esp, ebp
pop ebp
ret
stc
cmp word [ebp - 0xa], 0xfafa
je 0x100288c7
jne 0x10034f90
nop
cpuid
ret 0xd66
or ax, 0xffff
jb 0x1003856b
mov esp, ebp
pop ebp
ja 0x100288c4
jbe 0x10034faa
xchg ebx, eax
in eax, 0xb1
invalid
jbe 0x100288c4
xor eax, 0x6a178b0e
or edi, edi
mov bx, bx
mov esp, ebp
pop ebp
call fcn.10041204
fsubr dword [edi + ecx*4 - 0x7703dbbc]
pop dword [esp - 4]
mov bl, bl
invalid
invalid
xor byte [eax - 0x40], bh
out 0x20, eax
xchg ch, dl
xchg dl, ch
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
call fcn.10038d5f
lea esp, [esp + 4]
xchg edi, edx
xchg edx, edi
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
ja 0x1004ecb6
jbe 0x1003859b
or ecx, dword [ebp + 0x330094e9]
jbe 0x1004ecb6
invalid
fld dword [eax + 0xf]
test eax, edx
jmp 0x16780467
lea esi, [esi + 0xc]
add dword [ebp + ebx], eax
mov si, si
xchg bx, ax
xchg bx, ax
jmp dword [esi]
xor al, 0xe2
mov bh, 0xb
je 0x1003249e
add eax, 0x3126ff44
cmc
xchg ch, bl
xchg bl, ch
jmp 0x10059920
invalid
mov eax, dword [ebp + eax]
imul dword [ebp + ebx]
lea esi, [esi + 0xc]
mov dword [ebp + ebx], eax
xchg edx, ecx
xchg ecx, edx
jmp dword [esi]
mov bp, bp
pop ebp
ret
mov edx, dword [esi]
mov ebx, ebx
lea ecx, [ebp - 0x100]
push 0x100
push ecx
push edx
call fcn.10057996
mov ecx, dword [esi]
lea eax, [ebp - 0x180]
shr cl, 0x40
push 0xe
add ecx, 0x74
jmp 0x1004f3c3
push eax
jmp 0x1004f3c6
push ecx
call fcn.10057996
shl esi, 0x20
mov edx, dword [esi]
mov al, al
push 0
mov bl, bl
jmp 0x1004f3d9
push edx
call fcn.1003c459
add esp, 0x20
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
js 0x10024465
jns 0x1005992d
cld
lea ecx, [edi]
mov dword [edx], esi
stosd dword es:[edi], eax
cld
inc edi
pop edx
jns 0x10024465
invalid
jmp dword [esi]