Function at 0x422130
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x310
mov esi, esp
mov ebx, dword [ebp + 0xc]
lea eax, [0x449824]
mov dword [esi + 0x29c], eax
mov al, byte [esi + 0xc0]
mov byte [esi + 0xd8], al
mov byte [esi + 0xc4], 0x99
mov byte [esi + 0xc5], 0xfb
mov byte [esi + 0xc6], 0x61
mov byte [esi + 0xc7], 0xf9
mov byte [esi + 0xc8], 0x77
mov byte [esi + 0xc9], 0xff
mov byte [esi + 0xca], 0x2a
mov byte [esi + 0xcb], 0xfd
mov byte [esi + 0xcc], 0x2e
mov byte [esi + 0xcd], 0xf3
mov byte [esi + 0xce], 0x56
mov byte [esi + 0xcf], 0xf1
mov byte [esi + 0xd0], 0x56
mov byte [esi + 0xd1], 0xf7
mov byte [esi + 0xd2], 0xf6
mov byte [esi + 0xd3], 0xf5
mov eax, 0x10
mov byte [esi + eax + 0xc4], 0
add eax, 1
cmp eax, 0x11
jne 0x4221d1
xor eax, eax
cmp eax, 0x11
jae 0x422224
movzx ecx, byte [esi + eax + 0xc4]
mov edx, eax
add edx, 0x8772df7f
xor edx, ecx
mov ecx, 1
sub ecx, edx
and ecx, 1
xor ecx, 1
or edx, 1
add edx, 0x84
mov edi, ecx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esi + eax + 0xc4], cl
add eax, 1
jmp 0x4221e3
lea eax, [esi + 0xc4]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.0041b5b0
add esp, 0xc
and al, 1
movzx eax, al
mov dword [esi + 0x188], eax
mov al, byte [esi + 0xbc]
mov byte [esi + 0xdc], al
mov byte [esi + 0x18], 0x59
mov byte [esi + 0x19], 0xff
mov byte [esi + 0x1a], 0x59
mov byte [esi + 0x1b], 0xf1
mov byte [esi + 0x1c], 0x42
mov byte [esi + 0x1d], 0xf3
mov byte [esi + 0x1e], 0x46
mov byte [esi + 0x1f], 0xf5
mov byte [esi + 0x20], 0xbf
mov byte [esi + 0x21], 0xf7
mov byte [esi + 0x22], 0x88
mov byte [esi + 0x23], 0xc9
mov byte [esi + 0x24], 0x6c
mov byte [esi + 0x25], 0xcb
mov byte [esi + 0x26], 0x68
mov byte [esi + 0x27], 0xcd
mov byte [esi + 0x28], 0xcc
mov byte [esi + 0x29], 0xcf
mov eax, 0x12
mov byte [esi + eax + 0x18], 0
add eax, 1
cmp eax, 0x14
jne 0x4222a7
xor ebx, ebx
cmp ebx, 0x14
jae 0x422303
movzx ecx, byte [esi + ebx + 0x18]
mov eax, ebx
add eax, 0x15
mov edi, 0xa72fb42a
sub edi, ebx
mov edx, 0x2a
sub edx, ebx
and edx, 0xc3
and eax, 0x3c
or edx, eax
xor edx, edi
xor edx, 0xc3
and edx, edi
mov eax, ebx
add eax, 0xd5
or eax, ecx
xor ecx, 0xffffffff
or edx, ecx
and eax, edx
add al, 0xd7
mov byte [esi + ebx + 0x18], al
add ebx, 1
jmp 0x4222b6
lea eax, [esi + 0x18]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0041b5b0
add esp, 0xc
and al, 1
movzx eax, al
mov ecx, dword [esi + 0x188]
or ecx, eax
cmp ecx, 0
setne bl
mov al, byte [esi + 0xb8]
mov byte [esi + 0xe0], al
mov byte [esi + 0x118], 0x5a
mov byte [esi + 0x119], 0x3f
mov byte [esi + 0x11a], 0x4f
mov byte [esi + 0x11b], 0x31
mov byte [esi + 0x11c], 0x42
mov byte [esi + 0x11d], 0x33
mov byte [esi + 0x11e], 0x4d
mov byte [esi + 0x11f], 0x35
mov byte [esi + 0x120], 0x4c
mov byte [esi + 0x121], 0x37
mov byte [esi + 0x122], 0x4d
mov byte [esi + 0x123], 0x49
mov byte [esi + 0x124], 0x3d
mov byte [esi + 0x125], 0x4b
mov byte [esi + 0x126], 0x3e
mov byte [esi + 0x127], 0x4d
mov byte [esi + 0x128], 0x3d
mov byte [esi + 0x129], 0x4f
mov byte [esi + 0x12a], 0x3c
mov byte [esi + 0x12b], 0x41
mov byte [esi + 0x12c], 0xcb
mov byte [esi + 0x12d], 0x43
mov byte [esi + 0x12e], 0x7c
mov byte [esi + 0x12f], 0x45
mov byte [esi + 0x130], 0x31
mov byte [esi + 0x131], 0x47
mov byte [esi + 0x132], 0x35
mov byte [esi + 0x133], 0x59
mov byte [esi + 0x134], 0x24
mov byte [esi + 0x135], 0x5b
mov byte [esi + 0x136], 0x21
mov byte [esi + 0x137], 0x5d
mov byte [esi + 0x138], 0x28
mov byte [esi + 0x139], 0x5f
mov byte [esi + 0x13a], 0x39
mov byte [esi + 0x13b], 0x51
mov byte [esi + 0x13c], 0x50
mov byte [esi + 0x13d], 0x53
mov eax, 0x26
mov byte [esi + eax + 0x118], 0
add eax, 1
cmp eax, 0x2c
jne 0x422450
xor eax, eax
cmp eax, 0x2c
jae 0x422494
movzx edx, byte [esi + eax + 0x118]
mov ecx, eax
add ecx, 0x8831e535
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xec
xor ecx, 9
sub edx, ecx
mov byte [esi + eax + 0x118], dl
add eax, 1
jmp 0x422462
lea eax, [esi + 0x118]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0041b5b0
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne byte [esi + 0xe]
mov al, byte [esi + 0xb4]
mov byte [esi + 0xe4], al
mov byte [esi + 0x144], 0xef
mov byte [esi + 0x145], 9
mov byte [esi + 0x146], 0xfd
mov byte [esi + 0x147], 0xf
mov byte [esi + 0x148], 0xff
mov byte [esi + 0x149], 0xd
mov byte [esi + 0x14a], 0xfd
mov byte [esi + 0x14b], 3
mov byte [esi + 0x14c], 0xf9
mov byte [esi + 0x14d], 1
mov byte [esi + 0x14e], 0xe3
mov byte [esi + 0x14f], 7
mov byte [esi + 0x150], 0xf3
mov byte [esi + 0x151], 5
mov byte [esi + 0x152], 0x28
mov byte [esi + 0x153], 0x1b
mov byte [esi + 0x154], 0xef
mov byte [esi + 0x155], 0x19
mov byte [esi + 0x156], 0xef
mov byte [esi + 0x157], 0x1f
mov byte [esi + 0x158], 0xe0
mov byte [esi + 0x159], 0x1d
mov byte [esi + 0x15a], 0xeb
mov byte [esi + 0x15b], 0x13
mov byte [esi + 0x15c], 0xe4
mov byte [esi + 0x15d], 0x11
mov byte [esi + 0x15e], 0xf3
mov byte [esi + 0x15f], 0x17
mov byte [esi + 0x160], 0x14
mov byte [esi + 0x161], 0x15
mov eax, 0x1e
mov byte [esi + eax + 0x144], 0
add eax, 1
cmp eax, 0x22
jne 0x4225ad
xor eax, eax
cmp eax, 0x22
jae 0x4225f8
mov cl, byte [esi + eax + 0x144]
movzx edx, cl
mov edi, eax
add edi, 0x88be37c2
mov ebx, edi
xor ebx, edx
mov edx, 0x3d
sub edx, eax
or edx, ebx
shl edx, 1
add edx, edi
add dl, cl
add dl, 0x38
mov byte [esi + eax + 0x144], dl
add eax, 1
jmp 0x4225bf
lea eax, [esi + 0x144]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.0041b5b0
add esp, 0xc
and al, 1
movzx eax, al
mov cl, byte [esi + 0xe]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne byte [esi + 0xf]
mov al, byte [esi + 0x94]
mov byte [esi + 0xe8], al
mov byte [esi + 0x98], 0xa0
mov byte [esi + 0x99], 0xf
mov byte [esi + 0x9a], 0x9f
mov byte [esi + 0x9b], 0xf1
mov byte [esi + 0x9c], 0x59
mov byte [esi + 0x9d], 0xf3
mov byte [esi + 0x9e], 0x59
mov byte [esi + 0x9f], 0xf5
mov byte [esi + 0xa0], 0x5a
mov byte [esi + 0xa1], 0xf7
mov byte [esi + 0xa2], 0x63
mov byte [esi + 0xa3], 0xf9
mov byte [esi + 0xa4], 0x16
mov byte [esi + 0xa5], 0xfb
mov byte [esi + 0xa6], 0x50
mov byte [esi + 0xa7], 0xfd
mov byte [esi + 0xa8], 0x69
mov byte [esi + 0xa9], 0xff
mov byte [esi + 0xaa], 0x6f
mov byte [esi + 0xab], 0xe1
mov byte [esi + 0xac], 0x4e
mov byte [esi + 0xad], 0xe3
mov byte [esi + 0xae], 0xe2
mov byte [esi + 0xaf], 0xe5
mov eax, 0x18
mov byte [esi + eax + 0x98], 0
add eax, 1
cmp eax, 0x1b
jne 0x4226ea
xor eax, eax
cmp eax, 0x1b
jae 0x422759
movzx edx, byte [esi + eax + 0x98]
mov edi, edx
xor edi, 0xffffffff
mov ecx, 2
sub ecx, eax
mov ebx, 2
sub ebx, eax
or ecx, ebx
mov ebx, 2
sub ebx, eax
and ecx, ebx
mov ebx, dword [ebp + 0xc]
or ecx, edi
mov edi, eax
add edi, 0x543191fd
or edi, edx
and ecx, edi
mov edx, 1
sub edx, ecx
and edx, 1
xor edx, 1
or ecx, 1
add ecx, 0xe
add ecx, edx
mov byte [esi + eax + 0x98], cl
add eax, 1
jmp 0x4226fc
lea eax, [esi + 0x98]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.0041b5b0
add esp, 0xc
and al, 1
movzx ecx, al
mov al, byte [esi + 0xf]
and al, 1
movzx eax, al
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, eax
and edx, 0x4a5c327
mov edi, ecx
and edi, 0x4a5c327
or edx, 0
or edi, 0
xor edx, edi
or eax, ecx
xor eax, 0xffffffff
and eax, 0xffffffff
or edx, eax
cmp edx, 0
setne bl
mov al, byte [esi + 0x70]
mov byte [esi + 0xec], al
mov byte [esi + 0x74], 0xe0
mov byte [esi + 0x75], 0x91
mov byte [esi + 0x76], 0xe6
mov byte [esi + 0x77], 0x93
mov byte [esi + 0x78], 0xcd
mov byte [esi + 0x79], 0xad
mov byte [esi + 0x7a], 0xcd
mov byte [esi + 0x7b], 0xaf
mov byte [esi + 0x7c], 0xd5
mov byte [esi + 0x7d], 0xa9
mov byte [esi + 0x7e], 0xd9
mov byte [esi + 0x7f], 0xab
mov byte [esi + 0x80], 0x92
mov byte [esi + 0x81], 0xa5
mov byte [esi + 0x82], 0xd5
mov byte [esi + 0x83], 0xa7
mov byte [esi + 0x84], 0xd1
mov byte [esi + 0x85], 0xa1
mov byte [esi + 0x86], 0xd6
mov byte [esi + 0x87], 0xa3
mov byte [esi + 0x88], 0xc5
mov byte [esi + 0x89], 0xbd
mov byte [esi + 0x8a], 0x32
mov byte [esi + 0x8b], 0xbf
mov byte [esi + 0x8c], 0xc5
mov byte [esi + 0x8d], 0xb9
mov byte [esi + 0x8e], 0xba
mov byte [esi + 0x8f], 0xbb
mov eax, 0x1c
mov byte [esi + eax + 0x74], 0
add eax, 1
cmp eax, 0x1e
jne 0x422861
xor eax, eax
cmp eax, 0x1e
jae 0x422895
mov dl, byte [esi + eax + 0x74]
mov edi, eax
shl edi, 1
and edi, 0x38
mov ecx, eax
xor ecx, 0x1c
add ecx, edi
xor cl, dl
add cl, 0x74
mov byte [esi + eax + 0x74], cl
add eax, 1
jmp 0x422870
sub esp, 0xc
lea eax, [esi + 0x74]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.0041b5b0
add esp, 0xc
or bl, al
and bl, 1
mov byte [esi + 7], bl
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
mov dword [esi + 0x298], eax
mov eax, dword [esi + 0x29c]
mov ecx, dword [esi + 0x298]
mov ecx, dword [eax + ecx*4]
push eax
mov eax, esp
mov dword [eax], 0x449710
push eax
mov edx, esp
mov dword [edx], 0x28
push eax
mov edi, esp
mov dword [esi + 0x19c], edi
mov dword [edi], 0x44982c
push eax
mov dword [esi + 0x198], esp
push eax
mov edi, esp
mov dword [esi + 0x1ac], edi
mov dword [edi], 0x449834
push eax
mov dword [esi + 0x1a4], esp
push eax
mov edi, esp
mov dword [esi + 0x1a8], edi
mov dword [edi], 0x44983c
push eax
mov dword [esi + 0x1a0], esp
push eax
mov edi, esp
mov dword [esi + 0x1c0], edi
mov dword [edi], 0x449844
push eax
mov dword [esi + 0x1b4], esp
push eax
mov edi, esp
mov dword [esi + 0x1b8], edi
mov dword [edi], 0x44984c
push eax
mov dword [esi + 0x1b0], esp
push eax
mov edi, esp
mov dword [esi + 0x1d4], edi
mov dword [edi], 0x449854
push eax
mov dword [esi + 0x1cc], esp
push eax
mov edi, esp
mov dword [esi + 0x1d0], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x1c8], edi
mov dword [edi], 0x12
push eax
mov edi, esp
mov dword [esi + 0x254], edi
mov dword [edi], 0x44985c
push eax
mov dword [esi + 0x250], esp
push eax
mov edi, esp
mov dword [esi + 0x24c], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x244], edi
mov dword [edi], 0x1c
push eax
mov edi, esp
mov dword [esi + 0x23c], edi
mov dword [edi], 0x449864
push eax
mov dword [esi + 0x238], esp
push eax
mov edi, esp
mov dword [esi + 0x234], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x230], edi
mov dword [edi], 0x1b
push eax
mov edi, esp
mov dword [esi + 0x22c], edi
mov dword [edi], 0x44986c
push eax
mov dword [esi + 0x228], esp
push eax
mov edi, esp
mov dword [esi + 0x224], edi
mov dword [edi], 0x449874
push eax
mov dword [esi + 0x220], esp
push eax
mov edi, esp
mov dword [esi + 0x21c], edi
mov dword [edi], 0x44987c
push eax
mov dword [esi + 0x218], esp
push eax
mov edi, esp
mov dword [esi + 0x214], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x210], edi
mov dword [edi], 0x1a
push eax
mov edi, esp
mov dword [esi + 0x20c], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x208], edi
mov dword [edi], 0x1b
push eax
mov edi, esp
mov dword [esi + 0x204], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x1fc], edi
mov dword [edi], 0x12
push eax
mov edi, esp
mov dword [esi + 0x200], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x1f0], edi
mov dword [edi], 0x1d
push eax
mov edi, esp
mov dword [esi + 0x1f8], edi
mov dword [edi], 0x449884
push eax
mov dword [esi + 0x1ec], esp
push eax
mov edi, esp
mov dword [esi + 0x1f4], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x1e8], edi
mov dword [edi], 0x1f
push eax
mov edi, esp
mov dword [esi + 0x1e4], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x1dc], edi
mov dword [edi], 0x20
push eax
mov edi, esp
mov dword [esi + 0x1e0], edi
mov dword [edi], 0x44988c
push eax
mov dword [esi + 0x1d8], esp
push eax
mov edi, esp
mov dword [esi + 0x290], edi
mov dword [edi], 0x449894
push eax
mov dword [esi + 0x284], esp
push eax
mov edi, esp
mov dword [esi + 0x27c], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x26c], edi
mov dword [edi], 0x23
push eax
mov edi, esp
mov dword [esi + 0x274], edi
mov dword [edi], 0x44989c
push eax
mov dword [esi + 0x264], esp
push eax
mov edi, esp
mov dword [esi + 0x268], edi
mov dword [edi], 0x4498a4
push eax
mov dword [esi + 0x260], esp
push eax
mov edi, esp
mov dword [esi + 0x294], edi
mov dword [edi], 0x4498ac
push eax
mov dword [esi + 0x288], esp
push eax
mov edi, esp
mov dword [esi + 0x280], edi
mov dword [edi], 0x449710
push eax
mov edi, esp
mov dword [esi + 0x270], edi
mov dword [edi], 0x27
push eax
mov edi, esp
mov dword [edi], 0x449710
push eax
mov ebx, esp
mov dword [esi + 0x278], ebx
mov dword [ebx], 0x28
push eax
mov ebx, esp
mov dword [esi + 0x194], ebx
mov dword [ebx], 0x449710
push eax
mov ebx, esp
mov dword [esi + 0x190], ebx
mov dword [ebx], 0xe
push eax
mov ebx, esp
mov dword [esi + 0x1c4], ebx
mov dword [ebx], 0x449710
push eax
mov ebx, esp
mov dword [esi + 0x1bc], ebx
mov dword [ebx], 0x18
push eax
mov ebx, esp
mov dword [esi + 0x248], ebx
mov dword [ebx], 0x449710
push eax
mov ebx, esp
mov dword [esi + 0x240], ebx
mov dword [ebx], 0x21
push eax
mov ebx, esp
mov dword [esi + 0x25c], ebx
mov dword [ebx], 0x449710
push eax
mov ebx, esp
mov dword [esi + 0x258], ebx
mov dword [ebx], 0x25
jmp ecx