Function at 0x100df390
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x58
mov esi, esp
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x44], eax
mov eax, dword [0x10145eb4]
xor eax, dword [0x10145eb8]
mov ecx, 0x154bcf1d
xor edx, edx
div ecx
add eax, 0xaaf01fa8
or eax, 0x34f8feca
sub eax, 0x49c1c692
or eax, 0xb4953c7a
add eax, 0x1308db66
imul eax, eax, 0x5ed77cf3
sub eax, 0x1efe8e64
mov ecx, 0xee1d925b
xor edx, edx
div ecx
mov ecx, 0x1a71b7d6
xor edx, edx
div ecx
add eax, 0x4e4fae64
sub eax, 0x7a82c1a2
add eax, 0xd1bacbfc
imul eax, eax, 0xc01d4cc7
add eax, 0x193c06ae
imul eax, eax, 0x116e8c4f
add eax, 0x472772a2
xor eax, 0x652783ee
sub eax, 0xd3912d79
xor eax, 0xcbd5b56d
cmp eax, 0x1e16933f
je 0x100dfaab
mov ebx, dword [esi + 0x44]
mov eax, 0x6a83470c
mov dword [esi + 0x30], eax
push eax
mov eax, esp
mov dword [esi + 0x24], eax
push eax
mov edx, esp
push eax
mov eax, esp
push eax
mov edi, esp
mov ecx, edi
mov dword [esi + 0x28], ecx
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x2c], ecx
mov esp, ecx
mov ecx, dword [esi + 0x3c]
mov dword [edx], ecx
mov ecx, dword [esi + 0x40]
mov dword [eax], ecx
mov ecx, dword [esi + 0x2c]
mov dword [edi], ebx
mov eax, dword [eax]
mov edx, dword [edx]
mul edx
mov edi, eax
mov eax, dword [esi + 0x30]
mov dword [esi + 0x34], edi
mov edi, edx
mov edx, dword [esi + 0x34]
mov dword [ecx + 4], edi
mov dword [ecx], edx
mov ecx, dword [ecx + 4]
test ecx, ecx
setne cl
mov byte [esi + 0x3b], cl
cmp eax, 0x66f26adf
jb 0x100df439
mov al, byte [esi + 0x3b]
test al, 1
jne 0x100df4b2
jmp 0x100df6ad
mov eax, dword [0x10145ec4]
add eax, dword [0x10145ec8]
add eax, 0xe74d3a62
and eax, 0x2079f1f9
imul eax, eax, 0x1db9da55
xor eax, 0xeb07612e
mov ecx, 0x4ff19e82
xor edx, edx
div ecx
sub eax, 0xd3358c8
or eax, 0x16ba50bb
or eax, 0x848e87be
mov ecx, 0x3647d5d0
xor edx, edx
div ecx
mov ecx, 0xd513a80b
xor edx, edx
div ecx
mov ecx, 0xa2c4bbf1
xor edx, edx
div ecx
or eax, 0xdff49f3
imul eax, eax, 0x77cc24fa
or eax, 0x929d52c5
and eax, 0x35e54dcb
sub eax, 0xefcf3ec9
xor eax, 0x93ee025e
imul eax, eax, 0x9648cf77
mov ecx, 0x392ac78e
xor edx, edx
div ecx
imul eax, eax, 0xb1a7adb3
cmp eax, 0x7059ec07
je 0x100dfae6
mov eax, dword [0x10145ecc]
sub eax, dword [0x10145ed0]
sub eax, 0x5471773f
mov ecx, 0x6062841b
xor edx, edx
div ecx
add eax, 0x3e1eaeb
and eax, 0x6e160bcd
or eax, 0xb332fc9d
sub eax, 0xd7ad944b
xor eax, 0x78b2358a
imul eax, eax, 0xe93ee03a
xor eax, 0xcb2f6de1
imul eax, eax, 0xc49726fa
sub eax, 0x685eacff
imul eax, eax, 0x8f1cd030
sub eax, 0x991dc429
sub eax, 0x2f7e57f6
and eax, 0xd0d7b615
imul eax, eax, 0x792fa838
add eax, 0x4d6f851a
imul eax, eax, 0xb4af3b93
imul eax, eax, 0xa6883606
and eax, 0xbedc4d7b
cmp eax, 0x97fde10a
seta al
mov byte [esi + 0x1f], al
mov eax, esp
mov dword [esi + 0x20], eax
mov dword [esi + 0x50], 0x216
cmp dword [esi + 0x50], 0
jg 0x100df5e9
mov eax, dword [esi + 0x50]
mov dword [esi + 0x18], eax
jmp 0x100df5fe
mov eax, dword [esi + 0x50]
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x14], eax
mov eax, dword [0x10144994]
add eax, dword [0x10144998]
add eax, 0x5ce4eca2
xor eax, 0x9f01dfb3
add eax, 0x880814b6
or eax, 0xc2cb60f6
add eax, 0x311cf506
sub eax, 0x615eee4c
mov ecx, 0xcccb2496
xor edx, edx
div ecx
or eax, 0xd81cc3e6
xor eax, 0x84d5c7d2
and eax, 0x1f3af9b0
add eax, 0x8dfdcb49
mov ecx, 0x4485621a
xor edx, edx
div ecx
xor eax, 0x50277098
sub eax, 0x2651a8d7
xor eax, 0xe6189a91
xor eax, 0xd05b5650
add eax, 0x652eea95
xor eax, 0xcee2eed
sub eax, 0xcb652abd
xor eax, 0x7a4b0a66
cmp eax, 0x7d9bf45
ja 0x100df68b
jmp 0x100df68b
mov al, byte [esi + 0x1f]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x20]
mov esp, edi
mov dword [ecx], edx
test al, 1
jne 0x100df6a8
jmp 0x100dfae6
jmp 0x100dfa84
mov eax, dword [0x10145ed4]
or eax, dword [0x10145ed8]
or eax, 0xe8acba5f
or eax, 0xd5ae8678
mov ecx, 0x232bcb9c
xor edx, edx
div ecx
and eax, 0x3a39008c
imul eax, eax, 0xf2506130
imul eax, eax, 0xd40c39dd
imul eax, eax, 0xff57f1d6
or eax, 0x5cf3700e
sub eax, 0x6d4cd36
xor eax, 0x37cf8796
and eax, 0x2c9417f9
mov ecx, 0x8ee1426d
xor edx, edx
div ecx
imul eax, eax, 0x31ad8b9e
sub eax, 0x516b7f5e
xor eax, 0x48a78da3
mov ecx, 0xeae6a272
xor edx, edx
div ecx
xor eax, 0x96595ca1
mov ecx, 0x4e03617a
xor edx, edx
div ecx
xor eax, 0x55298356
xor eax, 0xa4f3f5c8
cmp eax, 0xf61983f0
jae 0x100dfbbb
mov eax, dword [0x10145edc]
and eax, dword [0x10145ee0]
sub eax, 0x6dfccdc3
or eax, 0xdd034df9
add eax, 0xe5390dce
sub eax, 0xa83c6748
imul eax, eax, 0x738b5b30
or eax, 0x9c0ef012
xor eax, 0x1245d7e0
xor eax, 0xd12e009e
and eax, 0x7b08b46e
or eax, 0x597705d6
xor eax, 0x902c9fa4
add eax, 0x4e8fe207
sub eax, 0x16885410
mov ecx, 0x2870576b
xor edx, edx
div ecx
sub eax, 0x2c704cc
mov ecx, 0xc9e9a496
xor edx, edx
div ecx
xor eax, 0x8904cb7a
or eax, 0xf185a3ea
add eax, 0xbfc626b1
mov ecx, 0x2934031c
xor edx, edx
div ecx
cmp eax, 0x9a4acdc0
je 0x100dfbbb
mov eax, dword [0x10145ee4]
xor edx, edx
div dword [0x10145ee8]
sub eax, 0x601a9ab7
imul eax, eax, 0x67fc8b06
or eax, 0xa3d75aab
sub eax, 0x760f21b7
sub eax, 0xdf48c22c
mov ecx, 0x56e4ca6
xor edx, edx
div ecx
imul eax, eax, 0xf89a7fd6
mov ecx, 0xdbdbb02e
xor edx, edx
div ecx
imul eax, eax, 0x5052d615
xor eax, 0xc576ae9b
mov ecx, 0xbcbd4c86
xor edx, edx
div ecx
add eax, 0x6d359101
add eax, 0x2ec549e7
sub eax, 0xb71a7b36
imul eax, eax, 0x36b65dc3
xor eax, 0x5d0c1020
or eax, 0x3ce65154
or eax, 0xa05aca2d
add eax, 0x83e78bc5
sub eax, 0xabc169f6
cmp eax, 0x485bd855
jbe 0x100dfa91
mov eax, dword [0x10145eec]
and eax, dword [0x10145ef0]
imul eax, eax, 0x3f5cb85e
and eax, 0xaec1488b
sub eax, 0xbf6c0d7f
add eax, 0x4b098322
and eax, 0xf7db2450
or eax, 0xccfdd054
mov ecx, 0x52ee2787
xor edx, edx
div ecx
and eax, 0x2dd8aab6
and eax, 0xa76a6810
mov ecx, 0xfe344054
xor edx, edx
div ecx
xor eax, 0x24980a0d
sub eax, 0x500a0120
imul eax, eax, 0xb2d0ed4e
sub eax, 0x38b8ddd7
imul eax, eax, 0xa66e54b5
and eax, 0x87664026
mov ecx, 0x75b34b26
xor edx, edx
div ecx
xor eax, 0xd5f73111
add eax, 0x6fefd4d6
sub eax, 0x753cfeec
cmp eax, 0xf1f86fba
ja 0x100dfbc0
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x2c]
xor eax, eax
mov edi, dword [edi]
mov edx, dword [edx]
mov dword [edx], edi
mov dword [ecx], 0
cmp eax, 0xdfba353f
ja 0x100df8d7
mov eax, dword [0x10145efc]
and eax, dword [0x10145f00]
sub eax, 0x2668c453
and eax, 0xf5429656
imul eax, eax, 0x5bd37863
and eax, 0xaeac7bf2
add eax, 0x8cba28bb
imul eax, eax, 0xc8ec950
sub eax, 0x62cc8007
mov ecx, 0x978f89c0
xor edx, edx
div ecx
mov ecx, 0xb42ec9d4
xor edx, edx
div ecx
xor eax, 0x946e98eb
add eax, 0x76f1eaa5
imul eax, eax, 0x54de5b4d
xor eax, 0x2817832
xor eax, 0x3f2223e9
sub eax, 0x7552581e
add eax, 0x8db1312c
and eax, 0x9c222484
xor eax, 0xc59ac42
imul eax, eax, 0x4c509709
and eax, 0x8f3cedd
cmp eax, 0xc3c07546
jae 0x100df84e
mov eax, dword [0x10145f04]
sub eax, dword [0x10145f08]
sub eax, 0xa21f8987
xor eax, 0xae9d03d1
add eax, 0x20a02125
and eax, 0xca98dd73
and eax, 0x4ff4a35b
or eax, 0x7a0f95a5
or eax, 0x1981ecb9
or eax, 0x2f45c8e8
sub eax, 0x93a51cc0
or eax, 0xa00fd872
or eax, 0x57ca1dab
add eax, 0x9f8e6656
or eax, 0x9d9779e9
add eax, 0xbc22df0b
xor eax, 0xa0549ade
and eax, 0xd90550fe
and eax, 0x2e17c514
xor eax, 0x3bc737b5
add eax, 0xd3fb1a7b
sub eax, 0x5468e495
cmp eax, 0x6b6a6cb2
je 0x100dfbda
mov eax, dword [0x10145f0c]
xor eax, dword [0x10145f10]
and eax, 0x26a1d04c
add eax, 0x77650ecf
imul eax, eax, 0x232fd747
sub eax, 0x5ba16b68
imul eax, eax, 0xf647cc63
or eax, 0x8a92dba
mov ecx, 0x90a4216f
xor edx, edx
div ecx
sub eax, 0x16674750
xor eax, 0x63c7c8af
mov ecx, 0x21065249
xor edx, edx
div ecx
add eax, 0xc89e7956
xor eax, 0xa5e0a331
sub eax, 0x515b9a6e
imul eax, eax, 0xa01ce095
or eax, 0xef7a4d8b
imul eax, eax, 0x45c9c91
add eax, 0x97a6769
add eax, 0x2156d02e
xor eax, 0xde95609
or eax, 0xfc07571c
cmp eax, 0x232d41a
jb 0x100df9f9
jmp 0x100dfa84
mov eax, dword [esi + 0x24]
mov eax, dword [eax]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx], edx
mov dword [eax], 0
jmp 0x100df84e
mov ebx, dword [esi + 0x40]
push eax
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov dword [esi + 0x10], edi
mov esp, edi
mov edi, dword [esi + 0x3c]
mov dword [ecx], edi
mov edi, dword [esi + 0x44]
mov dword [eax], ebx
mov dword [edx], edi
mov eax, dword [eax]
mov ecx, dword [ecx]
mul ecx
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [eax + 4], edx
mov dword [eax], ecx
jmp 0x100df439
mov eax, esp
mov dword [esi + 0xc], eax
mov dword [esi + 0x4c], 0x216
cmp dword [esi + 0x4c], 0
jg 0x100dfb07
mov eax, dword [esi + 0x4c]
mov dword [esi + 8], eax
jmp 0x100dfb1c
mov eax, dword [esi + 0x4c]
and eax, 0xffff
or eax, 0x70000
or eax, 0x80000000
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [0x10144994]
add eax, dword [0x10144998]
add eax, 0x5ce4eca2
xor eax, 0x9f01dfb3
add eax, 0x880814b6
or eax, 0xc2cb60f6
add eax, 0x311cf506
sub eax, 0x615eee4c
mov ecx, 0xcccb2496
xor edx, edx
div ecx
or eax, 0xd81cc3e6
xor eax, 0x84d5c7d2
and eax, 0x1f3af9b0
add eax, 0x8dfdcb49
mov ecx, 0x4485621a
xor edx, edx
div ecx
xor eax, 0x50277098
sub eax, 0x2651a8d7
xor eax, 0xe6189a91
xor eax, 0xd05b5650
add eax, 0x652eea95
xor eax, 0xcee2eed
sub eax, 0xcb652abd
xor eax, 0x7a4b0a66
cmp eax, 0x7d9bf45
ja 0x100dfba9
jmp 0x100dfba9
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xc]
mov esp, edx
mov dword [eax], ecx
jmp 0x100df544
jmp 0x100df73b
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov edx, dword [edx]
mov ecx, dword [ecx]
mov dword [ecx], edx
mov dword [eax], 0
jmp 0x100df8d7
jmp 0x100df9f9