Function at 0x10003ec0
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push esi
push edi
mov edi, dword [0x10054e48]
mov esi, edx
mov dword [ebp - 0x38], 0x3b
mov eax, dword [ebp - 0x38]
xor eax, 0x4d
mov byte [ebp - 0x34], al
mov eax, dword [ebp - 0x38]
inc al
xor eax, 0x54
mov byte [ebp - 0x33], al
mov eax, dword [ebp - 0x38]
add al, 2
xor eax, 0x69
mov byte [ebp - 0x32], al
mov eax, dword [ebp - 0x38]
add al, 3
xor eax, 0x7a
mov byte [ebp - 0x31], al
mov eax, dword [ebp - 0x38]
add al, 4
xor eax, 0x70
mov byte [ebp - 0x30], al
mov eax, dword [ebp - 0x38]
add al, 5
xor eax, 0x6e
mov byte [ebp - 0x2f], al
mov eax, dword [ebp - 0x38]
add al, 6
xor eax, 0x50
mov byte [ebp - 0x2e], al
mov eax, dword [ebp - 0x38]
add al, 7
xor eax, 0x35
mov byte [ebp - 0x2d], al
mov eax, dword [ebp - 0x38]
add al, 8
xor eax, 0x5a
mov byte [ebp - 0x2c], al
mov eax, dword [ebp - 0x38]
add al, 9
xor eax, 0x6d
mov byte [ebp - 0x2b], al
mov eax, dword [ebp - 0x38]
add al, 0xa
xor eax, 0x6f
mov byte [ebp - 0x2a], al
mov eax, dword [ebp - 0x38]
add al, 0xb
xor eax, 0x78
mov byte [ebp - 0x29], al
mov eax, dword [ebp - 0x38]
add al, 0xc
xor eax, 0x6a
mov byte [ebp - 0x28], al
mov eax, dword [ebp - 0x38]
add al, 0xd
xor eax, 0x62
mov byte [ebp - 0x27], al
mov eax, dword [ebp - 0x38]
add al, 0xe
xor eax, 0x61
mov byte [ebp - 0x26], al
mov eax, dword [ebp - 0x38]
add al, 0xf
xor eax, 0x63
mov byte [ebp - 0x25], al
mov eax, dword [ebp - 0x38]
add al, 0x10
xor eax, 0x41
mov byte [ebp - 0x24], al
mov eax, dword [ebp - 0x38]
add al, 0x11
xor eax, 0x47
mov byte [ebp - 0x23], al
mov eax, dword [ebp - 0x38]
add al, 0x12
xor eax, 0x70
mov byte [ebp - 0x22], al
mov eax, dword [ebp - 0x38]
add al, 0x13
xor eax, 0x53
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 0x38]
add al, 0x14
xor eax, 0x66
mov byte [ebp - 0x20], al
mov eax, dword [ebp - 0x38]
add al, 0x15
xor eax, 0x6b
mov byte [ebp - 0x1f], al
mov eax, dword [ebp - 0x38]
add al, 0x16
xor eax, 0x54
mov byte [ebp - 0x1e], al
mov eax, dword [ebp - 0x38]
add al, 0x17
xor eax, 0x41
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 0x38]
add al, 0x18
xor eax, 0x6d
mov byte [ebp - 0x1c], al
mov eax, dword [ebp - 0x38]
add al, 0x19
xor eax, 0x36
mov byte [ebp - 0x1b], al
mov eax, dword [ebp - 0x38]
add al, 0x1a
xor eax, 0x4e
mov byte [ebp - 0x1a], al
mov eax, dword [ebp - 0x38]
add al, 0x1b
xor eax, 0x59
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 0x38]
add al, 0x1c
xor eax, 0x46
mov byte [ebp - 0x18], al
mov eax, dword [ebp - 0x38]
add al, 0x1d
xor eax, 0x33
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x38]
add al, 0x1e
xor eax, 0x71
mov byte [ebp - 0x16], al
mov eax, dword [ebp - 0x38]
add al, 0x1f
xor eax, 0x36
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x38]
add al, 0x20
xor eax, 0x72
mov byte [ebp - 0x14], al
mov eax, dword [ebp - 0x38]
add al, 0x21
xor eax, 0x31
mov byte [ebp - 0x13], al
mov eax, dword [ebp - 0x38]
add al, 0x22
xor eax, 0x68
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 0x38]
add al, 0x23
xor eax, 0x4d
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x38]
add al, 0x24
xor eax, 0x64
mov byte [ebp - 0x10], al
mov eax, dword [ebp - 0x38]
add al, 0x25
xor eax, 0x32
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 0x38]
add al, 0x26
xor eax, 0x76
mov byte [ebp - 0xe], al
mov eax, dword [ebp - 0x38]
add al, 0x27
xor eax, 0x36
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0x38]
add al, 0x28
xor eax, 0x45
mov byte [ebp - 0xc], al
mov eax, dword [ebp - 0x38]
add al, 0x29
xor eax, 0x77
mov byte [ebp - 0xb], al
mov eax, dword [ebp - 0x38]
add al, 0x2a
xor eax, 0x33
mov byte [ebp - 0xa], al
mov eax, dword [ebp - 0x38]
add al, 0x2b
xor eax, 0x66
mov byte [ebp - 9], al
mov eax, dword [ebp - 0x38]
add al, 0x2c
xor eax, 0x78
mov byte [ebp - 8], al
mov eax, dword [ebp - 0x38]
add al, 0x2d
xor eax, 0x34
mov byte [ebp - 7], al
mov eax, dword [ebp - 0x38]
add al, 0x2e
mov byte [ebp - 5], 0
xor eax, 0x6f
mov byte [ebp - 6], al
mov al, byte [ebp - 0x34]
xor eax, eax
mov cl, byte [ebp + eax - 0x34]
mov edx, dword [ebp - 0x38]
add dl, al
movsx ecx, cl
xor edx, ecx
mov byte [ebp + eax - 0x34], dl
inc eax
cmp eax, 0x2f
jb 0x100040e3
xor ecx, ecx
mov byte [ebp - 5], 0
test esi, esi
jle 0x10004122
push ebx
mov ebx, 0x2f
nop dword [eax + eax]
mov eax, ecx
cdq
idiv ebx
mov al, byte [ebp + edx - 0x34]
xor byte [ecx + edi], al
inc ecx
cmp ecx, esi
jl 0x10004110
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret