Function at 0x4184c0
Capabilities:
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x3a0
mov esi, esp
mov eax, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esi + 0x2f4], 0x441164
mov byte [esi + 6], 0
mov al, byte [esi + 0x7c]
mov byte [esi + 0x80], al
mov byte [esi + 0x140], 0x53
mov byte [esi + 0x141], 0x2d
mov byte [esi + 0x142], 0x47
mov byte [esi + 0x143], 0x23
mov byte [esi + 0x144], 0xa9
mov byte [esi + 0x145], 0x21
mov byte [esi + 0x146], 0x12
mov byte [esi + 0x147], 0x27
mov byte [esi + 0x148], 0x16
mov byte [esi + 0x149], 0x25
mov byte [esi + 0x14a], 0x5e
mov byte [esi + 0x14b], 0x3b
mov byte [esi + 0x14c], 0x5e
mov byte [esi + 0x14d], 0x39
mov byte [esi + 0x14e], 0x3e
mov byte [esi + 0x14f], 0x3f
mov dword [esi + 0x154], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x18
jae 0x4185e3
jmp 0x418589
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x140]
mov edx, eax
add edx, 0x9d7e3a26
and edx, ecx
lea eax, [eax + ecx - 0x6281c5da]
add edx, edx
sub eax, edx
mov dword [esi + 0x2f8], eax
mov eax, dword [esi + 0x2f8]
mov ecx, eax
xor ecx, 0xf5
and eax, 0x75
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x140], al
mov eax, dword [esi + 0xc]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
cmp eax, 0x18
jb 0x418589
jmp 0x4185e3
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x140]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
movzx edx, al
movzx eax, byte [esi + 6]
not eax
not edx
mov ecx, eax
xor ecx, edx
or eax, edx
not eax
or ecx, eax
mov byte [esi + 6], cl
mov al, byte [esi + 0x78]
mov byte [esi + 0x84], al
mov byte [esi + 0x1a0], 0x7b
mov byte [esi + 0x1a1], 0xd9
mov byte [esi + 0x1a2], 0x47
mov byte [esi + 0x1a3], 0xdb
mov byte [esi + 0x1a4], 0x46
mov byte [esi + 0x1a5], 0xd5
mov byte [esi + 0x1a6], 0x5a
mov byte [esi + 0x1a7], 0xd7
mov byte [esi + 0x1a8], 0x99
mov byte [esi + 0x1a9], 0xd1
mov byte [esi + 0x1aa], 0x84
mov byte [esi + 0x1ab], 0xd3
mov byte [esi + 0x1ac], 0x50
mov byte [esi + 0x1ad], 0xcd
mov byte [esi + 0x1ae], 0x6c
mov byte [esi + 0x1af], 0xcf
mov byte [esi + 0x1b0], 0xc8
mov byte [esi + 0x1b1], 0xc9
mov dword [esi + 0x1b9], 0
mov dword [esi + 0x1b6], 0
mov dword [esi + 0x1b2], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0x1d
jae 0x418720
jmp 0x4186d3
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x10]
movzx ecx, byte [esi + eax + 0x1a0]
mov eax, edi
add eax, 0x64
and eax, ecx
mov edx, 0x4d1e509b
sub edx, edi
or edx, ecx
not edx
add edx, ecx
sub edx, eax
mov dword [esi + 0x2fc], edx
mov eax, dword [esi + 0x2fc]
add al, 0x44
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x1a0], al
mov eax, dword [esi + 0x10]
inc eax
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
cmp eax, 0x1d
jb 0x4186d3
jmp 0x418720
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x1a0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
movzx ecx, al
movzx eax, byte [esi + 6]
not eax
not ecx
and eax, ecx
not al
mov byte [esi + 6], al
mov al, byte [esi + 0x74]
mov byte [esi + 0x88], al
mov byte [esi + 0xe8], 0xd6
mov byte [esi + 0xe9], 0x4d
mov byte [esi + 0xea], 0xd1
mov byte [esi + 0xeb], 0x43
mov byte [esi + 0xec], 0xd6
mov byte [esi + 0xed], 0x41
mov byte [esi + 0xee], 0xdb
mov byte [esi + 0xef], 0x47
mov byte [esi + 0xf0], 0xdc
mov byte [esi + 0xf1], 0x45
mov byte [esi + 0xf2], 0x23
mov byte [esi + 0xf3], 0xbb
mov byte [esi + 0xf4], 0x2f
mov byte [esi + 0xf5], 0xb9
mov byte [esi + 0xf6], 0x2a
mov byte [esi + 0xf7], 0xbf
mov byte [esi + 0xf8], 0x2f
mov byte [esi + 0xf9], 0xbd
mov byte [esi + 0xfa], 0x24
mov byte [esi + 0xfb], 0xb3
mov byte [esi + 0xfc], 0x39
mov byte [esi + 0xfd], 0xb1
mov byte [esi + 0xfe], 0xe4
mov byte [esi + 0xff], 0xb7
mov byte [esi + 0x100], 0x23
mov byte [esi + 0x101], 0xb5
mov byte [esi + 0x102], 0x3b
mov byte [esi + 0x103], 0xab
mov byte [esi + 0x104], 0x34
mov byte [esi + 0x105], 0xa9
mov byte [esi + 0x106], 0x37
mov byte [esi + 0x107], 0xaf
mov byte [esi + 0x108], 0x38
mov byte [esi + 0x109], 0xad
mov byte [esi + 0x10a], 7
mov byte [esi + 0x10b], 0xa3
mov byte [esi + 0x10c], 0xa0
mov byte [esi + 0x10d], 0xa1
mov byte [esi + 0x112], 0
mov dword [esi + 0x10e], 0
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x14]
cmp eax, 0x2b
jae 0x4188e4
jmp 0x418889
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x14]
movzx edi, byte [esi + eax + 0xe8]
mov ecx, edx
add ecx, 0x3d9e4076
lea eax, [edx + edi + 0x3d9e4076]
and ecx, edi
add edx, 0x76
and edx, edi
add ecx, edx
mov edx, ecx
xor edx, eax
not ecx
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x300], eax
mov eax, dword [esi + 0x300]
add al, 0xc6
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0xe8], al
mov eax, dword [esi + 0x14]
inc eax
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, 0x2b
jb 0x418889
jmp 0x4188e4
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0xe8]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
mov cl, byte [esi + 6]
or cl, al
mov byte [esi + 6], cl
mov al, byte [esi + 0x70]
mov byte [esi + 0x8c], al
mov byte [esi + 0xc0], 0x13
mov byte [esi + 0xc1], 0xb9
mov byte [esi + 0xc2], 9
mov byte [esi + 0xc3], 0xbb
mov byte [esi + 0xc4], 0xb
mov byte [esi + 0xc5], 0xbd
mov byte [esi + 0xc6], 0x11
mov byte [esi + 0xc7], 0xbf
mov byte [esi + 0xc8], 0x15
mov byte [esi + 0xc9], 0x81
mov byte [esi + 0xca], 0x27
mov byte [esi + 0xcb], 0x83
mov byte [esi + 0xcc], 0x37
mov byte [esi + 0xcd], 0x85
mov byte [esi + 0xce], 0xea
mov byte [esi + 0xcf], 0x87
mov byte [esi + 0xd0], 0x33
mov byte [esi + 0xd1], 0x89
mov byte [esi + 0xd2], 0x3b
mov byte [esi + 0xd3], 0x8b
mov byte [esi + 0xd4], 0x26
mov byte [esi + 0xd5], 0x8d
mov byte [esi + 0xd6], 0x27
mov byte [esi + 0xd7], 0x8f
mov byte [esi + 0xd8], 0x3a
mov byte [esi + 0xd9], 0x91
mov byte [esi + 0xda], 0x37
mov byte [esi + 0xdb], 0x93
mov byte [esi + 0xdc], 0x92
mov byte [esi + 0xdd], 0x95
mov byte [esi + 0xe6], 0
mov dword [esi + 0xe2], 0
mov dword [esi + 0xde], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x18]
cmp eax, 0x27
jae 0x418a7a
jmp 0x418a15
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x18]
movzx edi, byte [esi + eax + 0xc0]
mov edx, 0x561b83e8
sub edx, ecx
lea eax, [ecx + edi - 0x561b83e9]
mov ebx, ecx
add ebx, 0x17
and ebx, edi
or edx, edi
add ecx, edx
lea ecx, [ebx + ecx - 0x561b83e8]
mov edx, eax
not edx
mov edi, ecx
and edi, edx
not ecx
and eax, ecx
sub eax, edi
mov dword [esi + 0x304], eax
mov eax, dword [esi + 0x304]
add al, 0x5f
mov ecx, dword [esi + 0x18]
mov byte [esi + ecx + 0xc0], al
mov eax, dword [esi + 0x18]
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
cmp eax, 0x27
jb 0x418a15
jmp 0x418a7a
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0xc0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
movzx edx, al
movzx eax, byte [esi + 6]
not eax
not edx
mov ecx, eax
xor ecx, edx
or eax, edx
not eax
or ecx, eax
mov byte [esi + 6], cl
mov al, byte [esi + 0x6c]
mov byte [esi + 0x90], al
mov byte [esi + 0xa0], 0x2c
mov byte [esi + 0xa1], 0x99
mov byte [esi + 0xa2], 0x2d
mov byte [esi + 0xa3], 0x9b
mov byte [esi + 0xa4], 0x4b
mov byte [esi + 0xa5], 0xe5
mov byte [esi + 0xa6], 0x4f
mov byte [esi + 0xa7], 0xe7
mov byte [esi + 0xa8], 0x56
mov byte [esi + 0xa9], 0xe1
mov byte [esi + 0xaa], 0x51
mov byte [esi + 0xab], 0xe3
mov byte [esi + 0xac], 0x9a
mov byte [esi + 0xad], 0xed
mov byte [esi + 0xae], 0x44
mov byte [esi + 0xaf], 0xef
mov byte [esi + 0xb0], 0x5b
mov byte [esi + 0xb1], 0xe9
mov byte [esi + 0xb2], 0x5d
mov byte [esi + 0xb3], 0xeb
mov byte [esi + 0xb4], 0x42
mov byte [esi + 0xb5], 0xf5
mov byte [esi + 0xb6], 0xf6
mov byte [esi + 0xb7], 0xf7
mov dword [esi + 0xbb], 0
mov dword [esi + 0xb8], 0
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 0x1c]
cmp eax, 0x1f
jae 0x418bd5
jmp 0x418b8a
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx edx, byte [esi + ecx + 0xa0]
mov ecx, 0xa37d0fc3
sub ecx, eax
add eax, 0x3c
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x308], ecx
mov eax, dword [esi + 0x308]
add al, 0x5c
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0xa0], al
mov eax, dword [esi + 0x1c]
inc eax
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
cmp eax, 0x1f
jb 0x418b8a
jmp 0x418bd5
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0xa0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
mov cl, byte [esi + 6]
or cl, al
mov byte [esi + 6], cl
mov al, byte [esi + 0x68]
mov byte [esi + 0x94], al
mov byte [esi + 0x158], 0x5c
mov byte [esi + 0x159], 0xcd
mov byte [esi + 0x15a], 0x9e
mov byte [esi + 0x15b], 0xf3
mov byte [esi + 0x15c], 0x91
mov byte [esi + 0x15d], 0xf1
mov byte [esi + 0x15e], 0x91
mov byte [esi + 0x15f], 0xf7
mov byte [esi + 0x160], 0x91
mov byte [esi + 0x161], 0xf5
mov byte [esi + 0x162], 0x6d
mov byte [esi + 0x163], 0xfb
mov byte [esi + 0x164], 0xaa
mov byte [esi + 0x165], 0xf9
mov byte [esi + 0x166], 0x69
mov byte [esi + 0x167], 0xff
mov byte [esi + 0x168], 0x6d
mov byte [esi + 0x169], 0xfd
mov byte [esi + 0x16a], 0x8e
mov byte [esi + 0x16b], 0xe3
mov byte [esi + 0x16c], 0x89
mov byte [esi + 0x16d], 0xe1
mov byte [esi + 0x16e], 0x72
mov byte [esi + 0x16f], 0xe7
mov byte [esi + 0x170], 0x81
mov byte [esi + 0x171], 0xe5
mov byte [esi + 0x172], 0xea
mov byte [esi + 0x173], 0xeb
mov dword [esi + 0x17c], 0
mov dword [esi + 0x178], 0
mov dword [esi + 0x174], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0x28
jae 0x418d4d
jmp 0x418cfb
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x158]
mov edx, eax
add edx, 0xe4d54b5e
add eax, 0x5e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x30c], edx
mov ecx, dword [esi + 0x30c]
mov eax, ecx
or eax, 0x6d
and ecx, 0x6d
add eax, ecx
inc al
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x158], al
mov eax, dword [esi + 0x20]
inc eax
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
cmp eax, 0x28
jb 0x418cfb
jmp 0x418d4d
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 0xc
lea edx, [esi + 0x158]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00414f60
add esp, 0xc
mov cl, byte [esi + 6]
or cl, al
mov byte [esi + 6], cl
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esi + 0x2f0], ecx
mov eax, dword [esi + 0x2f4]
mov ecx, dword [esi + 0x2f0]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x44116c]
xor ecx, 0x36892424
sub eax, ecx
push eax
mov ecx, esp
mov dword [esi + 0x1d8], ecx
mov dword [ecx], case.0x418346.1
mov edx, dword [0x441170]
push eax
mov edi, esp
mov dword [esi + 0x1e8], edi
mov dword [edi], 0x441178
push eax
mov dword [esi + 0x1e4], esp
push eax
mov edi, esp
mov dword [esi + 0x1f0], edi
mov dword [edi], 0x441184
push eax
mov dword [esi + 0x1ec], esp
push eax
mov edi, esp
mov dword [esi + 0x1f8], edi
mov dword [edi], 0x441190
push eax
mov dword [esi + 0x1f4], esp
push eax
mov edi, esp
mov dword [esi + 0x204], edi
mov dword [edi], 0x44119c
push eax
mov dword [esi + 0x1fc], esp
push eax
mov edi, esp
mov dword [esi + 0x208], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4411a8]
mov dword [esi + 0x200], edi
push eax
mov edi, esp
mov dword [esi + 0x210], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4411b0]
mov dword [esi + 0x20c], edi
push eax
mov edi, esp
mov dword [esi + 0x218], edi
mov dword [edi], 0x4411b8
push eax
mov dword [esi + 0x214], esp
push eax
mov edi, esp
mov dword [esi + 0x228], edi
mov dword [edi], 0x4411c4
push eax
mov dword [esi + 0x224], esp
push eax
mov edi, esp
mov dword [esi + 0x220], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4411d0]
mov dword [esi + 0x21c], edi
push eax
mov edi, esp
mov dword [esi + 0x2c0], edi
mov dword [edi], 0x4411d8
push eax
mov dword [esi + 0x2bc], esp
push eax
mov edi, esp
mov dword [esi + 0x2b8], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4411e4]
mov dword [esi + 0x2b4], edi
push eax
mov edi, esp
mov dword [esi + 0x2b0], edi
mov dword [edi], 0x4411ec
push eax
mov dword [esi + 0x2ac], esp
push eax
mov edi, esp
mov dword [esi + 0x2a8], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4411f8]
mov dword [esi + 0x2a4], edi
push eax
mov edi, esp
mov dword [esi + 0x2a0], edi
mov dword [edi], 0x441200
push eax
mov dword [esi + 0x29c], esp
push eax
mov edi, esp
mov dword [esi + 0x28c], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x44120c]
mov dword [esi + 0x280], edi
push eax
mov edi, esp
mov dword [esi + 0x278], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441214]
mov dword [esi + 0x26c], edi
push eax
mov edi, esp
mov dword [esi + 0x264], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x44121c]
mov dword [esi + 0x260], edi
push eax
mov edi, esp
mov dword [esi + 0x258], edi
mov dword [edi], 0x441224
push eax
mov dword [esi + 0x248], esp
push eax
mov edi, esp
mov dword [esi + 0x23c], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441230]
mov dword [esi + 0x234], edi
push eax
mov edi, esp
mov dword [esi + 0x230], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441238]
mov dword [esi + 0x22c], edi
push eax
mov edi, esp
mov dword [esi + 0x240], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441240]
mov dword [esi + 0x238], edi
push eax
mov edi, esp
mov dword [esi + 0x24c], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441248]
mov dword [esi + 0x244], edi
push eax
mov edi, esp
mov dword [esi + 0x254], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441250]
mov dword [esi + 0x250], edi
push eax
mov edi, esp
mov dword [esi + 0x268], edi
mov dword [edi], 0x441258
push eax
mov dword [esi + 0x25c], esp
push eax
mov edi, esp
mov dword [esi + 0x274], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441264]
mov dword [esi + 0x270], edi
push eax
mov edi, esp
mov dword [esi + 0x284], edi
mov dword [edi], case.0x418346.1
mov edi, dword [str.Ty_o]
mov dword [esi + 0x27c], edi
push eax
mov edi, esp
mov dword [esi + 0x290], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441274]
mov dword [esi + 0x288], edi
push eax
mov edi, esp
mov dword [esi + 0x298], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x44127c]
mov dword [esi + 0x294], edi
push eax
mov edi, esp
mov dword [esi + 0x2c8], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441284]
mov dword [esi + 0x2c4], edi
push eax
mov edi, esp
mov dword [esi + 0x2d0], edi
mov dword [edi], 0x44128c
push eax
mov dword [esi + 0x2cc], esp
push eax
mov edi, esp
mov dword [esi + 0x2d8], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x441298]
mov dword [esi + 0x2d4], edi
push eax
mov edi, esp
mov dword [esi + 0x2e0], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4412a0]
mov dword [esi + 0x2dc], edi
push eax
mov edi, esp
mov dword [esi + 0x2e8], edi
mov dword [edi], case.0x418346.1
mov edi, dword [0x4412a8]
mov dword [esi + 0x2e4], edi
push eax
mov edi, esp
mov dword [edi], case.0x418346.1
mov ebx, dword [0x4412b0]
push eax
mov ecx, esp
mov dword [esi + 0x1e0], ecx
mov dword [ecx], case.0x418346.1
mov ecx, dword [0x4412b8]
jmp eax