Function at 0x100187f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
mov edx, dword [ebp + 8]
push ebx
push esi
lea ebx, [eax + 0x1600]
mov ecx, eax
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x10]
push edi
mov dword [esp + 0x10], ecx
cmp eax, ebx
ja 0x100188bf
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
jmp 0x10018833
mov edx, dword [ebp + 8]
cmp ecx, 0x7186
ja 0x10018d56
je 0x100190f2
cmp ecx, 0x34c9
ja 0x10018cf1
je 0x10018ce0
cmp ecx, 0x2abe
ja 0x10018cc7
je 0x100188bf
mov eax, ecx
sub eax, 0x2a0e
je 0x1001887e
sub eax, 0x58
jne case.0x100188a5.6
xor esi, esi
jmp case.0x100188a5.6
cmp edx, 0x109
ja 0x10018aa6
je 0x10018982
lea eax, [edx - 5]
cmp eax, 0xfd
ja case.0x100188a5.6
movzx eax, byte [eax + 0x1001926c]
jmp dword [eax*4 + 0x100191f0]
mov ecx, 0x77c
mov eax, ecx
sub eax, 0x77c
je 0x100188c8
sub eax, 0x50
jne 0x100188cd
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, fcn.10009310
add ecx, 0x50
cmp ecx, 0x7cc
jbe 0x100188b1
mov eax, 0xbd5
cmp eax, eax
je 0x10019117
add eax, 0xe
cmp eax, 0xbd5
jbe 0x100188df
mov eax, 0xdf3
cmp eax, eax
je 0x10019147
add eax, 0x1d
cmp eax, 0xdf3
jbe 0x100188f6
mov ecx, 0x5933
mov eax, ecx
sub eax, 0x5933
je 0x1001891b
sub eax, 0x1d
je 0x100188bf
jmp 0x10018920
mov esi, fcn.10005b20
add ecx, 0x1d
cmp ecx, 0x5950
jbe 0x1001890b
mov eax, 0x92
cmp eax, eax
je 0x10019123
add eax, 0xc
cmp eax, 0x92
jbe 0x10018932
mov ecx, 0xaf2
mov eax, ecx
sub eax, 0xaf2
je 0x1001895b
sub eax, 0xe
je 0x100188bf
jmp 0x10018960
mov esi, 0x10008450
add ecx, 0xe
cmp ecx, 0xb00
jbe 0x10018947
mov eax, 0x1aa0
cmp eax, eax
je 0x1001912f
add eax, 0x37
cmp eax, 0x1aa0
jbe 0x10018972
mov eax, 0x27d5
cmp eax, eax
je 0x1001913b
add eax, 0x40
cmp eax, 0x27d5
jbe 0x10018989
mov ecx, 0x4d6d
mov edi, edi
mov eax, ecx
sub eax, 0x4d6d
je 0x100189b4
sub eax, 0x46
je 0x100188bf
jmp 0x100189b9
mov esi, fcn.10005730
add ecx, 0x46
cmp ecx, 0x4db3
jbe 0x100189a0
mov ecx, 0x5374
lea esp, [esp]
mov eax, ecx
sub eax, 0x5374
je 0x100189e4
sub eax, 0xe
je 0x100188bf
jmp 0x100189e9
mov esi, fcn.100056a0
add ecx, 0xe
cmp ecx, 0x5382
jbe 0x100189d0
mov ecx, 0x29ec
lea esp, [esp]
mov eax, ecx
sub eax, 0x29ec
je 0x10018a14
sub eax, 0x5f
je 0x100188bf
jmp 0x10018a19
mov esi, fcn.10005730
add ecx, 0x5f
cmp ecx, 0x2a4b
jbe 0x10018a00
mov ecx, 0xda7
mov eax, ecx
sub eax, 0xda7
je 0x10018a3d
sub eax, 0x54
je 0x100188bf
jmp 0x10018a42
mov esi, fcn.100092c0
add ecx, 0x54
cmp ecx, 0xdfb
jbe 0x10018a29
mov eax, 0x4772
cmp eax, eax
je 0x10019147
add eax, 0x57
cmp eax, 0x4772
jbe 0x10018a54
mov eax, 0x537c
cmp eax, eax
je 0x10019153
add eax, 0x17
cmp eax, 0x537c
jbe 0x10018a6b
mov ecx, 0x6dc
mov eax, ecx
sub eax, 0x6dc
je 0x10018a94
sub eax, 5
je 0x100188bf
jmp 0x10018a99
mov esi, fcn.1000c260
add ecx, 5
cmp ecx, 0x6e1
jbe 0x10018a80
jmp 0x10018abc
mov eax, edx
sub eax, 0x124
je 0x10018cab
sub eax, 0x1d
jne case.0x100188a5.6
mov ecx, 0x5ef
mov eax, ecx
sub eax, 0x5ef
je 0x10018ad3
dec eax
je 0x100188bf
jmp 0x10018ad8
mov esi, 0x1000c150
inc ecx
cmp ecx, 0x5f0
jbe 0x10018ac1
mov eax, 0x1253
cmp eax, eax
je 0x1001915f
add eax, 0x14
cmp eax, 0x1253
jbe 0x10018ae8
mov eax, 0x287c
cmp eax, eax
je 0x1001916b
add eax, 0x4e
cmp eax, 0x287c
jbe 0x10018aff
mov eax, 0x7a9c
cmp eax, eax
je 0x10019177
add eax, 0x31
cmp eax, 0x7a9c
jbe 0x10018b16
mov eax, 0x523b
cmp eax, eax
je 0x10019183
add eax, 0x13
cmp eax, 0x523b
jbe 0x10018b2d
mov eax, 0x7f17
cmp eax, eax
je 0x1001918f
add eax, 0x18
cmp eax, 0x7f17
jbe 0x10018b44
mov eax, 0x427b
cmp eax, eax
je 0x1001919b
add eax, 0x3a
cmp eax, 0x427b
jbe 0x10018b5b
mov eax, 0x7f9c
cmp eax, eax
je 0x100191a7
add eax, 0x1f
cmp eax, 0x7f9c
jbe 0x10018b72
mov ecx, 0x3c9e
mov eax, ecx
sub eax, 0x3c9e
je 0x10018b9b
sub eax, 0x2f
je 0x100188bf
jmp 0x10018ba0
mov esi, fcn.1000bee0
add ecx, 0x2f
cmp ecx, 0x3ccd
jbe 0x10018b87
mov eax, 0xc7a
cmp eax, eax
je 0x100191b3
add eax, 0x5d
cmp eax, 0xc7a
jbe 0x10018bb2
mov ecx, 0xdee
mov eax, ecx
sub eax, 0xdee
je 0x10018bdb
sub eax, 0x2a
je 0x100188bf
jmp 0x10018be0
mov esi, 0x10006b50
add ecx, 0x2a
cmp ecx, 0xe18
jbe 0x10018bc7
mov eax, 0x6adb
cmp eax, eax
je 0x100191bf
add eax, 0x26
cmp eax, 0x6adb
jbe 0x10018bf2
mov ecx, 0x6799
mov eax, ecx
sub eax, 0x6799
je 0x10018c1b
sub eax, 0xb
je 0x100188bf
jmp 0x10018c20
mov esi, 0x10005e60
add ecx, 0xb
cmp ecx, 0x67a4
jbe 0x10018c07
mov eax, 0x7c8e
cmp eax, eax
je 0x100191cb
add eax, 0x49
cmp eax, 0x7c8e
jbe 0x10018c32
mov ecx, 0x2dff
mov eax, ecx
sub eax, 0x2dff
je 0x10018c5b
sub eax, 0x38
je 0x100188bf
jmp 0x10018c60
mov esi, 0x10005700
add ecx, 0x38
cmp ecx, 0x2e37
jbe 0x10018c47
mov eax, 0x1625
cmp eax, eax
je 0x100191d7
add eax, 0x26
cmp eax, 0x1625
jbe 0x10018c72
mov ecx, 0x5584
mov eax, ecx
sub eax, 0x5584
je 0x10018c9b
sub eax, 6
je 0x100188bf
jmp 0x10018ca0
mov esi, 0x100076c0
add ecx, 6
cmp ecx, 0x558a
jbe 0x10018c87
mov eax, 0x5d78
cmp eax, eax
je 0x100191e3
add eax, 0x36
cmp eax, 0x5d78
jbe 0x10018cb2
jmp case.0x100188a5.6
cmp ecx, 0x3471
jne case.0x100188a5.6
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
jmp case.0x100188a5.6
mov ecx, dword [ebp + 8]
push ecx
call fcn.10027fb3
add esp, 4
jmp case.0x100188a5.6
mov eax, ecx
sub eax, 0x6cd4
je 0x10018d3b
sub eax, 0x58
je 0x100188bf
sub eax, 0x402
jne case.0x100188a5.6
mov eax, dword [edx]
movzx edx, byte [edx + 3]
mov edi, dword [esp + 0x14]
mov ebx, eax
mov ecx, eax
shl ebx, 0x10
and ecx, 0xff00
add ebx, ecx
shr eax, 8
shl ebx, 8
and eax, 0xff00
add ebx, eax
add ebx, edx
jmp case.0x100188a5.6
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi]
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp + 0xc]
push eax
call fcn.10010dc0
mov esi, eax
jmp case.0x100188a5.6
cmp ecx, 0x72e6
ja 0x10019064
je 0x10018fcd
mov eax, ecx
sub eax, 0x71de
je 0x10018f6b
sub eax, 0x58
je 0x10018f63
sub eax, 0x58
jne case.0x100188a5.6
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0x20
jb case.0x100188a5.6
mov ecx, 8
jmp 0x10018da0
cmp ecx, 0xb2
ja 0x10018e55
je case.0x10018dc3.42
lea eax, [ecx - 8]
cmp eax, 0x88
ja case.0x10018e6d.213
movzx edx, byte [eax + 0x1001937c]
jmp dword [edx*4 + 0x1001936c]
mov eax, ebx
shr eax, 0x10
mov edx, ebx
and eax, 0xff
mov eax, dword [eax*4 + 0x1003d070]
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x1003cc70]
mov edx, ebx
shr edx, 0x18
xor eax, dword [edx*4 + 0x1003d470]
and ebx, 0xff
xor eax, dword [ebx*4 + 0x1003c870]
mov ebx, eax
jmp case.0x10018e6d.213
mov eax, ebx
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x1003d070]
mov edx, ebx
shr edx, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x1003cc70]
mov edx, ebx
shr edx, 0x18
xor eax, dword [edx*4 + 0x1003d470]
and ebx, 0xff
xor eax, dword [ebx*4 + 0x1003c870]
add edi, 4
xor eax, dword [edi]
mov ebx, eax
jmp case.0x10018e6d.213
lea eax, [ecx - 0xd4]
cmp eax, 0x88
ja case.0x10018e6d.213
movzx eax, byte [eax + 0x1001941c]
jmp dword [eax*4 + 0x10019408]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x1003d070]
mov eax, ebx
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1003cc70]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x1003d470]
mov eax, dword [ebp + 0x10]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x1003c870]
add dword [eax], 0xffffffe0
jmp 0x10018f41
mov edx, ebx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x1003d070]
mov eax, ebx
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1003cc70]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x1003d470]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x1003c870]
jmp 0x10018f41
add edi, 4
xor ebx, dword [edi]
jmp case.0x10018e6d.213
mov edx, ebx
shr edx, 0x10
and edx, 0xff
mov edx, dword [edx*4 + 0x1003d070]
mov eax, ebx
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1003cc70]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x1003d470]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x1003c870]
add edi, 4
xor edx, dword [edi]
mov ebx, edx
add ecx, 0x22
cmp ecx, 0x15c
jbe 0x10018da0
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0x20
jae 0x10018d93
jmp case.0x100188a5.6
sub edi, 4
jmp case.0x100188a5.6
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 0
je 0x10018fc3
mov edx, dword [ebp + 0xc]
test dl, 3
je 0x10018fc6
mov edi, dword [ebp + 0x10]
mov ecx, 0x7800
mov eax, ecx
sub eax, 0x7800
je 0x10018f93
dec eax
jne 0x10018fab
dec dword [edi]
jmp 0x10018fab
movzx edi, byte [edx]
mov eax, ebx
shr eax, 0x18
xor eax, edi
mov edi, dword [ebp + 0x10]
shl ebx, 8
xor ebx, dword [eax*4 + 0x1003c870]
inc edx
inc ecx
cmp ecx, 0x7801
jbe 0x10018f83
cmp dword [edi], 0
mov dword [ebp + 0xc], edx
jne 0x10018f73
mov edi, edx
jmp case.0x100188a5.6
mov edx, dword [ebp + 0xc]
mov edi, edx
jmp case.0x100188a5.6
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 4
jb 0x1001905c
lea esp, [esp]
mov ecx, 0x1c58
mov edx, dword [ebp + 0x10]
mov eax, ecx
sub eax, 0x1c58
je 0x10019040
sub eax, 0x1c
je 0x10019000
sub eax, 0x1c
jne 0x10019045
add dword [edx], 0xfffffffc
jmp 0x10019045
mov edx, ebx
shr edx, 0x10
mov eax, ebx
and edx, 0xff
mov edx, dword [edx*4 + 0x1003d070]
shr eax, 8
and eax, 0xff
xor edx, dword [eax*4 + 0x1003cc70]
mov eax, ebx
shr eax, 0x18
xor edx, dword [eax*4 + 0x1003d470]
and ebx, 0xff
xor edx, dword [ebx*4 + 0x1003c870]
mov ebx, edx
jmp 0x10019045
add edi, 4
xor ebx, dword [edi]
add ecx, 0x1c
cmp ecx, 0x1c90
jbe 0x10018fe5
mov ecx, dword [ebp + 0x10]
cmp dword [ecx], 4
jae 0x10018fe0
add edi, 4
jmp case.0x100188a5.6
mov eax, ecx
sub eax, 0x733e
je 0x100190f6
sub eax, 0x58
je 0x100190c6
sub eax, 0x58
jne case.0x100188a5.6
mov ecx, 0x4a0a
mov eax, ecx
sub eax, 0x4a0a
je 0x10019094
sub eax, 0x1f
je 0x100188bf
jmp 0x100190b9
mov esi, ebx
shl esi, 0x10
mov eax, ebx
and eax, 0xff00
add esi, eax
mov eax, ebx
shr eax, 8
shl esi, 8
and eax, 0xff00
mov edx, ebx
add esi, eax
shr edx, 0x18
add esi, edx
add ecx, 0x1f
cmp ecx, 0x4a29
jbe 0x10019080
jmp case.0x100188a5.6
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0
je 0x100190f2
mov edi, edi
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
mov eax, ebx
inc ecx
shr eax, 0x18
xor eax, edx
shl ebx, 8
xor ebx, dword [eax*4 + 0x1003c870]
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 0x10]
dec dword [eax]
jne 0x100190d0
not ebx
jmp case.0x100188a5.6
mov dword [ebp + 0xc], edi
mov ecx, dword [esp + 0x10]
add ecx, 0x58
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x14]
jbe 0x10018830
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.100066a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x100099b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005820
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10008100
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x100078e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005720
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005720
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x100086f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005ba0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005730
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10007b80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.100063b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10008dc0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10007fa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005730
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10005730
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, fcn.10008380
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, fcn.10009500
pop ebx
mov esp, ebp
pop ebp
ret