Function at 0x10045fd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x44], eax
mov eax, dword [0x100bf198]
xor eax, ebp
mov dword [esi + 0x48], eax
mov eax, dword [0x100be774]
sub eax, dword [0x100be778]
and eax, 0x80a62512
imul eax, eax, 0x2bc8f530
imul eax, eax, 0xb806deea
and eax, 0x2b4b6944
imul eax, eax, 0xd7c67acb
add eax, 0xbd4c2beb
imul eax, eax, 0xe45ec943
mov ecx, 0x3e7a41b1
xor edx, edx
div ecx
sub eax, 0x248c458d
and eax, 0x1579f982
or eax, 0x8e6197e3
imul eax, eax, 0xe8686c45
mov ecx, 0x36d3e327
xor edx, edx
div ecx
and eax, 0x7063c5da
add eax, 0x7ffde4f9
imul eax, eax, 0x52d1843a
and eax, 0xf611234d
add eax, 0x3c122846
mov ecx, 0x7744144f
xor edx, edx
div ecx
mov ecx, 0xe7447246
xor edx, edx
div ecx
mov ecx, 0x2b7ea405
xor edx, edx
div ecx
imul eax, eax, 0x27a382f4
and eax, 0x8d040ee5
mov ecx, 0x666048f7
xor edx, edx
div ecx
mov ecx, 0x6a1d6ac8
xor edx, edx
div ecx
xor eax, 0x818816a0
xor eax, 0x650476be
imul eax, eax, 0x45b8c6ab
add eax, 0x19bf487a
or eax, 0x7d49848
xor eax, 0x99c53569
sub eax, 0x6d6944d3
or eax, 0x7833d912
or eax, 0x44e5b87b
sub eax, 0xcdb2a869
mov ecx, 0x87157a6c
xor edx, edx
div ecx
imul eax, eax, 0xafbd6952
and eax, 0xe442c99
xor eax, 0x90ad554b
xor eax, 0x1b4e13a1
mov ecx, 0xc07d5d46
xor edx, edx
div ecx
add eax, 0x84eac85b
xor eax, 0x6581be10
xor eax, 0xf91d2623
sub eax, 0xe5709932
sub eax, 0xe8b29d0c
xor eax, 0x1ec3a422
mov ecx, 0xcad0d0cb
xor edx, edx
div ecx
sub eax, 0xcc039af0
mov ecx, 0x69f9e3df
xor edx, edx
div ecx
imul eax, eax, 0xa5c17f3f
add eax, 0x3bb34cc5
xor eax, 0xe2d41ea1
add eax, 0x2df06cd8
sub eax, 0x16e99c09
sub eax, 0x52e632f8
sub eax, 0xd4271be8
or eax, 0x39e87023
xor eax, 0xcc772f49
sub eax, 0xc0e37d6d
mov ecx, 0x40e98523
xor edx, edx
div ecx
add eax, 0xca10faff
mov ecx, 0x6ab4b29d
xor edx, edx
div ecx
or eax, 0x13347d1b
and eax, 0x47c33e9f
mov ecx, 0x1fd934cc
xor edx, edx
div ecx
xor eax, 0x35345f80
xor eax, 0x325bfea2
and eax, 0x137b02bf
imul eax, eax, 0x3ec0e92b
sub eax, 0x9f015a2b
add eax, 0xdf5fb4d2
cmp eax, 0x20bcf652
jbe 0x10046bbc
mov eax, dword [str.3LTO]
or eax, dword [0x100be780]
add eax, 0x54897b1d
imul eax, eax, 0x4b10cd94
and eax, 0x91f678b8
sub eax, 0xf16fd6eb
xor eax, 0xad031ed1
mov ecx, 0xe878dfc6
xor edx, edx
div ecx
imul eax, eax, 0x3417c027
sub eax, 0x9a53468c
and eax, 0x9265b0ff
and eax, 0x684ae1be
imul eax, eax, 0x59f6e973
imul eax, eax, 0xadd0ffb9
sub eax, 0x8fc81c3
mov ecx, 0xa30573e4
xor edx, edx
div ecx
add eax, 0x9bd20747
or eax, 0xd3af8d49
or eax, 0x8c1b6eb4
xor eax, 0x3b8f0921
imul eax, eax, 0x254b31fa
add eax, 0xe65681cb
add eax, 0xd62bf420
xor eax, 0x27ede043
mov ecx, 0x1e2b5bb2
xor edx, edx
div ecx
sub eax, 0x43edd6f2
add eax, 0xe03c4892
xor eax, 0x4c35e406
and eax, 0xbfc6154f
or eax, 0xb3134b7e
and eax, 0x8f9451f9
sub eax, 0xa4531204
add eax, 0xa6ffb8fa
mov ecx, 0x66b5f97e
xor edx, edx
div ecx
and eax, 0x100648a7
add eax, 0x72fd59cc
imul eax, eax, 0x94f5318b
mov ecx, 0x21a43cfe
xor edx, edx
div ecx
or eax, 0xe7bdaf76
mov ecx, 0xa702d34c
xor edx, edx
div ecx
xor eax, 0x7d286654
mov ecx, 0x8056c974
xor edx, edx
div ecx
xor eax, 0xeef3568a
add eax, 0xbecf5219
add eax, 0x6b9c4d91
and eax, 0xc75c8f2c
xor eax, 0xbce8238e
and eax, 0xfa51b561
or eax, 0x6d8dc3c
add eax, 0x479053c8
add eax, 0xb0107217
imul eax, eax, 0xcb5bda61
and eax, 0x3d9c1530
or eax, 0xad9f0893
sub eax, 0xd6ddfaae
and eax, 0x2bd3d279
or eax, 0x372c6084
sub eax, 0xf321ab81
or eax, 0x9494af3b
imul eax, eax, 0xd85b14af
mov ecx, 0x44eced55
xor edx, edx
div ecx
and eax, 0x1157406
sub eax, 0x4d4d470e
imul eax, eax, 0xff0ce9c4
xor eax, 0x13a598f2
add eax, 0xf8cc2936
sub eax, 0x38aa8569
sub eax, 0xca164e1d
mov ecx, 0x95da5ea4
xor edx, edx
div ecx
sub eax, 0xf31f692b
mov ecx, 0xb1649894
xor edx, edx
div ecx
xor eax, 0x7e726634
imul eax, eax, 0x74823a42
sub eax, 0x2663e8b6
cmp dword [0x100bfd1c], 0
sete cl
mov byte [esi + 0x43], cl
cmp eax, 0x30f08532
je 0x100461af
mov al, byte [esi + 0x43]
test al, 1
jne 0x1004637c
jmp 0x100465b0
mov al, byte [0x100bd0c1]
xor al, 0xc8
mov byte [0x100bd0cb], al
mov al, byte [0x100bd0c2]
xor al, 0x80
mov byte [0x100bd0cc], al
mov al, byte [0x100bd0c3]
xor al, 0x23
mov byte [str._uEa_], al
mov al, byte [0x100bd0c4]
xor al, 0x71
mov byte [0x100bd0ce], al
mov al, byte [0x100bd0c5]
xor al, 0xa3
mov byte [0x100bd0cf], al
mov al, byte [0x100bd0c6]
xor al, 0x32
mov byte [0x100bd0d1], al
mov al, byte [0x100bd0c7]
xor al, 0xaa
mov byte [0x100bd0d2], al
mov al, byte [0x100bd0c8]
xor al, 0x57
mov byte [0x100bd0d3], al
mov al, byte [0x100bd0c9]
xor al, 0x4c
mov byte [0x100bd0d4], al
mov al, byte [0x100bd0ca]
xor al, 0xac
mov byte [0x100bd0d5], al
mov al, byte [0x100bd0a1]
xor al, 0x60
mov byte [0x100bd0ab], al
mov al, byte [0x100bd0a2]
xor al, 0x83
mov byte [0x100bd0ac], al
mov al, byte [0x100bd0a3]
xor al, 0xa5
mov byte [0x100bd0ad], al
mov al, byte [0x100bd0a4]
xor al, 0x4d
mov byte [0x100bd0ae], al
mov al, byte [0x100bd0a5]
xor al, 0xbc
mov byte [0x100bd0b0], al
mov al, byte [0x100bd0a6]
xor al, 0x92
mov byte [str.Ua_vvi], al
mov al, byte [0x100bd0a7]
xor al, 0xce
mov byte [0x100bd0b2], al
mov al, byte [0x100bd0a8]
xor al, 0x93
mov byte [0x100bd0b3], al
mov al, byte [0x100bd0a9]
xor al, 0x65
mov byte [0x100bd0b5], al
mov al, byte [0x100bd0aa]
xor al, 0xe
mov byte [0x100bd0b6], al
mov al, byte [0x100bd06f]
xor al, 0x27
mov byte [0x100bd07b], al
mov al, byte [0x100bd070]
xor al, 0xef
mov byte [0x100bd07c], al
mov al, byte [0x100bd071]
xor al, 0x5a
mov byte [0x100bd07d], al
mov al, byte [0x100bd072]
xor al, 0x29
mov byte [0x100bd07e], al
mov al, byte [0x100bd073]
xor al, 0xdb
mov byte [0x100bd07f], al
mov al, byte [0x100bd074]
xor al, 0
mov byte [0x100bd080], al
mov al, byte [0x100bd075]
xor al, 0x14
mov byte [0x100bd082], al
mov al, byte [0x100bd076]
xor al, 0xb9
mov byte [0x100bd083], al
mov al, byte [0x100bd077]
xor al, 8
mov byte [0x100bd084], al
mov al, byte [0x100bd078]
xor al, 0xbc
mov byte [0x100bd085], al
mov al, byte [0x100bd079]
xor al, 0x58
mov byte [0x100bd086], al
mov al, byte [0x100bd07a]
xor al, 0x49
mov byte [0x100bd087], al
mov al, byte [0x100bd0b7]
xor al, 0x7e
mov byte [0x100bd0bc], al
mov al, byte [0x100bd0b8]
xor al, 0xb2
mov byte [0x100bd0bd], al
mov al, byte [0x100bd0b9]
xor al, 0xba
mov byte [0x100bd0be], al
mov al, byte [0x100bd0ba]
xor al, 0xf2
mov byte [0x100bd0bf], al
mov al, byte [0x100bd0bb]
xor al, 0x9d
mov byte [0x100bd0c0], al
mov al, byte [0x100bd088]
xor al, 0xe6
mov byte [0x100bd092], al
mov al, byte [0x100bd089]
xor al, 0xbb
mov byte [0x100bd094], al
mov al, byte [0x100bd08a]
xor al, 2
mov byte [0x100bd097], al
mov al, byte [0x100bd08b]
xor al, 0x89
mov byte [0x100bd099], al
mov al, byte [0x100bd08c]
xor al, 0xb4
mov byte [0x100bd09b], al
mov al, byte [0x100bd08d]
xor al, 0x67
mov byte [0x100bd09c], al
mov al, byte [0x100bd08e]
xor al, 0x8b
mov byte [0x100bd09d], al
mov al, byte [0x100bd08f]
xor al, 0xf4
mov byte [0x100bd09e], al
mov al, byte [str.IwaklF_r]
xor al, 0x2d
mov byte [0x100bd09f], al
mov al, byte [0x100bd091]
xor al, 0x49
mov byte [0x100bd0a0], al
mov ebx, dword [esi + 0x44]
mov dword [0x100bfd1c], 1
push eax
mov eax, esp
sub esp, 0x34
mov ecx, esp
mov dword [esi + 8], ecx
push eax
mov edi, esp
mov dword [esi + 0xc], edi
sub esp, 0xc
mov edx, esp
mov dword [esi + 0x10], edx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x38], ecx
push eax
mov ecx, esp
mov dword [esi + 0x3c], ecx
sub esp, 0x10
mov ecx, esp
mov dword [esi + 0x14], ecx
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x18], ecx
mov esp, ecx
push eax
mov ecx, esp
mov dword [esi + 0x1c], ecx
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x20], ecx
sub esp, 0x10
mov ecx, esp
mov dword [esi + 0x24], ecx
push eax
mov ecx, esp
mov dword [esi + 0x28], ecx
push eax
mov ecx, esp
mov dword [esi + 0x2c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x30], ecx
push eax
mov ecx, esp
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x38]
mov dword [eax], ebx
mov dword [edi], 1
mov edi, dword [0x100bd0ab]
mov dword [edx], edi
mov edi, dword [0x100bd0af]
mov dword [edx + 4], edi
mov edi, dword [0x100bd0b3]
mov dword [edx + 8], edi
mov edx, dword [0x100bd0bc]
mov dword [ecx], edx
mov dl, byte [0x100bd0c0]
mov byte [ecx + 4], dl
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.1003ecb0
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x3c]
mov dword [eax], ecx
cmp dword [eax], 0
jne 0x100466bc
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x10]
sub esp, 8
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.10087c90
mov ecx, dword [esi + 8]
add esp, 8
mov eax, dword [esi + 0x38]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.10087ca0
add esp, 8
jmp 0x100466c5
mov eax, dword [esi + 0xc]
mov dword [eax], 1
mov edi, dword [esi + 0x1c]
sub esp, 4
mov eax, esp
mov dword [eax], 0xf
call fcn.10019ca0
mov eax, dword [esi + 0x14]
add esp, 4
movsd xmm0, qword [0x100bd080]
movsd qword [eax + 5], xmm0
movsd xmm0, qword [0x100bd07b]
movsd qword [eax], xmm0
call fcn.10045fb0
mov ecx, dword [esi + 0x14]
mov ebx, eax
mov eax, dword [esi + 0x18]
mov dword [esi + 4], ebx
mov ebx, edx
mov edx, dword [esi + 4]
mov dword [eax + 4], ebx
mov dword [eax], edx
mov edx, dword [eax]
mov ebx, dword [eax + 4]
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], ebx
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1003d7c0
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 8]
mov dword [edi], ebx
mov edi, dword [0x100bd0cb]
mov dword [edx], edi
mov edi, dword [0x100bd0cf]
mov dword [edx + 4], edi
mov edi, dword [0x100bd0d3]
mov dword [edx + 8], edi
mov edx, dword [0x100bd092]
mov dword [ecx], edx
mov edx, dword [0x100bd096]
mov dword [ecx + 4], edx
mov edx, dword [0x100bd09a]
mov dword [ecx + 8], edx
mov dx, word [0x100bd09e]
mov word [ecx + 0xc], dx
mov dl, byte [0x100bd0a0]
mov byte [ecx + 0xe], dl
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.1003ecb0
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x34]
mov dword [eax], ecx
cmp dword [eax], 0
jne 0x1004682b
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax]
sub esp, 4
mov ecx, esp
mov dword [ecx], edx
call eax
mov ecx, dword [esi + 0x20]
mov edx, eax
mov eax, dword [esi + 0x28]
mov dword [eax], edx
mov edx, dword [eax]
sub esp, 0xc
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 8], 0
call fcn.1003d7c0
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x2c]
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 0x28]
mov dword [edx], edi
mov edx, dword [eax]
xor edi, edi
sub esp, 0xc
mov eax, esp
mov dword [eax + 8], edi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1003d7c0
mov ecx, dword [esi + 0x30]
add esp, 0xc
mov edx, eax
mov eax, dword [esi + 0x2c]
mov dword [ecx], edx
call dword [eax]
mov eax, dword [esi + 0x30]
call dword [eax]
mov eax, dword [esi + 0x28]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10046ba1
mov eax, dword [0x100be784]
xor edx, edx
div dword [0x100be788]
mov ecx, 0xdeb500a1
xor edx, edx
div ecx
add eax, 0x1d569479
imul eax, eax, 0x426da74c
imul eax, eax, 0x26f7bdc4
and eax, 0x41119a9b
add eax, 0xe201517d
sub eax, 0xd5c21bfb
mov ecx, 0x5b5b6eaf
xor edx, edx
div ecx
or eax, 0xef6e220e
sub eax, 0x63b55744
or eax, 0x6ec9ff4f
or eax, 0x6bdbd04e
or eax, 0xf2a5fc2b
imul eax, eax, 0xe40bfb6d
sub eax, 0x11074b0f
sub eax, 0x15f9c1e7
sub eax, 0x9fdc5f46
sub eax, 0x51cce9a6
or eax, 0x6af1f8f
xor eax, 0x8bc18cd6
and eax, 0x12bdb7e6
sub eax, 0xcf761c78
mov ecx, 0x6a466a75
xor edx, edx
div ecx
xor eax, 0x866d93af
sub eax, 0xbf3f6ac
add eax, 0xf11652b3
or eax, 0xabcce6dd
or eax, 0xd47cf5dd
or eax, 0xdc2e1f75
imul eax, eax, 0xd08ee55d
mov ecx, 0x5b224a5e
xor edx, edx
div ecx
sub eax, 0x439f58fc
xor eax, 0xb54afdb3
add eax, 0xd5593992
and eax, 0xcc6c8d7a
mov ecx, 0x7eac424a
xor edx, edx
div ecx
or eax, 0x68c941f1
sub eax, 0xad049f75
mov ecx, 0x3c2d5552
xor edx, edx
div ecx
mov ecx, 0x30124e82
xor edx, edx
div ecx
and eax, 0x349fce78
xor eax, 0x9fa9547a
add eax, 0xf968ed47
imul eax, eax, 0x1d067bbc
xor eax, 0x654f0533
imul eax, eax, 0xb6711eaf
xor eax, 0xe57d9621
mov ecx, 0xb029a519
xor edx, edx
div ecx
or eax, 0x29575617
or eax, 0x614b9196
add eax, 0x40859689
and eax, 0x5f75a88f
add eax, 0xbbfd5368
xor eax, 0x6f4778b6
add eax, 0x662df6c7
sub eax, 0x71d828a6
or eax, 0x24f829ef
mov ecx, 0x87614439
xor edx, edx
div ecx
add eax, 0xb93b461d
imul eax, eax, 0x321f93b3
add eax, 0x853aa5e8
sub eax, 0xe2f02b86
mov ecx, 0xc769ee01
xor edx, edx
div ecx
mov ecx, 0x57f68e80
xor edx, edx
div ecx
and eax, 0x2a56d7b6
and eax, 0x598a2b5f
add eax, 0x7f258995
imul eax, eax, 0xe28bdc8f
xor eax, 0x1cafc3b
add eax, 0x3f3d0d42
imul eax, eax, 0x48516775
xor eax, 0x82e4b714
cmp eax, 0xd8bf2452
je 0x10046bc6
mov ecx, dword [esi + 0xc]
mov eax, dword [0x100be78c]
xor edx, edx
div dword [0x100be790]
mov edi, 0xe8b923e6
xor edx, edx
div edi
and eax, 0x53303cd9
and eax, 0xa443b5fc
imul eax, eax, 0x867c099
add eax, 0x3b6c090b
mov edi, 0xbef405d3
xor edx, edx
div edi
mov edi, 0x39f22689
xor edx, edx
div edi
xor eax, 0x742b8326
imul eax, eax, 0xe5dc1d44
xor eax, 0x7631374
mov edi, 0x4514af59
xor edx, edx
div edi
xor eax, 0x78f60a27
mov edi, 0xb541c82d
xor edx, edx
div edi
add eax, 0xa816c441
sub eax, 0x9ad69591
add eax, 0x135bf578
imul eax, eax, 0x11c80d28
or eax, 0x8c350f15
sub eax, 0xe53c9f87
xor eax, 0x43d0b489
xor eax, 0xdcce60fa
xor eax, 0x4271c5e1
xor eax, 0xfdcd85b7
and eax, 0xcb87bfec
add eax, 0xf5fa7ba9
or eax, 0xcf206683
mov edi, 0x84296940
xor edx, edx
div edi
xor eax, 0xe1beaf3e
xor eax, 0xd90f9b9f
xor eax, 0xba66609b
mov edi, 0xdf3aa77e
xor edx, edx
div edi
xor eax, 0xe08fb1a0
add eax, 0xe84e4d89
sub eax, 0xccb06a6b
or eax, 0x22500dfb
imul eax, eax, 0xeb794101
add eax, 0x197f9c23
and eax, 0x62c5a860
add eax, 0x17fd2a24
or eax, 0x603ce7ac
and eax, 0xa8a8c8b3
sub eax, 0x8dbb965c
sub eax, 0xfd336a29
sub eax, 0x49fa36a0
and eax, 0xb4b1553e
add eax, 0xfe44b34b
mov edi, 0x5b5c588
xor edx, edx
div edi
mov edi, 0xa950b6b2
xor edx, edx
div edi
and eax, 0xcd8276a6
or eax, 0x595b739c
imul eax, eax, 0x88926892
or eax, 0x4daae9ae
imul eax, eax, 0xf93e5c16
add eax, 0x6e3bf4c4
mov edi, 0x77e9c22e
xor edx, edx
div edi
add eax, 0x2f75fdc6
imul eax, eax, 0x28ca6500
imul eax, eax, 0xef3e3e6c
xor eax, 0xbae2b22e
add eax, 0x96bc3
sub eax, 0x4904c739
imul eax, eax, 0x351b5d83
and eax, 0x379f682
xor eax, 0x980d7c92
sub eax, 0xd1a83e27
sub eax, 0xf2f10326
xor eax, 0xaf5d1a07
or eax, 0xa752f5ed
imul eax, eax, 0xd886d45d
add eax, 0x181f9690
sub eax, 0xe5cbe791
imul eax, eax, 0xa6d196db
mov dword [ecx], 0
cmp eax, 0xf91324f5
je 0x10046bc6
jmp 0x10046ba1
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov dword [esi], eax
mov ecx, dword [esi + 0x48]
xor ecx, ebp
call fcn.10066f8f
mov eax, dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x100bfd1c]
jmp 0x100461af
mov eax, dword [esi + 0xc]
mov dword [eax], 0
jmp 0x100469e0