Function at 0x100452a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x100d47b0]
imul eax, dword [0x100d47b4]
xor eax, 0xefb71836
and eax, 0x337ed451
or eax, 0x547f0d0e
imul eax, eax, 0xe3da0f7e
and eax, 0x6d6cc56b
add eax, 0x93de6079
or eax, 0xfb3538f8
imul eax, eax, 0x40675d2f
or eax, 0x615ffa8b
and eax, 0x2dd862a5
mov ecx, 0xb6b43760
xor edx, edx
div ecx
and eax, 0xf66579fa
or eax, 0x165b8423
or eax, 0x259e2234
mov ecx, 0x89a806c5
xor edx, edx
div ecx
imul eax, eax, 0x147aca1b
add eax, 0x42230ff7
mov ecx, 0x1a413c0
xor edx, edx
div ecx
mov ecx, 0x10b5b02f
xor edx, edx
div ecx
sub eax, 0x2fc1286b
sub eax, 0x698dc54d
xor eax, 0x3aeed807
add eax, 0x5c96819f
imul eax, eax, 0xcb17033e
add eax, 0xcd110bc1
add eax, 0x65fdeb1c
imul eax, eax, 0x31c3946b
or eax, 0xce9b1899
and eax, 0x907feb55
or eax, 0x73a3bb84
mov ecx, 0x929a3f13
xor edx, edx
div ecx
imul eax, eax, 0x9b57f033
and eax, 0x20a0d484
imul eax, eax, 0x3a7ceb73
imul eax, eax, 0x257bfa3e
add eax, 0xd5c83709
mov ecx, 0xa75024dd
xor edx, edx
div ecx
imul eax, eax, 0x62a4d866
imul eax, eax, 0xc046b17
sub eax, 0xa030f7d3
or eax, 0xe81f760
xor eax, 0xa3e43863
mov ecx, 0xbd06f344
xor edx, edx
div ecx
xor eax, 0xc9ef6ef5
sub eax, 0x8b6bace0
xor eax, 0xb06f6d2d
and eax, 0xf32af09b
sub eax, 0x2c976552
imul eax, eax, 0x73c5895e
and eax, 0x3008d5af
and eax, 0x5eda3a0b
sub eax, 0xb69ae90f
sub eax, 0x717cebab
sub eax, 0x7fb53f30
or eax, 0xd2566bd9
or eax, 0x7c0e69d3
sub eax, 0x91a86948
and eax, 0x6dee8b1b
xor eax, 0x8cbec473
or eax, 0x2ce4a36e
sub eax, 0x9dafaaf9
or eax, 0x83a11398
xor eax, 0x3eb0f5ef
add eax, 0x6b3c986
add eax, 0x4f8ec8f0
sub eax, 0x463f062e
xor eax, 0x1687c16f
xor eax, 0xbb2bf770
and eax, 0x5fb37e59
add eax, 0xa84bece3
mov ecx, 0xaefee032
xor edx, edx
div ecx
and eax, 0x4842b036
cmp eax, 0x61e42a5f
je 0x10045c1c
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov eax, 0xd03db26b
mov dword [ebp - 0x1c], eax
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x20], eax
push eax
mov ebx, esp
mov dword [ebp - 0x28], ebx
push eax
mov edi, esp
mov dword [ebp - 0x24], edi
push eax
mov eax, esp
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x20]
mov dword [esi], edx
mov dword [eax], ecx
sub esp, 4
mov dword [esp], 0x64
call fcn.1007c2b1
mov edx, dword [ebp - 0x20]
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edi], 0
mov edx, dword [edx]
xor edx, dword [esi]
mov dword [ecx], edx
cmp eax, 0xdb0729f
jbe 0x10045c1c
jmp 0x100454ca
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
je 0x10045c04
mov eax, dword [0x100d47c0]
xor edx, edx
div dword [0x100d47c4]
xor eax, 0x815589ec
add eax, 0xffc659e3
add eax, 0xf1dfeca8
and eax, 0x543f30fc
and eax, 0x4c4bcf0b
sub eax, 0x8e736530
add eax, 0xe8d9fe9e
and eax, 0x61bdc37b
or eax, 0xe5cb5bc1
sub eax, 0x29d08136
or eax, 0xc4662cf2
and eax, 0xd8838536
add eax, 0x5aab88cf
add eax, 0x4695c5ad
sub eax, 0xe8edccc2
imul eax, eax, 0x6e2473d1
or eax, 0x9762aec4
imul eax, eax, 0xa6e69fbc
sub eax, 0x8de28abb
mov ecx, 0x2773a8df
xor edx, edx
div ecx
and eax, 0xc431942b
or eax, 0x6b173ed5
xor eax, 0xe9a91162
or eax, 0x1aa77167
xor eax, 0x2488f197
or eax, 0xec55953f
or eax, 0x168d163e
and eax, 0x4e4c1010
and eax, 0x81e38203
sub eax, 0xbdbb71f3
sub eax, 0x8adb787d
xor eax, 0xaff7f021
xor eax, 0xa6823517
sub eax, 0xbe0ec19a
or eax, 0x5965013e
xor eax, 0xa3ad98d8
or eax, 0xedf04d1a
add eax, 0xaadb6f9f
add eax, 0xf521ff94
mov ecx, 0xac588741
xor edx, edx
div ecx
add eax, 0x30ca2830
mov ecx, 0xe587ce4
xor edx, edx
div ecx
xor eax, 0xed880560
or eax, 0x867dd802
and eax, 0x939ef71d
imul eax, eax, 0xef620815
sub eax, 0x9b04e2e6
imul eax, eax, 0x447aadf9
xor eax, 0xba0de5e
xor eax, 0x43357cc7
xor eax, 0x46bc52f0
mov ecx, 0x5559dd5
xor edx, edx
div ecx
mov ecx, 0x9a5e8bd
xor edx, edx
div ecx
or eax, 0x5d63e5b8
xor eax, 0x6cdaff2a
sub eax, 0x605fea16
imul eax, eax, 0xf808f2e5
and eax, 0x9053f23f
imul eax, eax, 0xcd5d3b08
or eax, 0x6de9d408
and eax, 0x50c9cceb
add eax, 0xab4ecde3
and eax, 0xf45130e6
or eax, 0xbe94a0db
sub eax, 0x21df5533
add eax, 0xc2e3a0a0
add eax, 0x677d6228
and eax, 0xb9d10374
imul eax, eax, 0xc58215d9
and eax, 0x6fafffe7
xor eax, 0x2c48bc45
and eax, 0x7f456716
cmp eax, 0x667e5256
jae 0x10045c73
mov eax, dword [0x100d47c8]
imul eax, dword [0x100d47cc]
or eax, 0x426f90a2
mov ecx, 0xa5f3d1bc
xor edx, edx
div ecx
xor eax, 0xc76918b6
mov ecx, 0xd9c772f
xor edx, edx
div ecx
or eax, 0xbd16388e
xor eax, 0xecdbbbbf
xor eax, 0x94feaa8
add eax, 0xb56462bf
and eax, 0x114d16a2
xor eax, 0x639d1bb9
imul eax, eax, 0x9978db5f
xor eax, 0xc3b706e3
or eax, 0x35d8d97d
sub eax, 0x681b5b1b
or eax, 0x3788b73d
and eax, 0xd80b9747
add eax, 0x35e82134
sub eax, 0xf489cd24
and eax, 0x8075b05f
imul eax, eax, 0x46443f0c
add eax, 0x7a0ef8b7
add eax, 0x7d9a97aa
and eax, 0x4f42e66a
add eax, 0x129add89
mov ecx, 0x69484778
xor edx, edx
div ecx
add eax, 0x4197feae
mov ecx, 0xff8b1f11
xor edx, edx
div ecx
imul eax, eax, 0x1eb5719c
mov ecx, 0x77f162d8
xor edx, edx
div ecx
mov ecx, 0x809c19cd
xor edx, edx
div ecx
add eax, 0x4a38cbc8
or eax, 0x178f64e7
mov ecx, 0x9a8ad9bf
xor edx, edx
div ecx
and eax, 0xc01458bc
add eax, 0x5bde9c73
mov ecx, 0xebde2855
xor edx, edx
div ecx
add eax, 0x9b3458fb
sub eax, 0xdb8387a3
xor eax, 0xc97df849
and eax, 0x144220c
mov ecx, 0x79b514a4
xor edx, edx
div ecx
imul eax, eax, 0x54a30fda
imul eax, eax, 0x13eff56f
mov ecx, 0xa536745e
xor edx, edx
div ecx
or eax, 0x357ad704
sub eax, 0x6e941354
mov ecx, 0x45adc6c2
xor edx, edx
div ecx
or eax, 0x3533193c
and eax, 0x84e4e2a1
sub eax, 0x9d639af
imul eax, eax, 0x6637e5cc
mov ecx, 0xef72eceb
xor edx, edx
div ecx
or eax, 0xa3b64045
mov ecx, 0x3d56c4a2
xor edx, edx
div ecx
mov ecx, 0x4ecd54af
xor edx, edx
div ecx
add eax, 0xc4e8896d
sub eax, 0x61589045
mov ecx, 0xd668d1cd
xor edx, edx
div ecx
mov ecx, 0x9eb29dfc
xor edx, edx
div ecx
or eax, 0x12761977
xor eax, 0x8d2ba408
sub eax, 0x7b123ad4
and eax, 0x61397127
or eax, 0x286dd38
imul eax, eax, 0xf1248841
imul eax, eax, 0x4231ac05
sub eax, 0x12ad0f65
imul eax, eax, 0xf30d99d2
and eax, 0x43e9f65f
imul eax, eax, 0xf6ebce01
add eax, 0x25c28442
mov ecx, 0x95ae63c0
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], ecx
mov eax, dword [eax]
mov ecx, 2
cdq
idiv ecx
mov eax, dword [ebp - 0x30]
cmp edx, 0
sete cl
mov byte [ebp - 0x29], cl
cmp eax, 0xc1ce9fb4
jae 0x10045671
mov al, byte [ebp - 0x29]
test al, 1
jne 0x1004586c
jmp 0x10045886
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [edx]
mov esi, ecx
add esi, 1
mov dword [edx], esi
mov byte [eax + ecx], 0x30
jmp 0x10045beb
mov eax, dword [0x100d47d0]
sub eax, dword [0x100d47d4]
or eax, 0xe2384d80
or eax, 0xb1223d56
xor eax, 0xc2079731
and eax, 0x36880fc1
or eax, 0x726236a
imul eax, eax, 0xce830e1f
add eax, 0x99abfddd
and eax, 0xfe5dccfa
mov ecx, 0x7665dc37
xor edx, edx
div ecx
xor eax, 0xd20fbd98
sub eax, 0x7b61f008
xor eax, 0x842a3070
or eax, 0x51390b46
and eax, 0x22d007f8
add eax, 0xe716e321
xor eax, 0x9d92ccd4
xor eax, 0x909b6df1
xor eax, 0xbcb4cc9c
and eax, 0x48288ebe
or eax, 0x769f963e
add eax, 0x4de3b7fd
xor eax, 0xb1da1879
mov ecx, 0xe34fc3ce
xor edx, edx
div ecx
or eax, 0xbdbe5a72
or eax, 0x9e54e001
sub eax, 0xd23e1f50
imul eax, eax, 0xf14d1e13
add eax, 0xf2c2df93
sub eax, 0xcb1fad16
mov ecx, 0x6416e19d
xor edx, edx
div ecx
and eax, 0x5e1422e3
add eax, 0x3749074b
imul eax, eax, 0x5f67c7bf
sub eax, 0x6ab13593
add eax, 0xb5122e15
xor eax, 0x6176d8ef
add eax, 0x2f7a724e
mov ecx, 0x927f0987
xor edx, edx
div ecx
add eax, 0x65188b4
mov ecx, 0x5b343a94
xor edx, edx
div ecx
or eax, 0x8570703f
xor eax, 0x6a5fd302
xor eax, 0x60f10499
or eax, 0x75c8322
or eax, 0xde2fed23
xor eax, 0x5de51e3b
and eax, 0x55d35ffa
and eax, 0x53a1c356
mov ecx, 0x3b623b8b
xor edx, edx
div ecx
or eax, 0xfbd23db9
sub eax, 0xa5d43f17
add eax, 0xca59f75e
imul eax, eax, 0x62b7cf66
mov ecx, 0x5119e6b5
xor edx, edx
div ecx
sub eax, 0x8f253b2
add eax, 0xa47216d6
or eax, 0xd3b55bd0
add eax, 0xdda459f7
and eax, 0x3cc058df
sub eax, 0xeffc0618
xor eax, 0x2c4aee03
imul eax, eax, 0x87b27008
or eax, 0x9da360d6
xor eax, 0x760ed625
mov ecx, 0x57e8e6d3
xor edx, edx
div ecx
xor eax, 0x1fc9a37c
add eax, 0x554dc7d1
sub eax, 0xd913bf3d
sub eax, 0x10cc0aa4
sub eax, 0x49071726
or eax, 0x2180f129
or eax, 0xa69d24cc
cmp eax, 0xe358e21b
jb 0x10045c78
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov eax, dword [0x100d47d8]
or eax, dword [0x100d47dc]
xor eax, 0x46c51514
xor eax, 0xd8940779
mov edi, 0x268f7073
xor edx, edx
div edi
add eax, 0xe35d335f
and eax, 0x9d4e7976
and eax, 0x9197b674
sub eax, 0xd8e3adc9
and eax, 0x3934824b
and eax, 0xe81a5bc6
add eax, 0x21505ab9
sub eax, 0xc905eb9b
add eax, 0xbbb8e58c
or eax, 0xacb13e8d
add eax, 0xbead92dd
imul eax, eax, 0xa443b2e
xor eax, 0xa5359011
sub eax, 0xa1856917
or eax, 0x42c4f65e
imul eax, eax, 0xa1b32d9c
or eax, 0xa9892244
and eax, 0xc8b9f9f
add eax, 0xc24c1e82
xor eax, 0x936d671c
add eax, 0xf7da8984
mov edi, 0x8c3bc57f
xor edx, edx
div edi
imul eax, eax, 0x7eb31011
xor eax, 0xa41a1663
mov edi, 0xe819d134
xor edx, edx
div edi
xor eax, 0x1debc476
xor eax, 0xa5b5e97d
imul eax, eax, 0xe0c76e44
xor eax, 0xbd374287
and eax, 0xff5659cf
imul eax, eax, 0x8049eedd
sub eax, 0xa8f9e834
sub eax, 0xdeffce76
sub eax, 0x81a111ee
or eax, 0x5300b89b
or eax, 0x5e4c12f7
imul eax, eax, 0x72c78778
and eax, 0xe60106e4
or eax, 0x237d5076
imul eax, eax, 0xd6a2e68c
mov edi, 0x93f05f6f
xor edx, edx
div edi
sub eax, 0x71894a95
xor eax, 0xa73ed51c
add eax, 0x65460957
add eax, 0xa9af63bc
xor eax, 0xd7c07a12
mov edi, 0x35c77ba1
xor edx, edx
div edi
or eax, 0x75784024
imul eax, eax, 0x702a5636
xor eax, 0x3649ccb4
and eax, 0x754d0ecf
or eax, 0x32b946af
sub eax, 0xa322e584
xor eax, 0x13e4a13f
xor eax, 0x76eac1a4
or eax, 0x8c19b3ea
or eax, 0x62969cca
add eax, 0xdfe12924
mov edi, 0x56fc7e10
xor edx, edx
div edi
and eax, 0xc113985f
mov edi, 0xe84ccb99
xor edx, edx
div edi
add eax, 0x42a5df0a
xor eax, 0xbc0875aa
and eax, 0x9259bd2f
imul eax, eax, 0xa0224063
or eax, 0xe340000d
mov edi, 0xab43f951
xor edx, edx
div edi
imul eax, eax, 0x4225265c
or eax, 0x36d36525
mov ecx, dword [ecx]
mov edx, dword [esi]
mov edi, edx
add edi, 1
mov dword [esi], edi
mov byte [ecx + edx], 0x31
cmp eax, 0x38444ea7
jb 0x10045c78
jmp 0x10045beb
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov ecx, 2
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov dword [eax], ecx
jmp 0x100454ca
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov ecx, dword [eax]
mov edx, dword [edx]
mov byte [ecx + edx], 0
mov eax, dword [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
push eax
mov edx, esp
mov dword [ebp - 0x38], edx
push eax
mov eax, esp
mov dword [ebp - 0x3c], eax
push eax
mov edi, esp
push eax
mov esi, esp
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x3c]
mov dword [edx], ebx
mov dword [eax], ecx
sub esp, 4
mov dword [esp], 0x64
call fcn.1007c2b1
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0x34]
mov dword [edi], ebx
mov dword [esi], 0
mov ecx, dword [ecx]
mov edx, dword [edx]
xor ecx, edx
mov dword [eax], ecx
jmp 0x1004545f
jmp 0x10045671
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [edx]
mov esi, ecx
add esi, 1
mov dword [edx], esi
mov byte [eax + ecx], 0x31
jmp 0x10045a29