Function at 0x100d2590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov dword [ebp - 0x18], ecx
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x11], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x1014cd08]
or eax, dword [0x1014cd0c]
or eax, 0x3bf71508
or eax, 0x62dcc792
sub eax, 0xa2e704a
sub eax, 0x203864fb
xor eax, 0x799e3d4
imul eax, eax, 0x3d5c25a7
add eax, 0x2a1a207
mov ecx, 0x3e6d376e
xor edx, edx
div ecx
add eax, 0x5c2abc07
and eax, 0x3b651a99
or eax, 0xc24e64c5
sub eax, 0x6549fc42
add eax, 0xa2e6fb1d
xor eax, 0xa09f02e0
or eax, 0xfa44508
imul eax, eax, 0x2fe67f6b
mov ecx, 0xe110f9f
xor edx, edx
div ecx
sub eax, 0x9f6612ef
and eax, 0xb73c3e3b
xor eax, 0x5bac33b9
xor eax, 0xff43213e
add eax, 0xbdbe032f
add eax, 0xa645ef7
add eax, 0xd48d99eb
sub eax, 0xdb083fa4
and eax, 0x1eef6db3
xor eax, 0xe49af5f7
sub eax, 0x6ace2b63
and eax, 0x2b683a54
xor eax, 0x55fb8cad
sub eax, 0xabf247b7
xor eax, 0xa2e5ad56
mov ecx, 0xaf0f7310
xor edx, edx
div ecx
cmp eax, 0xc066570a
ja 0x100d2c93
mov eax, dword [0x1014cd10]
xor edx, edx
div dword [0x1014cd14]
or eax, 0xa54f8ec7
add eax, 0xc2e499de
and eax, 0xfe1aac38
sub eax, 0xcd683c25
mov ecx, 0xd91a3ca1
xor edx, edx
div ecx
and eax, 0x888727d
mov ecx, 0x76b060f0
xor edx, edx
div ecx
imul eax, eax, 0x95c60dde
and eax, 0x4423b3e5
imul eax, eax, 0xa5bd977f
add eax, 0xada074f6
add eax, 0x281cee7
or eax, 0x4b748640
xor eax, 0x38e91d91
add eax, 0x4ae5cbfe
mov ecx, 0xf1158740
xor edx, edx
div ecx
add eax, 0x2b15fda9
and eax, 0x20ed227
xor eax, 0x4766da48
and eax, 0x939c218a
xor eax, 0xdddd8d8e
mov ecx, 0x6bc7847d
xor edx, edx
div ecx
and eax, 0x7595ae12
add eax, 0x883973d8
xor eax, 0x7a540b62
add eax, 0xfe973195
and eax, 0x3be61ac2
and eax, 0x981e4e65
xor eax, 0x84e1d163
mov ecx, 0x28d8e4ff
xor edx, edx
div ecx
sub eax, 0xe47686b0
sub eax, 0x2c6c83af
add eax, 0x211410ee
cmp eax, 0x2cdf9c21
je 0x100d2671
mov eax, dword [0x1014cd18]
xor edx, edx
div dword [0x1014cd1c]
add eax, 0xd63d8359
imul eax, eax, 0x4427b343
sub eax, 0x27283f41
or eax, 0xc12e3feb
add eax, 0xb8740205
add eax, 0x817df740
or eax, 0x5c88d4
and eax, 0x40b59f56
sub eax, 0xacb4c242
add eax, 0xda037b4d
imul eax, eax, 0x28451f31
or eax, 0x868fd021
or eax, 0xcd460de3
xor eax, 0x783244a9
add eax, 0x3f8f3ade
add eax, 0xae34009b
imul eax, eax, 0xb4f66d9e
add eax, 0xb5987698
mov ecx, 0xb3dd16a5
xor edx, edx
div ecx
imul eax, eax, 0xd49891e2
mov ecx, 0x784cdf0a
xor edx, edx
div ecx
xor eax, 0x125030d
mov ecx, 0x5c3485d5
xor edx, edx
div ecx
or eax, 0x51f31712
and eax, 0x7ac6a5c7
sub eax, 0x7a89eecb
or eax, 0xc76649ba
add eax, 0xd1a8b446
or eax, 0xcacb3ce2
add eax, 0xe251bd1
add eax, 0xaec82265
add eax, 0x9d54d6eb
sub eax, 0xb11aecb7
cmp eax, 0xbd616a21
je 0x100d2c44
mov eax, dword [0x1014cd20]
and eax, dword [0x1014cd24]
or eax, 0x5872eed
imul eax, eax, 0xf75a4514
xor eax, 0xe233cc6d
sub eax, 0xefe4314b
xor eax, 0xd9af345e
and eax, 0x1e9d9708
and eax, 0x4fb20919
sub eax, 0x126cef29
xor eax, 0x11ca28e7
or eax, 0x8dc7c548
imul eax, eax, 0x40a70344
xor eax, 0x78afdac5
sub eax, 0x434282ef
and eax, 0x63f31c5
and eax, 0xb1265459
and eax, 0xd1dcb329
or eax, 0xa2ddb9a8
xor eax, 0xd8234eb0
or eax, 0x8da8bfb8
and eax, 0xaad4865b
add eax, 0x1dc1efdc
imul eax, eax, 0x9578b58f
sub eax, 0x9c3a48af
xor eax, 0xee791a34
or eax, 0x1e685462
mov ecx, 0x782a1129
xor edx, edx
div ecx
or eax, 0xfe3e4bd6
sub eax, 0x4b5d27d3
imul eax, eax, 0x6d620095
mov ecx, 0x90964118
xor edx, edx
div ecx
add eax, 0xca36e53a
or eax, 0xfcc739c7
and eax, 0xe4e9c2e5
cmp eax, 0x656f84a5
jbe 0x100d2c98
mov edi, dword [ebp - 0x10]
mov bl, byte [ebp - 0x11]
mov eax, dword [0x1014cd28]
mov ecx, dword [0x1014cd2c]
xor edx, edx
div ecx
or eax, 0x3ffdff
add eax, 0x9350e10d
or eax, 0xbe067
imul eax, eax, 0x8d85192e
and eax, 0x2598d0
add eax, 0x3c54a80f
or eax, 0xec226
and eax, 0x3ee2a7
imul eax, eax, 0xa1790738
and eax, 0x26f900
add eax, 0xa78386df
and eax, 0x2bcf89
imul eax, eax, 0x70033f6e
add eax, 0x45d3f7d5
and eax, 0x480000
or eax, 0xbd10d71f
xor eax, 0x522ac232
add eax, 0x9a07b42a
xor eax, 0x3e00d9a0
imul eax, eax, 0x641777ee
xor eax, 0xdfed60a9
imul eax, eax, 0xb183ea8d
mov ecx, 0x419961d5
mul ecx
mov eax, edx
mov edx, dword [ebp - 0x18]
shr eax, 0x1a
imul eax, eax, 0x97be2276
add eax, 0xd4a0d12c
mov dword [ebp - 0x1c], eax
push eax
mov eax, esp
push eax
mov esi, esp
push eax
mov ecx, esp
and bl, 1
mov byte [eax], bl
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x24], ecx
mov al, byte [eax]
mov byte [ebp - 0x1d], al
call fcn.10108d20
mov ecx, dword [ebp - 0x24]
mov edx, eax
mov al, byte [ebp - 0x1d]
or edx, dword [esi]
and al, 1
sub esp, 8
mov dword [esp], edx
movzx eax, al
mov dword [esp + 4], eax
call fcn.10108b80
mov eax, dword [ebp - 0x1c]
cmp eax, 0x27594b72
je 0x100d28d8
mov eax, dword [0x1014cd30]
and eax, dword [0x1014cd34]
sub eax, 0x620ee909
imul eax, eax, 0x362e521c
imul eax, eax, 0x455cc2d5
imul eax, eax, 0x455a5bad
mov ecx, 0x187d4f1a
xor edx, edx
div ecx
or eax, 0xc5b2ac89
imul eax, eax, 0x6fa14367
sub eax, 0xaa58bc99
imul eax, eax, 0x4ba07f65
and eax, 0x4d0834ee
add eax, 0xcc5014b
mov ecx, 0x8b489feb
xor edx, edx
div ecx
add eax, 0x279a0c8d
xor eax, 0x1c8e3a6
xor eax, 0x302c19d2
and eax, 0xbdc05fdc
add eax, 0x4546faf2
and eax, 0x4ab1953b
imul eax, eax, 0xe35c63f7
add eax, 0x865b14ef
imul eax, eax, 0xfaa2c5f
and eax, 0xc91e25af
and eax, 0x66b305bb
imul eax, eax, 0x31a87b7f
or eax, 0x6b7c73d0
mov ecx, 0x124792ec
xor edx, edx
div ecx
and eax, 0x2c649edb
xor eax, 0xbc48ecbe
and eax, 0x3e890577
add eax, 0xf79133b6
add eax, 0x4bd7c46a
sub eax, 0x343c9d31
add eax, 0xdbe08c42
cmp eax, 0x40aa53ff
ja 0x100d2811
mov eax, dword [0x1014cd38]
and eax, dword [0x1014cd3c]
and eax, 0x13a13418
sub eax, 0x6c95b6fd
sub eax, 0xcc2bf712
and eax, 0x8a51b74b
sub eax, 0xe4fb2fb6
imul eax, eax, 0xfac9042
mov ecx, 0x680380c0
xor edx, edx
div ecx
mov ecx, 0x1f524d2d
xor edx, edx
div ecx
add eax, 0x4d61d944
imul eax, eax, 0x7c4587c0
mov ecx, 0xc10a8f31
xor edx, edx
div ecx
imul eax, eax, 0x39c717e2
sub eax, 0x6b5bcda8
xor eax, 0x90fcd0a9
imul eax, eax, 0xc894a8a0
or eax, 0xaade06da
add eax, 0x242bc259
mov ecx, 0xfd5ff166
xor edx, edx
div ecx
and eax, 0x3ed80d1c
and eax, 0x2cb2c58f
xor eax, 0xb73a0936
and eax, 0x91095f98
and eax, 0x913f7867
imul eax, eax, 0x9b344af3
imul eax, eax, 0xb100e05d
xor eax, 0x1db20538
sub eax, 0x515dddec
add eax, 0xf02560d0
sub eax, 0x7bf60da1
mov ecx, 0x672358fc
xor edx, edx
div ecx
sub eax, 0x64016b2a
imul eax, eax, 0xf895bb2f
or eax, 0x1c88341e
cmp eax, 0xd026f873
je 0x100d2ce7
mov eax, dword [0x1014cd40]
and eax, dword [0x1014cd44]
sub eax, 0x6fa71088
imul eax, eax, 0xd08a3f6c
mov ecx, 0xc6c3bf84
xor edx, edx
div ecx
xor eax, 0x44d334a9
imul eax, eax, 0xfd4be738
and eax, 0x40baa30a
add eax, 0xf35edbd5
or eax, 0xe0c5e3bc
and eax, 0xff688b01
sub eax, 0x1725e846
mov ecx, 0xedd9cd58
xor edx, edx
div ecx
or eax, 0xa4e59ad1
sub eax, 0x70700ee7
and eax, 0x8749a5de
sub eax, 0xdc1701e7
and eax, 0xf57dad
sub eax, 0x70c8b011
or eax, 0x24f048a8
xor eax, 0x71bb7ecd
sub eax, 0x35a9dd71
imul eax, eax, 0x4864d865
sub eax, 0x71e8b654
mov ecx, 0x15aa1189
xor edx, edx
div ecx
sub eax, 0xaee4717
xor eax, 0xc70b8197
sub eax, 0xb2cb8a15
and eax, 0x37bd3a04
xor eax, 0xef2ef067
and eax, 0xe275e908
add eax, 0xda9dbce6
sub eax, 0xc696ba20
imul eax, eax, 0xe136d75a
or eax, 0x4a23e26b
cmp eax, 0xfadd4a82
je 0x100d2b6f
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
mov bl, byte [ebp - 0x11]
push eax
mov eax, esp
push eax
mov esi, esp
push eax
mov ecx, esp
and bl, 1
mov byte [eax], bl
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x2c], ecx
mov al, byte [eax]
mov byte [ebp - 0x25], al
call fcn.10108d20
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov al, byte [ebp - 0x25]
mov esi, dword [esi]
or edx, esi
and al, 1
sub esp, 8
mov dword [esp], edx
movzx eax, al
mov dword [esp + 4], eax
call fcn.10108b80
jmp 0x100d2811
jmp 0x100d2671
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
mov bl, byte [ebp - 0x11]
push eax
mov eax, esp
push eax
mov esi, esp
push eax
mov ecx, esp
and bl, 1
mov byte [eax], bl
mov dword [esi], edi
mov dword [ecx], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x34], ecx
mov al, byte [eax]
mov byte [ebp - 0x2d], al
call fcn.10108d20
mov ecx, dword [ebp - 0x34]
mov edx, eax
mov al, byte [ebp - 0x2d]
mov esi, dword [esi]
or edx, esi
and al, 1
sub esp, 8
mov dword [esp], edx
movzx eax, al
mov dword [esp + 4], eax
call fcn.10108b80
jmp 0x100d28d8
jmp 0x100d2b6f