Function at 0x6a1420
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
lea ecx, [edi + 0x100]
lea ebx, [edi + 0x11f]
test ecx, ecx
cmovns ebx, ecx
test ebp, ebp
sete cl
test esi, esi
sete dl
or dl, cl
mov eax, 0xffffffff
jne 0x6a1e9f
cmp edi, 0x80
je 0x6a1485
cmp edi, 0x100
je 0x6a1485
mov eax, 0xfffffffe
cmp edi, 0xc0
jne 0x6a1e9f
sar ebx, 5
mov dword [esi + 0x110], ebx
lea eax, [edi - 0x80]
shr eax, 2
mov ebx, eax
mov dword [esp + 8], eax
movzx eax, byte [ebp]
mov dword [esp + 0x6c], eax
shl eax, 0x18
movzx edx, byte [ebp + 1]
shl edx, 0x10
or edx, eax
movzx ecx, byte [ebp + 2]
shl ecx, 8
movzx eax, byte [ebp + 4]
mov dword [esp + 0x68], eax
shl eax, 0x18
movzx esi, byte [ebp + 5]
shl esi, 0x10
or esi, eax
movzx eax, byte [ebp + 3]
mov dword [esp + 0x4c], eax
or ecx, eax
mov dword [esp + 0x64], edx
or ecx, edx
mov edx, dword [ebx + 0xa49900]
mov dword [esp + 0x34], ecx
xor edx, ecx
mov dword [esp], edx
mov eax, edx
shr eax, 0x18
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3fc
mov edi, dword [ecx + 0xa48d00]
xor edi, dword [eax*4 + 0xa48900]
movzx eax, byte [ebp + 8]
mov dword [esp + 0x5c], eax
shl eax, 0x18
movzx edx, byte [ebp + 9]
shl edx, 0x10
or edx, eax
movzx eax, byte [ebp + 6]
shl eax, 8
movzx ecx, byte [ebp + 7]
mov dword [esp + 0x48], ecx
or eax, ecx
mov dword [esp + 0x60], esi
or eax, esi
mov ecx, dword [ebx + 0xa49904]
mov dword [esp + 0x2c], eax
xor ecx, eax
mov eax, ecx
mov dword [esp + 4], ecx
shr eax, 0x18
shr ecx, 0xe
and ecx, 0x3fc
mov esi, dword [ecx + 0xa48d00]
xor esi, dword [eax*4 + 0xa48900]
movzx eax, byte [ebp + 0xa]
shl eax, 8
movzx ecx, byte [ebp + 0xb]
mov dword [esp + 0x44], ecx
or eax, ecx
mov dword [esp + 0x54], edx
or eax, edx
mov edx, dword [ebx + 0xa49908]
mov dword [esp + 0x30], eax
xor edx, eax
mov dword [esp + 0xc], edx
mov eax, edx
shr eax, 0x18
shr edx, 0xe
and edx, 0x3fc
mov edx, dword [edx + 0xa48d00]
xor edx, dword [eax*4 + 0xa48900]
movzx eax, byte [ebp + 0xc]
mov dword [esp + 0x58], eax
shl eax, 0x18
movzx ebx, byte [ebp + 0xd]
shl ebx, 0x10
or ebx, eax
movzx eax, byte [ebp + 0xe]
shl eax, 8
movzx ecx, byte [ebp + 0xf]
mov dword [esp + 0x40], ecx
or eax, ecx
mov dword [esp + 0x50], ebx
or eax, ebx
mov ecx, dword [esp + 8]
mov ebx, dword [ecx + 0xa4990c]
mov dword [esp + 0x1c], eax
xor ebx, eax
mov eax, ebx
shr eax, 0x18
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + 0xa48d00]
xor ecx, dword [eax*4 + 0xa48900]
mov eax, dword [esp]
movzx eax, ah
xor edi, dword [eax*4 + 0xa49100]
movzx eax, byte [esp]
xor edi, dword [eax*4 + 0xa49500]
mov eax, dword [esp + 4]
movzx eax, ah
xor esi, dword [eax*4 + 0xa49100]
movzx eax, byte [esp + 4]
xor esi, dword [eax*4 + 0xa49500]
mov eax, dword [esp + 0xc]
movzx eax, ah
xor edx, dword [eax*4 + 0xa49100]
movzx eax, byte [esp + 0xc]
xor edx, dword [eax*4 + 0xa49500]
movzx eax, bh
xor ecx, dword [eax*4 + 0xa49100]
movzx eax, bl
xor ecx, dword [eax*4 + 0xa49500]
xor esi, edx
xor edx, ecx
xor ecx, esi
xor esi, edi
mov ebx, edx
xor edx, edi
mov edi, dword [esp + 0x88]
xor ebx, esi
bswap edx
ror edx, 0x10
rol ebx, 0x10
mov eax, dword [esp + 8]
lea eax, [eax + 0xa49900]
mov dword [esp + 0x10], eax
bswap ecx
xor edx, ebx
mov dword [esp + 8], ecx
xor ebx, ecx
mov eax, edx
mov dword [esp + 0xc], esi
xor eax, esi
mov ebp, 0
mov ecx, 0
mov dword [esp], 0
mov esi, 0
cmp edi, 0x81
jb 0x6a16f0
mov edi, dword [esp + 0x84]
mov esi, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
bswap esi
mov dword [esp + 4], esi
bswap ecx
cmp dword [esp + 0x88], 0xc1
jb 0x6a16e3
mov esi, edi
mov edi, dword [edi + 0x18]
mov esi, dword [esi + 0x1c]
bswap edi
mov dword [esp], edi
bswap esi
jmp 0x6a16ec
mov dword [esp], 0
xor esi, esi
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0xc]
xor edi, ecx
xor edi, ebx
mov dword [esp + 0xc], edi
mov ecx, dword [esp]
xor ecx, ebx
xor ebp, eax
mov dword [esp + 4], ebp
xor ecx, eax
mov dword [esp], ecx
mov eax, dword [esp + 8]
xor eax, esi
xor eax, edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x10]
xor ecx, ebp
mov edx, ecx
shr edx, 0x18
mov eax, ecx
shr eax, 0xe
and eax, 0x3fc
mov eax, dword [eax + 0xa49500]
xor eax, dword [edx*4 + 0xa49100]
movzx edx, ch
xor eax, dword [edx*4 + 0xa48900]
movzx ecx, cl
xor eax, dword [ecx*4 + 0xa48d00]
mov ecx, dword [ebx + 0x14]
xor ecx, dword [esp + 0xc]
mov edx, ecx
shr edx, 0x18
mov esi, ecx
shr esi, 0xe
and esi, 0x3fc
mov ebp, dword [esi + 0xa49500]
xor ebp, dword [edx*4 + 0xa49100]
movzx edx, ch
xor ebp, dword [edx*4 + 0xa48900]
movzx ecx, cl
xor ebp, dword [ecx*4 + 0xa48d00]
mov ecx, dword [ebx + 0x18]
xor ecx, dword [esp]
mov edx, ecx
shr edx, 0x18
mov esi, ecx
shr esi, 0xe
and esi, 0x3fc
mov edi, dword [esi + 0xa49500]
xor edi, dword [edx*4 + 0xa49100]
movzx edx, ch
xor edi, dword [edx*4 + 0xa48900]
movzx ecx, cl
xor edi, dword [ecx*4 + 0xa48d00]
mov edx, dword [ebx + 0x1c]
xor edx, dword [esp + 8]
mov ebx, edx
shr ebx, 0x18
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + 0xa49500]
xor ecx, dword [ebx*4 + 0xa49100]
movzx esi, dh
xor ecx, dword [esi*4 + 0xa48900]
movzx edx, dl
xor ecx, dword [edx*4 + 0xa48d00]
mov esi, edi
xor ebp, edi
xor esi, ecx
xor ecx, ebp
xor ebp, eax
mov edx, esi
xor esi, eax
bswap ecx
ror ecx, 0x10
xor edx, ebp
rol ebp, 0x10
bswap esi
xor esi, edx
xor edx, ecx
mov edi, esi
xor edi, ebp
xor ebp, dword [esp + 0x2c]
xor ebp, edx
mov dword [esp + 0x3c], ebp
mov eax, edi
xor edi, dword [esp + 0x30]
xor edi, edx
mov dword [esp + 0x28], edi
xor esi, dword [esp + 0x1c]
xor esi, ecx
mov dword [esp + 0x24], esi
xor eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x10]
mov ebx, dword [edx + 0x20]
xor ebx, eax
mov eax, ebx
shr eax, 0x18
mov ecx, ebx
shr ecx, 0xe
and ecx, 0x3fc
mov ecx, dword [ecx + 0xa48d00]
xor ecx, dword [eax*4 + 0xa48900]
mov dword [esp + 0x14], ecx
mov esi, dword [edx + 0x24]
mov ecx, edx
xor esi, ebp
mov dword [esp + 0x18], esi
mov eax, esi
shr eax, 0x18
mov edx, esi
shr edx, 0xe
and edx, 0x3fc
mov edi, dword [edx + 0xa48d00]
xor edi, dword [eax*4 + 0xa48900]
mov ebp, dword [ecx + 0x28]
xor ebp, dword [esp + 0x28]
mov dword [esp + 0x20], ebp
mov eax, ebp
shr eax, 0x18
shr ebp, 0xe
and ebp, 0x3fc
mov ebp, dword [ebp + 0xa48d00]
xor ebp, dword [eax*4 + 0xa48900]
mov edx, dword [ecx + 0x2c]
xor edx, dword [esp + 0x24]
mov eax, edx
shr eax, 0x18
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3fc
mov esi, dword [ecx + 0xa48d00]
xor esi, dword [eax*4 + 0xa48900]
movzx eax, bh
mov ecx, dword [esp + 0x14]
xor ecx, dword [eax*4 + 0xa49100]
movzx eax, bl
xor ecx, dword [eax*4 + 0xa49500]
mov ebx, ecx
mov ecx, dword [esp + 0x18]
movzx eax, ch
xor edi, dword [eax*4 + 0xa49100]
movzx eax, cl
xor edi, dword [eax*4 + 0xa49500]
mov ecx, dword [esp + 0x20]
movzx eax, ch
xor ebp, dword [eax*4 + 0xa49100]
movzx eax, cl
xor ebp, dword [eax*4 + 0xa49500]
movzx eax, dh
xor esi, dword [eax*4 + 0xa49100]
movzx eax, dl
xor esi, dword [eax*4 + 0xa49500]
xor edi, ebp
xor ebp, esi
xor esi, edi
mov dword [esp + 0x14], esi
xor edi, ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], ebp
xor ebp, ebx
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 8]
mov edx, ecx
mov eax, dword [esp + 4]
shld edx, eax, 0xd
xor edx, dword [esp + 0x34]
mov edi, eax
mov ebp, dword [esp + 0xc]
shld edi, ebp, 0xd
mov esi, dword [esp + 0x8c]
mov dword [esi], edx
xor edi, dword [esp + 0x2c]
mov dword [esi + 4], edi
mov eax, ebp
mov edx, dword [esp]
shld eax, edx, 0xd
xor eax, dword [esp + 0x30]
mov dword [esi + 8], eax
mov eax, edx
mov ebx, ecx
shld eax, ecx, 0xd
xor eax, dword [esp + 0x1c]
mov dword [esi + 0xc], eax
mov edi, dword [esp + 0x24]
mov eax, edi
mov ecx, dword [esp + 0x38]
shld eax, ecx, 0xd
xor eax, dword [esp + 4]
mov edx, dword [esp + 0x3c]
shld ecx, edx, 0xd
mov dword [esi + 0x10], eax
xor ecx, ebp
mov dword [esi + 0x14], ecx
mov ecx, dword [esp + 0x28]
shld edx, ecx, 0xd
mov ebp, dword [esp]
xor edx, ebp
mov dword [esi + 0x18], edx
mov eax, ecx
shld eax, edi, 0xd
mov ecx, ebx
xor eax, ebx
mov dword [esi + 0x1c], eax
mov edx, dword [esp + 0x20]
bswap edx
ror edx, 0x10
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
xor edi, ebx
rol edi, 0x10
mov eax, dword [esp + 0x14]
bswap eax
xor edx, edi
xor edi, eax
xor eax, ecx
xor eax, edx
mov ecx, eax
mov eax, ebx
xor edx, ebx
xor eax, dword [esp + 0xc]
xor eax, edi
xor edi, ebp
xor edi, edx
mov ebx, edi
xor edx, dword [esp + 4]
mov edi, ecx
mov dword [esp + 0x14], ecx
shld ecx, edx, 0xd
xor ecx, dword [esp + 0x38]
mov dword [esi + 0x20], ecx
mov ecx, edx
mov ebp, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], eax
shld ecx, eax, 0xd
xor ecx, dword [esp + 0x3c]
mov dword [esi + 0x24], ecx
mov ecx, eax
shld ecx, ebx, 0xd
xor ecx, dword [esp + 0x28]
mov edx, ebx
mov eax, ebx
mov dword [esp + 0x18], ebx
shld edx, edi, 0xd
mov dword [esi + 0x28], ecx
xor edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x1c]
shrd ecx, edi, 0x13
mov dword [esi + 0x2c], edx
xor ecx, ebp
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x34]
shrd edx, edi, 0x13
mov dword [esi + 0x30], ecx
xor edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x2c]
shrd ecx, ebx, 0x13
mov dword [esi + 0x34], edx
xor ecx, eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
shrd edx, eax, 0x13
mov dword [esi + 0x38], ecx
xor edx, dword [esp + 0x14]
mov dword [esi + 0x3c], edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
shld ecx, edx, 1
xor ecx, edi
mov dword [esi + 0x40], ecx
mov ecx, edx
mov ebp, dword [esp + 0xc]
shld ecx, ebp, 1
xor ecx, ebx
mov dword [esi + 0x44], ecx
mov ecx, ebp
mov edi, dword [esp]
shld ecx, edi, 1
xor ecx, eax
mov edx, edi
mov ebx, edi
mov edi, dword [esp + 8]
shld edx, edi, 1
mov dword [esi + 0x48], ecx
xor edx, dword [esp + 0x1c]
mov dword [esi + 0x4c], edx
mov eax, dword [esp + 0x24]
mov ecx, eax
mov edx, dword [esp + 0x38]
shld ecx, edx, 1
xor ecx, dword [esp + 4]
mov dword [esi + 0x50], ecx
mov ecx, edx
mov edx, dword [esp + 0x3c]
shld ecx, edx, 1
xor ecx, ebp
mov dword [esi + 0x54], ecx
mov ecx, edx
mov edx, dword [esp + 0x28]
shld ecx, edx, 1
xor ecx, ebx
shld edx, eax, 1
mov dword [esi + 0x58], ecx
xor edx, edi
mov dword [esi + 0x5c], edx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov eax, dword [esp + 0x20]
shld ecx, eax, 1
xor ecx, dword [esp + 0x38]
mov dword [esi + 0x60], ecx
mov ecx, eax
mov edi, eax
mov ebp, dword [esp + 0x10]
shld ecx, ebp, 1
xor ecx, dword [esp + 0x3c]
mov dword [esi + 0x64], ecx
mov ecx, ebp
mov eax, dword [esp + 0x18]
shld ecx, eax, 1
xor ecx, dword [esp + 0x28]
mov edx, eax
shld edx, ebx, 1
mov dword [esi + 0x68], ecx
xor edx, dword [esp + 0x24]
mov dword [esi + 0x6c], edx
mov ecx, dword [esp + 0x6c]
shr ecx, 7
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + edx*2]
xor ecx, edi
mov dword [esi + 0x70], ecx
mov ecx, dword [esp + 0x68]
shr ecx, 7
mov edx, dword [esp + 0x34]
lea ecx, [ecx + edx*2]
xor ecx, ebp
mov dword [esi + 0x74], ecx
mov ecx, dword [esp + 0x5c]
shr ecx, 7
mov ebx, dword [esp + 0x2c]
lea ecx, [ecx + ebx*2]
xor ecx, eax
mov dword [esi + 0x78], ecx
mov ecx, dword [esp + 0x58]
shr ecx, 7
mov edi, dword [esp + 0x30]
lea ecx, [ecx + edi*2]
xor ecx, dword [esp + 0x14]
mov dword [esi + 0x7c], ecx
mov ebp, dword [esp + 0xc]
mov ecx, ebp
mov eax, dword [esp]
shld ecx, eax, 0x1d
xor ecx, edx
mov dword [esi + 0x80], ecx
mov ecx, eax
mov eax, dword [esp + 8]
shld ecx, eax, 0x1d
xor ecx, ebx
mov dword [esi + 0x84], ecx
mov ecx, eax
mov eax, dword [esp + 4]
shld ecx, eax, 0x1d
xor ecx, edi
mov edx, eax
mov edi, ebp
shld edx, ebp, 0x1d
mov dword [esi + 0x88], ecx
xor edx, dword [esp + 0x1c]
mov dword [esi + 0x8c], edx
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
mov edx, dword [esp + 0x28]
shld ecx, edx, 0x1d
xor ecx, eax
mov dword [esi + 0x90], ecx
mov ecx, edx
mov ebp, dword [esp + 0x24]
shld ecx, ebp, 0x1d
xor ecx, edi
mov dword [esi + 0x94], ecx
mov ecx, ebp
mov edi, dword [esp + 0x38]
shld ecx, edi, 0x1d
xor ecx, dword [esp]
mov edx, edi
shld edx, ebx, 0x1d
mov dword [esi + 0x98], ecx
xor edx, dword [esp + 8]
mov dword [esi + 0x9c], edx
mov eax, dword [esp + 0x10]
mov ecx, eax
mov edx, dword [esp + 0x18]
shld ecx, edx, 0x1d
xor ecx, edi
mov dword [esi + 0xa0], ecx
mov ecx, edx
mov edx, dword [esp + 0x14]
shld ecx, edx, 0x1d
xor ecx, ebx
mov dword [esi + 0xa4], ecx
mov ecx, edx
mov ebx, edx
mov edi, dword [esp + 0x20]
shld ecx, edi, 0x1d
xor ecx, dword [esp + 0x28]
mov edx, edi
shld edx, eax, 0x1d
mov dword [esi + 0xa8], ecx
xor edx, ebp
mov dword [esi + 0xac], edx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
shld ecx, eax, 0x1d
xor ecx, edi
mov dword [esi + 0xb0], ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
shld ecx, eax, 0x1d
xor ecx, dword [esp + 0x10]
mov dword [esi + 0xb4], ecx
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
shld ecx, edi, 0x1d
xor ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x2c]
shld edx, ebp, 0x1d
mov dword [esi + 0xb8], ecx
xor edx, ebx
mov dword [esi + 0xbc], edx
mov eax, dword [esp + 4]
mov ecx, eax
mov edx, dword [esp + 0xc]
shld ecx, edx, 0x1f
xor ecx, edi
mov dword [esi + 0xc0], ecx
mov ecx, edx
mov edx, dword [esp]
mov ebx, dword [esp + 0x88]
shld ecx, edx, 0x1f
xor ecx, ebp
mov dword [esi + 0xc4], ecx
mov ecx, edx
mov edx, dword [esp + 8]
shld ecx, edx, 0x1f
xor ecx, dword [esp + 0x30]
shld edx, eax, 0x1f
mov dword [esi + 0xc8], ecx
xor edx, dword [esp + 0x1c]
mov dword [esi + 0xcc], edx
cmp ebx, 0x81
jb 0x6a1e9d
mov eax, dword [esp + 0x38]
mov ecx, eax
mov ebp, dword [esp + 0x3c]
shld ecx, ebp, 0x1f
xor ecx, dword [esp + 4]
mov edi, dword [esp + 0x8c]
mov dword [edi + 0xd0], ecx
mov ecx, ebp
mov ebx, dword [esp + 0x28]
shld ecx, ebx, 0x1f
xor ecx, dword [esp + 0xc]
mov dword [edi + 0xd4], ecx
mov ecx, ebx
mov edx, dword [esp + 0x24]
shld ecx, edx, 0x1f
xor ecx, dword [esp]
shld edx, eax, 0x1f
mov dword [edi + 0xd8], ecx
xor edx, dword [esp + 8]
mov dword [edi + 0xdc], edx
mov esi, dword [esp + 0x20]
mov ecx, esi
mov edx, dword [esp + 0x10]
shld ecx, edx, 0x1f
xor ecx, eax
mov dword [edi + 0xe0], ecx
mov ecx, edx
mov eax, dword [esp + 0x18]
shld ecx, eax, 0x1f
xor ecx, ebp
mov dword [edi + 0xe4], ecx
mov ecx, eax
mov edx, dword [esp + 0x14]
shld ecx, edx, 0x1f
xor ecx, ebx
shld edx, esi, 0x1f
mov dword [edi + 0xe8], ecx
xor edx, dword [esp + 0x24]
mov dword [edi + 0xec], edx
cmp dword [esp + 0x88], 0xc1
jb 0x6a1e9d
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
shld ecx, eax, 0x1f
mov eax, dword [esp + 0x20]
xor eax, ecx
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
shld ecx, esi, 0x1f
mov dword [edi + 0xf0], eax
mov edx, dword [esp + 0x10]
xor edx, ecx
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x1c]
shld eax, ebp, 0x1f
mov dword [edi + 0xf4], edx
mov ecx, dword [esp + 0x18]
xor ecx, eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x40]
shld eax, edx, 0x1f
mov dword [edi + 0xf8], ecx
mov ecx, dword [esp + 0x14]
xor ecx, eax
mov dword [edi + 0xfc], ecx
mov ebx, dword [esp + 4]
mov eax, ebx
mov ecx, dword [esp + 0xc]
shld eax, ecx, 0x13
xor eax, edx
mov dword [edi + 0x100], eax
mov eax, dword [esp]
shld ecx, eax, 0x13
xor ecx, dword [esp + 0x2c]
mov dword [edi + 0x104], ecx
mov ecx, dword [esp + 8]
shld eax, ecx, 0x13
xor eax, esi
mov dword [edi + 0x108], eax
shld ecx, ebx, 0x13
xor ecx, ebp
mov dword [edi + 0x10c], ecx
xor eax, eax
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret