Function at 0x4210a0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2f8
mov esi, esp
mov ebx, dword [ebp + 0xc]
lea eax, [0x447efc]
mov dword [esi + 0x264], eax
mov al, byte [esi + 0xa8]
mov byte [esi + 0xc0], al
mov byte [esi + 0xac], 0xa1
mov byte [esi + 0xad], 0xcf
mov byte [esi + 0xae], 0xa9
mov byte [esi + 0xaf], 0xd1
mov byte [esi + 0xb0], 0xab
mov byte [esi + 0xb1], 0xd3
mov byte [esi + 0xb2], 0xe6
mov byte [esi + 0xb3], 0xd5
mov byte [esi + 0xb4], 0xfa
mov byte [esi + 0xb5], 0xd7
mov byte [esi + 0xb6], 0xb2
mov byte [esi + 0xb7], 0xd9
mov byte [esi + 0xb8], 0xba
mov byte [esi + 0xb9], 0xdb
mov byte [esi + 0xba], 0xda
mov byte [esi + 0xbb], 0xdd
mov eax, 0x10
mov byte [esi + eax + 0xac], 0
add eax, 1
cmp eax, 0x14
jne 0x421141
xor eax, eax
cmp eax, 0x14
jae 0x421199
movzx edx, byte [esi + eax + 0xac]
mov edi, eax
shl edi, 1
and edi, 0xbd341e9a
mov ecx, eax
xor ecx, 0xde9a0f4d
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x7e
add ecx, edx
mov byte [esi + eax + 0xac], cl
add eax, 1
jmp 0x421153
lea eax, [esi + 0xac]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00418640
add esp, 0xc
and al, 1
movzx eax, al
mov dword [esi + 0x170], eax
mov al, byte [esi + 0xa4]
mov byte [esi + 0xc4], al
mov byte [esi + 0x144], 0xe9
mov byte [esi + 0x145], 0x8f
mov byte [esi + 0x146], 0xe9
mov byte [esi + 0x147], 0xb1
mov byte [esi + 0x148], 0x22
mov byte [esi + 0x149], 0xb3
mov byte [esi + 0x14a], 0x26
mov byte [esi + 0x14b], 0xb5
mov byte [esi + 0x14c], 0xef
mov byte [esi + 0x14d], 0xb7
mov byte [esi + 0x14e], 0x98
mov byte [esi + 0x14f], 0xb9
mov byte [esi + 0x150], 0xdc
mov byte [esi + 0x151], 0xbb
mov byte [esi + 0x152], 0xd8
mov byte [esi + 0x153], 0xbd
mov byte [esi + 0x154], 0xbc
mov byte [esi + 0x155], 0xbf
mov eax, 0x12
mov byte [esi + eax + 0x144], 0
add eax, 1
cmp eax, 0x15
jne 0x421252
xor eax, eax
cmp eax, 0x15
jae 0x4212c5
movzx edx, byte [esi + eax + 0x144]
xor ecx, ecx
sub ecx, eax
mov edi, ecx
shl edi, 1
and edi, 0x513583c6
xor ecx, 0xd7653e1c
add ecx, 1
sub ecx, edi
xor ecx, edx
mov edx, ecx
and edx, 0x6c
mov ebx, ecx
and ebx, 0x6c
mov edi, ecx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
mov ebx, dword [ebp + 0xc]
add edx, edi
xor ecx, 0x6e
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x144], cl
add eax, 1
jmp 0x421264
lea eax, [esi + 0x144]
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.00418640
add esp, 0xc
and al, 1
movzx eax, al
mov edx, dword [esi + 0x170]
mov ecx, edx
and ecx, eax
xor edx, eax
or ecx, edx
cmp ecx, 0
setne bl
mov al, byte [esi + 0xa0]
mov byte [esi + 0xc8], al
mov byte [esi + 0xf4], 0x86
mov byte [esi + 0xf5], 0x21
mov byte [esi + 0xf6], 0x9d
mov byte [esi + 0xf7], 0x23
mov byte [esi + 0xf8], 0x96
mov byte [esi + 0xf9], 0x25
mov byte [esi + 0xfa], 0x9b
mov byte [esi + 0xfb], 0x27
mov byte [esi + 0xfc], 0x80
mov byte [esi + 0xfd], 0x39
mov byte [esi + 0xfe], 0x83
mov byte [esi + 0xff], 0x3b
mov byte [esi + 0x100], 0x8f
mov byte [esi + 0x101], 0x3d
mov byte [esi + 0x102], 0x8a
mov byte [esi + 0x103], 0x3f
mov byte [esi + 0x104], 0x8f
mov byte [esi + 0x105], 0x31
mov byte [esi + 0x106], 0x80
mov byte [esi + 0x107], 0x33
mov byte [esi + 0x108], 0xbd
mov byte [esi + 0x109], 0x35
mov byte [esi + 0x10a], 0xc8
mov byte [esi + 0x10b], 0x37
mov byte [esi + 0x10c], 0xbb
mov byte [esi + 0x10d], 9
mov byte [esi + 0x10e], 0xbb
mov byte [esi + 0x10f], 0xb
mov byte [esi + 0x110], 0xb0
mov byte [esi + 0x111], 0xd
mov byte [esi + 0x112], 0xb7
mov byte [esi + 0x113], 0xf
mov byte [esi + 0x114], 0xb4
mov byte [esi + 0x115], 1
mov byte [esi + 0x116], 0xa7
mov byte [esi + 0x117], 3
mov byte [esi + 0x118], 4
mov byte [esi + 0x119], 5
mov eax, 0x26
mov byte [esi + eax + 0xf4], 0
add eax, 1
cmp eax, 0x29
jne 0x421418
xor eax, eax
cmp eax, 0x29
jae 0x421458
movzx edx, byte [esi + eax + 0xf4]
mov ecx, eax
add ecx, 0x4e82e2c8
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x18
mov byte [esi + eax + 0xf4], cl
add eax, 1
jmp 0x42142a
lea eax, [esi + 0xf4]
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.00418640
add esp, 0xc
and al, 1
movzx ecx, al
and bl, 1
movzx eax, bl
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, eax
and edx, 0xa10a368d
mov edi, ecx
and edi, 0xa10a368d
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 + 0x9c]
mov byte [esi + 0xcc], al
mov byte [esi + 0x120], 0x53
mov byte [esi + 0x121], 0x31
mov byte [esi + 0x122], 0x45
mov byte [esi + 0x123], 0x33
mov byte [esi + 0x124], 0x4b
mov byte [esi + 0x125], 0x3d
mov byte [esi + 0x126], 0x55
mov byte [esi + 0x127], 0x3f
mov byte [esi + 0x128], 0x51
mov byte [esi + 0x129], 0x39
mov byte [esi + 0x12a], 0x57
mov byte [esi + 0x12b], 0x3b
mov byte [esi + 0x12c], 0x37
mov byte [esi + 0x12d], 0x45
mov byte [esi + 0x12e], 0x70
mov byte [esi + 0x12f], 0x47
mov byte [esi + 0x130], 0x33
mov byte [esi + 0x131], 0x41
mov byte [esi + 0x132], 0x33
mov byte [esi + 0x133], 0x43
mov byte [esi + 0x134], 0x38
mov byte [esi + 0x135], 0x4d
mov byte [esi + 0x136], 0x27
mov byte [esi + 0x137], 0x4f
mov byte [esi + 0x138], 0x34
mov byte [esi + 0x139], 0x49
mov byte [esi + 0x13a], 0x27
mov byte [esi + 0x13b], 0x4b
mov byte [esi + 0x13c], 0x54
mov byte [esi + 0x13d], 0x55
mov eax, 0x1e
mov byte [esi + eax + 0x120], 0
add eax, 1
cmp eax, 0x21
jne 0x421596
xor eax, eax
cmp eax, 0x21
jae 0x4215fc
movzx edx, byte [esi + eax + 0x120]
mov ecx, eax
add ecx, 0x74a80934
xor ecx, edx
mov edx, ecx
add edx, 0xb8b7d1fb
mov edi, edx
and edi, 1
and ecx, 1
xor ecx, 1
or ecx, edi
shl ecx, 1
mov edi, edx
shl edi, 1
and edi, 2
add edi, 0xff
sub edx, edi
add edx, ecx
mov byte [esi + eax + 0x120], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4215a8
lea eax, [esi + 0x120]
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.00418640
add esp, 0xc
and al, 1
movzx ecx, al
and bl, 1
movzx edx, bl
mov eax, edx
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
mov edx, ecx
xor edx, 0xffffffff
xor ecx, 0xffffffff
or edx, ecx
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
cmp edx, 0
setne bl
mov al, byte [esi + 0x7c]
mov byte [esi + 0xd0], al
mov byte [esi + 0x80], 0x50
mov byte [esi + 0x81], 0xc7
mov byte [esi + 0x82], 0x57
mov byte [esi + 0x83], 0xc1
mov byte [esi + 0x84], 0xa9
mov byte [esi + 0x85], 0xc3
mov byte [esi + 0x86], 0xa9
mov byte [esi + 0x87], 0xcd
mov byte [esi + 0x88], 0x5a
mov byte [esi + 0x89], 0xcf
mov byte [esi + 0x8a], 0x53
mov byte [esi + 0x8b], 0xc9
mov byte [esi + 0x8c], 0x9e
mov byte [esi + 0x8d], 0xcb
mov byte [esi + 0x8e], 0xa0
mov byte [esi + 0x8f], 0xf5
mov byte [esi + 0x90], 0x69
mov byte [esi + 0x91], 0xf7
mov byte [esi + 0x92], 0x67
mov byte [esi + 0x93], 0xf1
mov byte [esi + 0x94], 0x66
mov byte [esi + 0x95], 0xf3
mov byte [esi + 0x96], 0xf2
mov byte [esi + 0x97], 0xfd
mov eax, 0x18
mov byte [esi + eax + 0x80], 0
add eax, 1
cmp eax, 0x1a
jne 0x421701
xor eax, eax
cmp eax, 0x1a
jae 0x421735
mov cl, byte [esi + eax + 0x80]
mov dl, al
add dl, 0x51
xor dl, cl
add dl, 0x6b
mov byte [esi + eax + 0x80], dl
add eax, 1
jmp 0x421713
lea eax, [esi + 0x80]
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.00418640
add esp, 0xc
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
mov edx, eax
or edx, ecx
xor edx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
or eax, edx
xor eax, 0xffffffff
cmp eax, 0
setne byte [esi + 0x26]
mov al, byte [esi + 0x58]
mov byte [esi + 0xd4], al
mov byte [esi + 0x5c], 0xac
mov byte [esi + 0x5d], 0x3b
mov byte [esi + 0x5e], 0xae
mov byte [esi + 0x5f], 0x39
mov byte [esi + 0x60], 0x97
mov byte [esi + 0x61], 0x27
mov byte [esi + 0x62], 0x8b
mov byte [esi + 0x63], 0x25
mov byte [esi + 0x64], 0x8f
mov byte [esi + 0x65], 0x23
mov byte [esi + 0x66], 0xbf
mov byte [esi + 0x67], 0x21
mov byte [esi + 0x68], 0xf2
mov byte [esi + 0x69], 0x2f
mov byte [esi + 0x6a], 0xb3
mov byte [esi + 0x6b], 0x2d
mov byte [esi + 0x6c], 0xb3
mov byte [esi + 0x6d], 0x2b
mov byte [esi + 0x6e], 0xbe
mov byte [esi + 0x6f], 0x29
mov byte [esi + 0x70], 0xbf
mov byte [esi + 0x71], 0x17
mov byte [esi + 0x72], 0x8a
mov byte [esi + 0x73], 0x15
mov byte [esi + 0x74], 0xbf
mov byte [esi + 0x75], 0x13
mov byte [esi + 0x76], 0x12
mov byte [esi + 0x77], 0x11
mov eax, 0x1c
mov byte [esi + eax + 0x5c], 0
add eax, 1
cmp eax, 0x1e
jne 0x4217f8
xor eax, eax
cmp eax, 0x1e
jae 0x42185e
movzx ecx, byte [esi + eax + 0x5c]
mov edx, eax
add edx, 0x4079fbcb
xor edx, ecx
mov ecx, 1
sub ecx, edx
mov edi, 1
sub edi, edx
and ecx, edi
shl ecx, 1
and ecx, 2
xor ecx, 2
mov edi, edx
or edi, 0xfe
mov ebx, 0xf7
sub ebx, edx
or ebx, 1
and edi, ebx
xor edi, 0xffffffff
add ecx, edi
mov byte [esi + eax + 0x5c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x421807
sub esp, 0xc
lea eax, [esi + 0x5c]
mov dword [esp + 8], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp + 4], ebx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00418640
add esp, 0xc
movzx ecx, al
xor eax, eax
mov dl, byte [esi + 0x26]
mov al, dl
mov edi, eax
not edi
or edi, 0xfffffffe
mov edx, ecx
not edx
and edi, edx
or eax, ecx
not eax
or eax, edi
not eax
mov dword [esi + 0x34], eax
test eax, eax
setne byte [esi + 0x27]
xor eax, eax
cmp dword [ebp + 0x10], 0
sete al
mov dword [esi + 0x260], eax
mov eax, dword [esi + 0x264]
mov ecx, dword [esi + 0x260]
mov eax, dword [eax + ecx*4]
mov dword [esi + 0x178], eax
push eax
mov edx, esp
mov dword [edx], case.0x420f4e.2
push eax
mov eax, esp
mov dword [eax], 0x33
push eax
mov ecx, esp
mov dword [esi + 0x180], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x17c], ecx
mov dword [ecx], 0x19
push eax
mov ecx, esp
mov dword [esi + 0x190], ecx
mov dword [ecx], 0x447f04
push eax
mov dword [esi + 0x18c], esp
push eax
mov ecx, esp
mov dword [esi + 0x198], ecx
mov dword [ecx], 0x447f0c
push eax
mov dword [esi + 0x194], esp
push eax
mov ecx, esp
mov dword [esi + 0x1a4], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x19c], ecx
mov dword [ecx], 0x1c
push eax
mov ecx, esp
mov dword [esi + 0x1b0], ecx
mov dword [ecx], 0x447f14
push eax
mov dword [esi + 0x1a8], esp
push eax
mov ecx, esp
mov dword [esi + 0x1ac], ecx
mov dword [ecx], 0x447f1c
push eax
mov dword [esi + 0x1a0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1c8], ecx
mov dword [ecx], 0x447f24
push eax
mov dword [esi + 0x1c0], esp
push eax
mov ecx, esp
mov dword [esi + 0x1c4], ecx
mov dword [ecx], 0x447f2c
push eax
mov dword [esi + 0x1b8], esp
push eax
mov ecx, esp
mov dword [esi + 0x1bc], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1b4], ecx
mov dword [ecx], 0x21
push eax
mov edi, esp
mov dword [esi + 0x230], edi
mov dword [edi], 0x447f34
push eax
mov dword [esi + 0x22c], esp
push eax
mov edi, esp
mov dword [esi + 0x228], edi
mov dword [edi], case.0x420f4e.2
push eax
mov edi, esp
mov dword [esi + 0x224], edi
mov dword [edi], 0x29
push eax
mov ecx, esp
mov dword [esi + 0x21c], ecx
mov dword [ecx], 0x447f3c
push eax
mov dword [esi + 0x218], esp
push eax
mov ecx, esp
mov dword [esi + 0x210], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x20c], ecx
mov dword [ecx], 0x28
push eax
mov ecx, esp
mov dword [esi + 0x208], ecx
mov dword [ecx], 0x447f44
push eax
mov dword [esi + 0x204], esp
push eax
mov ecx, esp
mov dword [esi + 0x200], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1fc], ecx
mov dword [ecx], 0x27
push eax
mov ecx, esp
mov dword [esi + 0x1f8], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1f4], ecx
mov dword [ecx], 0x28
push eax
mov ecx, esp
mov dword [esi + 0x1f0], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1e8], ecx
mov dword [ecx], 0x21
push eax
mov ecx, esp
mov dword [esi + 0x1ec], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1dc], ecx
mov dword [ecx], 0x2a
push eax
mov ecx, esp
mov dword [esi + 0x1e4], ecx
mov dword [ecx], 0x447f4c
push eax
mov dword [esi + 0x1d8], esp
push eax
mov ecx, esp
mov dword [esi + 0x1e0], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1d4], ecx
mov dword [ecx], 0x2c
push eax
mov ecx, esp
mov dword [esi + 0x1d0], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x1cc], ecx
mov dword [ecx], 0x2d
push eax
mov edi, esp
mov dword [esi + 0x250], edi
mov dword [edi], case.0x420f4e.2
push eax
mov edi, esp
mov dword [esi + 0x244], edi
mov dword [edi], 0x2e
push eax
mov edi, esp
mov dword [esi + 0x24c], edi
mov dword [edi], 0x447f54
push eax
mov dword [esi + 0x23c], esp
push eax
mov edi, esp
mov dword [esi + 0x248], edi
mov dword [edi], case.0x420f4e.2
push eax
mov edi, esp
mov dword [esi + 0x238], edi
mov dword [edi], 0x30
push eax
mov edi, esp
mov dword [esi + 0x240], edi
mov dword [edi], 0x447f5c
push eax
mov dword [esi + 0x234], esp
push eax
mov ebx, esp
mov dword [esi + 0x25c], ebx
mov dword [ebx], 0x447f64
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [esi + 0x258], edi
mov dword [edi], case.0x420f4e.2
push eax
mov edi, esp
mov dword [edi], 0x33
push eax
mov ecx, esp
mov dword [esi + 0x188], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [esi + 0x184], ecx
mov dword [ecx], 0x1e
push eax
mov ecx, esp
mov dword [esi + 0x220], ecx
mov dword [ecx], case.0x420f4e.2
push eax
mov ecx, esp
mov dword [ecx], 0x31
jmp dword [esi + 0x178]