Function at 0x12c09d5
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x10]
mov ebx, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x20]
mov ebx, dword [edi + 0x24]
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x30]
mov ebx, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x40]
mov ebx, dword [edi + 0x44]
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x50]
mov ebx, dword [edi + 0x54]
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x60]
mov ebx, dword [edi + 0x64]
mov ecx, dword [edi + 0x68]
mov edx, dword [edi + 0x6c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
mov eax, dword [edi + 0x70]
mov ebx, dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
mov edx, dword [edi + 0x7c]
bswap eax
bswap ebx
bswap ecx
bswap edx
push eax
push ebx
push ecx
push edx
add edi, 0x80
sub esp, 0x48
mov dword [esp + 0xcc], edi
lea edi, [esp + 8]
mov ecx, 0x10
mov esi, esi
rep movsd dword es:[edi], dword [esi]
lea esi, [esi]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, ecx
shr ecx, 9
mov edi, edx
shr edx, 9
mov ebx, ecx
shl esi, 0xe
mov eax, edx
shl edi, 0xe
xor ebx, esi
shr ecx, 5
xor eax, edi
shr edx, 5
xor eax, ecx
shl esi, 4
xor ebx, edx
shl edi, 4
xor ebx, esi
shr ecx, 4
xor eax, edi
shr edx, 4
xor eax, ecx
shl esi, 5
xor ebx, edx
shl edi, 5
xor eax, esi
xor ebx, edi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
adc ebx, dword [esp + 0x44]
xor ecx, esi
xor edx, edi
and ecx, dword [esp + 0x28]
and edx, dword [esp + 0x2c]
add eax, dword [esp + 0xc0]
adc ebx, dword [esp + 0xc4]
xor ecx, esi
xor edx, edi
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
add eax, ecx
adc ebx, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add eax, esi
adc ebx, edi
mov dword [esp], eax
mov dword [esp + 4], ebx
add eax, ecx
adc ebx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov esi, ecx
shr ecx, 2
mov edi, edx
shr edx, 2
mov ebx, ecx
shl esi, 4
mov eax, edx
shl edi, 4
xor ebx, esi
shr ecx, 5
xor eax, edi
shr edx, 5
xor ebx, ecx
shl esi, 0x15
xor eax, edx
shl edi, 0x15
xor eax, esi
shr ecx, 0x15
xor ebx, edi
shr edx, 0x15
xor eax, ecx
shl esi, 5
xor ebx, edx
shl edi, 5
xor eax, esi
xor ebx, edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add eax, dword [esp]
adc ebx, dword [esp + 4]
or ecx, esi
or edx, edi
and ecx, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
and esi, dword [esp + 8]
and edi, dword [esp + 0xc]
or ecx, esi
or edx, edi
add eax, ecx
adc ebx, edx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dl, byte [ebp]
sub esp, 8
lea ebp, [ebp + 8]
cmp dl, 0x94
jne 0x12c06e0
nop
lea esi, [esi]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x13c]
mov esi, ecx
shr ecx, 1
mov edi, edx
shr edx, 1
mov eax, ecx
shl esi, 0x18
mov ebx, edx
shl edi, 0x18
xor ebx, esi
shr ecx, 6
xor eax, edi
shr edx, 6
xor eax, ecx
shl esi, 7
xor ebx, edx
shl edi, 1
xor ebx, esi
shr ecx, 1
xor eax, edi
shr edx, 1
xor eax, ecx
shl edi, 6
xor ebx, edx
xor eax, edi
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov esi, ecx
shr ecx, 6
mov edi, edx
shr edx, 6
mov eax, ecx
shl esi, 3
mov ebx, edx
shl edi, 3
xor eax, esi
shr ecx, 0xd
xor ebx, edi
shr edx, 0xd
xor eax, ecx
shl esi, 0xa
xor ebx, edx
shl edi, 0xa
xor ebx, esi
shr ecx, 0xa
xor eax, edi
shr edx, 0xa
xor ebx, ecx
shl edi, 0xd
xor eax, edx
xor eax, edi
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x144]
add eax, dword [esp]
adc ebx, dword [esp + 4]
mov esi, dword [esp + 0xf8]
mov edi, dword [esp + 0xfc]
add eax, ecx
adc ebx, edx
add eax, esi
adc ebx, edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ebx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, ecx
shr ecx, 9
mov edi, edx
shr edx, 9
mov ebx, ecx
shl esi, 0xe
mov eax, edx
shl edi, 0xe
xor ebx, esi
shr ecx, 5
xor eax, edi
shr edx, 5
xor eax, ecx
shl esi, 4
xor ebx, edx
shl edi, 4
xor ebx, esi
shr ecx, 4
xor eax, edi
shr edx, 4
xor eax, ecx
shl esi, 5
xor ebx, edx
shl edi, 5
xor eax, esi
xor ebx, edi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
adc ebx, dword [esp + 0x44]
xor ecx, esi
xor edx, edi
and ecx, dword [esp + 0x28]
and edx, dword [esp + 0x2c]
add eax, dword [esp + 0xc0]
adc ebx, dword [esp + 0xc4]
xor ecx, esi
xor edx, edi
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
add eax, ecx
adc ebx, edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
add eax, esi
adc ebx, edi
mov dword [esp], eax
mov dword [esp + 4], ebx
add eax, ecx
adc ebx, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov esi, ecx
shr ecx, 2
mov edi, edx
shr edx, 2
mov ebx, ecx
shl esi, 4
mov eax, edx
shl edi, 4
xor ebx, esi
shr ecx, 5
xor eax, edi
shr edx, 5
xor ebx, ecx
shl esi, 0x15
xor eax, edx
shl edi, 0x15
xor eax, esi
shr ecx, 0x15
xor ebx, edi
shr edx, 0x15
xor eax, ecx
shl esi, 5
xor ebx, edx
shl edi, 5
xor eax, esi
xor ebx, edi
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add eax, dword [esp]
adc ebx, dword [esp + 4]
or ecx, esi
or edx, edi
and ecx, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
and esi, dword [esp + 8]
and edi, dword [esp + 0xc]
or ecx, esi
or edx, edi
add eax, ecx
adc ebx, edx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dl, byte [ebp]
sub esp, 8
lea ebp, [ebp + 8]
cmp dl, 0x17
jne 0x12c0820
mov esi, dword [esp + 0x348]
mov edi, dword [esp + 0x34c]
mov eax, dword [esi]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
add eax, dword [esp + 8]
adc ebx, dword [esp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ebx
add ecx, dword [esp + 0x10]
adc edx, dword [esp + 0x14]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
add eax, dword [esp + 0x18]
adc ebx, dword [esp + 0x1c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ebx
add ecx, dword [esp + 0x20]
adc edx, dword [esp + 0x24]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], edx
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
add eax, dword [esp + 0x28]
adc ebx, dword [esp + 0x2c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ebx
add ecx, dword [esp + 0x30]
adc edx, dword [esp + 0x34]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
add eax, dword [esp + 0x38]
adc ebx, dword [esp + 0x3c]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ebx
add ecx, dword [esp + 0x40]
adc edx, dword [esp + 0x44]
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], edx
add esp, 0x348
sub ebp, 0x280
cmp edi, dword [esp + 8]
jb 0x12c0600
mov esp, dword [esp + 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret