Function at 0x1004a3e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x60
mov esi, esp
mov eax, dword [ebp + 8]
mov dword [esi + 0x54], eax
mov eax, dword [0x100c42d8]
xor eax, ebp
mov dword [esi + 0x58], eax
cmp dword [0x100c4e5c], 0
jne 0x1004aa69
mov eax, dword [0x100c38f8]
xor eax, dword [0x100c38fc]
or eax, 0x7ba9fed9
or eax, 0x29a129ca
sub eax, 0x56a02177
imul eax, eax, 0x7365c5e4
mov ecx, 0x1f41ec95
xor edx, edx
div ecx
and eax, 0xbc627e1c
or eax, 0x161119f8
sub eax, 0x15193f97
xor eax, 0xaab1b29f
xor eax, 0x6f50cd54
and eax, 0x708cbe67
imul eax, eax, 0x30d8b0db
mov ecx, 0xcd7259f5
xor edx, edx
div ecx
xor eax, 0x54524f05
add eax, 0x829a5ea2
imul eax, eax, 0x23ce579a
sub eax, 0x2577bf62
imul eax, eax, 0x2d311956
imul eax, eax, 0x748129b4
mov ecx, 0x9b67c476
xor edx, edx
div ecx
xor eax, 0xf1e64cdf
or eax, 0x7fc1ebbf
sub eax, 0xe3cbfa5f
and eax, 0x9429c687
mov ecx, 0xb11df304
xor edx, edx
div ecx
or eax, 0x2593db0d
mov ecx, 0xddee9d09
xor edx, edx
div ecx
sub eax, 0xe8f04345
sub eax, 0x6008d56a
mov ecx, 0xde0d5b0a
xor edx, edx
div ecx
imul eax, eax, 0x16d53947
imul eax, eax, 0xaf38eb90
imul eax, eax, 0x9d6bcc17
or eax, 0x2c85574e
imul eax, eax, 0xbdaec273
xor eax, 0x7f216c36
mov ecx, 0x620a2487
xor edx, edx
div ecx
imul eax, eax, 0x9c3b1ede
or eax, 0xca146875
imul eax, eax, 0xb05f7565
or eax, 0x96fdbf99
add eax, 0x8f060efc
sub eax, 0xc89bc8a3
add eax, 0xfd7ff62b
imul eax, eax, 0x13102713
add eax, 0xc74347c1
sub eax, 0x3fd223d1
xor eax, 0xe3ed6523
add eax, 0xe6725750
xor eax, 0x215a3dbe
imul eax, eax, 0xa909538a
and eax, 0x3731f0fd
and eax, 0x4a0cf996
add eax, 0xfdd66f1
mov ecx, 0x6de67c57
xor edx, edx
div ecx
or eax, 0x897ae2a8
add eax, 0x41e6479b
add eax, 0xf18aba4d
mov ecx, 0x60239e51
xor edx, edx
div ecx
and eax, 0x312e7cb8
imul eax, eax, 0x465f29eb
add eax, 0x84e61c37
mov ecx, 0x3fa4f3b8
xor edx, edx
div ecx
and eax, 0x985d48b5
sub eax, 0xcc59e45e
or eax, 0xd5f3d7e
add eax, 0xf43c814c
mov ecx, 0x8a9dcf21
xor edx, edx
div ecx
mov ecx, 0xfc80e9a1
xor edx, edx
div ecx
xor eax, 0x3431c83c
or eax, 0x1e91311a
imul eax, eax, 0xcbe0e6d4
cmp eax, 0x48db69bf
je 0x1004b222
mov eax, dword [0x100c3900]
add eax, dword [0x100c3904]
xor eax, 0x7b4a861f
mov ecx, 0xdf0f7a81
xor edx, edx
div ecx
sub eax, 0xed510d72
imul eax, eax, 0xa74de477
sub eax, 0xa670f69b
sub eax, 0x6a6bf8e2
mov ecx, 0xa4c59764
xor edx, edx
div ecx
add eax, 0xfe8df5b9
or eax, 0xe7d0b9eb
or eax, 0xac74aaba
sub eax, 0xcc835464
or eax, 0x5710efb3
or eax, 0xec719987
xor eax, 0x30171777
mov ecx, 0xbfc12a6d
xor edx, edx
div ecx
mov ecx, 0x457587db
xor edx, edx
div ecx
imul eax, eax, 0x88a160ed
and eax, 0x69e923fa
xor eax, 0x42cfa999
or eax, 0xde0d054f
mov ecx, 0x6075525c
xor edx, edx
div ecx
imul eax, eax, 0xe1827cca
xor eax, 0xc0ab855c
add eax, 0x2e2ac6ee
imul eax, eax, 0x36d63a19
or eax, 0xba6bd79b
add eax, 0xa25615fa
mov ecx, 0x48ead3ef
xor edx, edx
div ecx
imul eax, eax, 0x3d39cf9d
xor eax, 0x2a8b41c0
imul eax, eax, 0x531d3a58
sub eax, 0xf53574a3
mov ecx, 0x5883061e
xor edx, edx
div ecx
xor eax, 0x991704be
and eax, 0xb2087a94
mov ecx, 0x2682fda3
xor edx, edx
div ecx
add eax, 0xf2c878ea
and eax, 0x31f28bee
sub eax, 0x6d9212fb
xor eax, 0x730042f
sub eax, 0xcf90c0aa
add eax, 0x4f8e85b8
sub eax, 0xb1a0e0a1
imul eax, eax, 0x38fa009e
sub eax, 0x16770019
add eax, 0xeccc538f
imul eax, eax, 0x76408bca
sub eax, 0x5740a65f
add eax, 0x526fbea3
sub eax, 0xb0636c52
add eax, 0x51a299c2
imul eax, eax, 0x370e102
sub eax, 0xbdcc1a64
and eax, 0xcb99d31b
sub eax, 0xc842ea8b
xor eax, 0x330a1147
sub eax, 0x96c1d1eb
imul eax, eax, 0xf183d8f6
xor eax, 0x9a241be6
sub eax, 0x5e565242
and eax, 0x88c10f5d
imul eax, eax, 0x31df08ca
and eax, 0x45224b44
sub eax, 0xcae402a5
xor eax, 0x60b21a39
add eax, 0xf0000993
imul eax, eax, 0x97f494c2
sub eax, 0xb1845b77
sub eax, 0x80fef1d8
mov ecx, 0xa475ee89
xor edx, edx
div ecx
xor eax, 0x14e536de
xor eax, 0x25ebbfd
mov cl, byte [0x100c208c]
xor cl, 0xd4
mov byte [0x100c2099], cl
mov cl, byte [0x100c208d]
xor cl, 0x91
mov byte [0x100c209a], cl
mov cl, byte [0x100c208e]
xor cl, 0x19
mov byte [0x100c209b], cl
mov cl, byte [0x100c208f]
xor cl, 0xce
mov byte [0x100c209c], cl
mov cl, byte [0x100c2090]
xor cl, 0x8d
mov byte [0x100c209d], cl
mov cl, byte [0x100c2091]
xor cl, 0x21
mov byte [0x100c209e], cl
mov cl, byte [0x100c2092]
xor cl, 0xe9
mov byte [0x100c209f], cl
mov cl, byte [0x100c2093]
xor cl, 0xe7
mov byte [0x100c20a0], cl
mov cl, byte [0x100c2094]
xor cl, 0xb5
mov byte [0x100c20a1], cl
mov cl, byte [0x100c2095]
xor cl, 0xf7
mov byte [0x100c20a2], cl
mov cl, byte [0x100c2096]
xor cl, 0x64
mov byte [0x100c20a3], cl
mov cl, byte [0x100c2097]
xor cl, 0xf4
mov byte [0x100c20a4], cl
mov cl, byte [0x100c2098]
xor cl, 0x89
mov byte [0x100c20a5], cl
mov cl, byte [0x100c20a6]
xor cl, 0x16
mov byte [0x100c20b2], cl
mov cl, byte [0x100c20a7]
xor cl, 0x82
mov byte [0x100c20b3], cl
mov cl, byte [0x100c20a8]
xor cl, 0x98
mov byte [0x100c20b4], cl
mov cl, byte [0x100c20a9]
xor cl, 0x28
mov byte [0x100c20b5], cl
mov cl, byte [0x100c20aa]
xor cl, 0xb2
mov byte [0x100c20b6], cl
mov cl, byte [0x100c20ab]
xor cl, 0xd3
mov byte [0x100c20b7], cl
mov cl, byte [0x100c20ac]
xor cl, 0xc9
mov byte [0x100c20b8], cl
mov cl, byte [0x100c20ad]
xor cl, 0x34
mov byte [0x100c20b9], cl
mov cl, byte [0x100c20ae]
xor cl, 0x96
mov byte [0x100c20ba], cl
mov cl, byte [0x100c20af]
xor cl, 0x4e
mov byte [0x100c20bb], cl
mov cl, byte [0x100c20b0]
xor cl, 0x3e
mov byte [0x100c20bc], cl
mov cl, byte [0x100c20b1]
xor cl, 0x4f
mov byte [0x100c20bd], cl
mov cl, byte [0x100c2077]
xor cl, 0x28
mov byte [0x100c2080], cl
mov cl, byte [0x100c2078]
xor cl, 0x9b
mov byte [0x100c2081], cl
mov cl, byte [0x100c2079]
xor cl, 0x54
mov byte [0x100c2082], cl
mov cl, byte [0x100c207a]
xor cl, 0xe5
mov byte [0x100c2084], cl
mov cl, byte [0x100c207b]
xor cl, 0xc0
mov byte [0x100c2085], cl
mov cl, byte [0x100c207c]
xor cl, 0x14
mov byte [0x100c2086], cl
mov cl, byte [0x100c207d]
xor cl, 0x13
mov byte [0x100c2087], cl
mov cl, byte [0x100c207e]
xor cl, 0xf1
mov byte [0x100c2088], cl
mov cl, byte [0x100c207f]
xor cl, 0x53
mov byte [0x100c208a], cl
mov cl, byte [0x100c206d]
xor cl, 0x67
mov byte [0x100c2072], cl
mov cl, byte [0x100c206e]
xor cl, 0xd6
mov byte [0x100c2073], cl
mov cl, byte [0x100c206f]
xor cl, 0x53
mov byte [0x100c2074], cl
mov cl, byte [0x100c2070]
xor cl, 0x49
mov byte [0x100c2075], cl
mov cl, byte [0x100c2071]
xor cl, 0xac
mov byte [0x100c2076], cl
mov cl, byte [0x100c20be]
xor cl, 0x4f
mov byte [0x100c20c9], cl
mov cl, byte [0x100c20bf]
xor cl, 0x3e
mov byte [0x100c20ca], cl
mov cl, byte [0x100c20c0]
xor cl, 0x52
mov byte [0x100c20cc], cl
mov cl, byte [0x100c20c1]
xor cl, 0x45
mov byte [0x100c20cd], cl
mov cl, byte [0x100c20c2]
xor cl, 0x9f
mov byte [0x100c20ce], cl
mov cl, byte [0x100c20c3]
xor cl, 0xfc
mov byte [0x100c20d0], cl
mov cl, byte [0x100c20c4]
xor cl, 0x38
mov byte [0x100c20d3], cl
mov cl, byte [0x100c20c5]
xor cl, 0x60
mov byte [0x100c20d4], cl
mov cl, byte [0x100c20c6]
xor cl, 0xe5
mov byte [0x100c20d5], cl
mov cl, byte [0x100c20c7]
xor cl, 0x88
mov byte [0x100c20d6], cl
mov cl, byte [0x100c20c8]
xor cl, 0xf0
mov byte [0x100c20d7], cl
cmp eax, 0x680f59b
jbe 0x1004a5c8
jmp 0x1004aa69
mov ebx, dword [esi + 0x54]
mov dword [0x100c4e5c], 1
push eax
mov eax, esp
sub esp, 0x34
mov ecx, esp
mov dword [esi + 0x1c], ecx
push eax
mov edi, esp
mov dword [esi + 0x20], edi
sub esp, 0xc
mov edx, esp
mov dword [esi + 0x24], edx
sub esp, 8
mov ecx, esp
mov dword [esi + 0x4c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x50], ecx
sub esp, 0x10
mov ecx, esp
mov dword [esi + 0x28], ecx
sub esp, 8
mov ecx, esp
and ecx, 0xfffffff8
mov dword [esi + 0x2c], ecx
mov esp, ecx
push eax
mov ecx, esp
mov dword [esi + 0x30], ecx
sub esp, 0xc
mov ecx, esp
mov dword [esi + 0x34], ecx
sub esp, 0x10
mov ecx, esp
mov dword [esi + 0x38], ecx
push eax
mov ecx, esp
mov dword [esi + 0x3c], ecx
push eax
mov ecx, esp
mov dword [esi + 0x40], ecx
push eax
mov ecx, esp
mov dword [esi + 0x44], ecx
push eax
mov ecx, esp
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x4c]
mov dword [eax], ebx
mov dword [edi], 1
mov edi, dword [0x100c2080]
mov dword [edx], edi
mov edi, dword [0x100c2084]
mov dword [edx + 4], edi
mov edi, dword [0x100c2088]
mov dword [edx + 8], edi
mov edx, dword [0x100c2072]
mov dword [ecx], edx
mov dl, byte [0x100c2076]
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.100417c0
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x50]
mov dword [eax], ecx
cmp dword [eax], 0
jne 0x1004aec9
mov eax, dword [0x100c3908]
xor eax, dword [str.NKH4.2]
xor eax, 0x6d299779
imul eax, eax, 0x44ea6309
sub eax, 0x5cd7761f
and eax, 0xb280c50c
and eax, 0x79c66f77
and eax, 0x689544d5
add eax, 0xa1c81349
xor eax, 0x53107d72
sub eax, 0x9522035b
sub eax, 0x1836eab3
xor eax, 0xf4b746e
imul eax, eax, 0xc858c64e
imul eax, eax, 0xa0892e8a
add eax, 0xda375d0b
and eax, 0x33bbed33
sub eax, 0xe6acf650
or eax, 0x3f77444a
and eax, 0x354c8f98
or eax, 0xf031ba1e
or eax, 0x706dbda3
add eax, 0xbb7bbb83
mov ecx, 0xd5788a57
xor edx, edx
div ecx
xor eax, 0x7828b545
imul eax, eax, 0x3baaad6d
and eax, 0x1123e5d9
sub eax, 0xf485e81d
xor eax, 0x5536f992
mov ecx, 0x4216d8a9
xor edx, edx
div ecx
mov ecx, 0x4770090a
xor edx, edx
div ecx
xor eax, 0x40695a78
or eax, 0x91f6285d
imul eax, eax, 0x92d21f91
xor eax, 0xd5b786d1
mov ecx, 0x3e99fa74
xor edx, edx
div ecx
xor eax, 0x68b2037d
add eax, 0xfc4790b0
imul eax, eax, 0x89ff9ba9
imul eax, eax, 0x345ea8ca
mov ecx, 0xd5c8f468
xor edx, edx
div ecx
sub eax, 0x5ea32b22
and eax, 0xa1e75766
sub eax, 0x4d462527
and eax, 0xf883ac13
imul eax, eax, 0x4870c222
xor eax, 0x17623a02
imul eax, eax, 0xa81ac1a2
and eax, 0xc5f43b15
or eax, 0xdb9e3249
sub eax, 0xd2ee8306
and eax, 0x3e89509d
add eax, 0x12abe777
imul eax, eax, 0xc0388fe7
sub eax, 0x52c50631
mov ecx, 0xcb06ddca
xor edx, edx
div ecx
xor eax, 0xca85ae96
add eax, 0x5ddfbe08
add eax, 0x39de8355
imul eax, eax, 0x42afb5ec
mov ecx, 0x644000b2
xor edx, edx
div ecx
sub eax, 0x53ff6c55
imul eax, eax, 0x56ca7c99
xor eax, 0x4d3aad73
and eax, 0x43170013
xor eax, 0x98fc6e56
add eax, 0xbbf70b0e
mov ecx, 0xb91e629
xor edx, edx
div ecx
add eax, 0x4368fb5e
imul eax, eax, 0x56dabb2b
imul eax, eax, 0xd9c02661
sub eax, 0x3be9728c
mov ecx, 0x9986ccda
xor edx, edx
div ecx
mov ecx, 0xb0d07d7c
xor edx, edx
div ecx
cmp eax, 0x716b1756
ja 0x1004b47f
mov ecx, dword [esi + 0x1c]
mov eax, dword [0x100c3910]
xor eax, dword [0x100c3914]
xor eax, 0x642f3c0e
mov edi, 0x5b184a47
xor edx, edx
div edi
sub eax, 0xdbb253c6
xor eax, 0x92fe5d0
sub eax, 0xc41e706c
add eax, 0xaad97195
or eax, 0xfaaba961
or eax, 0xf6e5bbd5
xor eax, 0x7e5c9fda
imul eax, eax, 0x7c0bfc28
sub eax, 0x6e5fc351
or eax, 0xdb8b7178
or eax, 0xac6b7e62
xor eax, 0x4d8bc4a8
imul eax, eax, 0x98bbd551
imul eax, eax, 0x64ee05c3
xor eax, 0x81aa8d65
xor eax, 0x82e028b9
imul eax, eax, 0x5ab19d4f
mov edi, 0xd2b55139
xor edx, edx
div edi
or eax, 0x12231408
and eax, 0x6019e5a5
imul eax, eax, 0xfa43c06e
or eax, 0x96de0b45
xor eax, 0x9e688519
add eax, 0xf30f71e3
and eax, 0xeb443c69
and eax, 0x87625788
xor eax, 0x25578b15
imul eax, eax, 0x18617d61
imul eax, eax, 0xa5224fff
sub eax, 0xe0686fe9
imul eax, eax, 0xd6077a5e
add eax, 0x6d2a9db4
xor eax, 0x30851ef
add eax, 0xd95154b1
and eax, 0xc2cca212
xor eax, 0x49d6501
sub eax, 0xc83d94e7
and eax, 0x225e3ea3
xor eax, 0x59c8559a
imul eax, eax, 0x914082bb
sub eax, 0x4d3b3422
or eax, 0x7040d475
mov edi, 0xe5cff054
xor edx, edx
div edi
xor eax, 0xc0248133
xor eax, 0x5cb89b0
imul eax, eax, 0x6d14a36a
or eax, 0x8b124537
sub eax, 0xbfbac232
xor eax, 0xb53efd84
or eax, 0x19d71f03
imul eax, eax, 0xf7038a28
and eax, 0x54989f7e
mov edi, 0x6749f3d0
xor edx, edx
div edi
mov edx, dword [esi + 0x24]
add eax, 0xba527033
add eax, 0x263d0e06
or eax, 0x42fd479c
or eax, 0x336c8a28
add eax, 0x7d3aadff
add eax, 0xb5d9abf0
add eax, 0xd58c3312
add eax, 0xecd3cbb9
sub eax, 0x2113c0a1
sub eax, 0xc9495937
or eax, 0xb08654cc
add eax, 0x97804ebc
and eax, 0xcece026
imul eax, eax, 0xccd2430b
add eax, 0xc41e8314
xor eax, 0x9605624d
sub eax, 0x2eefdf25
mov dword [esi + 0x18], eax
sub esp, 8
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1008ca20
mov ecx, dword [esi + 0x1c]
add esp, 8
mov eax, dword [esi + 0x4c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1008ca30
add esp, 8
mov eax, dword [esi + 0x18]
cmp eax, 0x18dec83e
jbe 0x1004acf4
jmp 0x1004aed2
mov eax, dword [esi + 0x20]
mov dword [eax], 1
mov eax, dword [0x100c3918]
xor eax, dword [0x100c391c]
xor eax, 0x7405ddd5
add eax, 0x67281587
xor eax, 0x558faef9
add eax, 0x2e66b188
or eax, 0x8bb8454b
or eax, 0xb6f7b750
mov ecx, 0x9bd8886e
xor edx, edx
div ecx
add eax, 0x7205fd99
mov ecx, 0x76873382
xor edx, edx
div ecx
mov ecx, 0xca99057
xor edx, edx
div ecx
add eax, 0x53f7b343
xor eax, 0x353be35e
or eax, 0x80873e70
or eax, 0x2cb68f4a
and eax, 0xf50c333c
or eax, 0x46c0b58f
mov ecx, 0x368fb3f
xor edx, edx
div ecx
add eax, 0x8c3dccdb
imul eax, eax, 0xe69d5574
add eax, 0xc6790c9a
add eax, 0x2f1cd5a
xor eax, 0x32187e7
add eax, 0x657fb841
or eax, 0xd0d8caf1
or eax, 0x6abd4f45
imul eax, eax, 0xbfac19c9
mov ecx, 0xa86cb139
xor edx, edx
div ecx
add eax, 0x90540667
sub eax, 0x8f10f353
add eax, 0xdd161a12
sub eax, 0x38d1ee14
or eax, 0x13918751
add eax, 0xc4b74733
xor eax, 0xced334f0
and eax, 0xbbcb2bcf
and eax, 0x53ae138e
and eax, 0x13c37b5b
xor eax, 0x6dbd91f2
xor eax, 0xdb2ba3a3
xor eax, 0x9614266f
or eax, 0xb50c617d
or eax, 0x1455530b
mov ecx, 0x1ff2f403
xor edx, edx
div ecx
sub eax, 0x6ad3473f
or eax, 0xb4e0ac6f
imul eax, eax, 0x3701324c
and eax, 0x92a8598f
or eax, 0x44faeeb9
and eax, 0x8bf3c612
xor eax, 0xc261511b
or eax, 0xac14d4f5
add eax, 0x19fb9075
and eax, 0xcdac8fae
add eax, 0xae76580
sub eax, 0xd4927d5e
mov ecx, 0x4285cf
xor edx, edx
div ecx
and eax, 0x7f798edd
add eax, 0xdf6e3a7b
or eax, 0x7e3fc7e0
add eax, 0x3fdf0fb
or eax, 0x52dc84c6
or eax, 0xbf8f45b0
and eax, 0x59e3fae9
and eax, 0xa830f782
sub eax, 0x19e8f74e
and eax, 0x720a6f7e
imul eax, eax, 0x5a1631ad
xor eax, 0x8ba6d0bd
or eax, 0x74e07802
xor eax, 0x1a67495d
or eax, 0xcc6f0abc
xor eax, 0x12162fa1
cmp eax, 0x4179136f
je 0x1004b4b4
mov edi, dword [esi + 0x30]
mov eax, 1
mov dword [esi + 0x10], eax
sub esp, 4
mov eax, esp
mov dword [eax], 0xf
call fcn.1001d050
mov eax, dword [esi + 0x28]
add esp, 4
movsd xmm0, qword [0x100c209e]
movsd qword [eax + 5], xmm0
movsd xmm0, qword [0x100c2099]
movsd qword [eax], xmm0
call fcn.1004a3c0
mov ecx, dword [esi + 0x28]
mov ebx, eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xc], ebx
mov ebx, edx
mov edx, dword [esi + 0xc]
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.10040280
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 0x1c]
mov dword [edi], ebx
mov edi, dword [0x100c20b2]
mov dword [edx], edi
mov edi, dword [0x100c20b6]
mov dword [edx + 4], edi
mov edi, dword [0x100c20ba]
mov dword [edx + 8], edi
mov edx, dword [0x100c20c9]
mov dword [ecx], edx
mov edx, dword [0x100c20cd]
mov dword [ecx + 4], edx
mov edx, dword [0x100c20d1]
mov dword [ecx + 8], edx
mov dx, word [0x100c20d5]
mov word [ecx + 0xc], dx
mov dl, byte [0x100c20d7]
mov byte [ecx + 0xe], dl
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.100417c0
mov ecx, dword [esi + 0x48]
add esp, 8
mov edx, eax
mov eax, dword [esi + 0x10]
mov dword [ecx], edx
cmp dword [ecx], 0
sete cl
mov byte [esi + 0x17], cl
cmp eax, 0x96460040
ja 0x1004b4b4
mov al, byte [esi + 0x17]
test al, 1
jne 0x1004b179
jmp 0x1004b1fc
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
sub esp, 4
mov ecx, esp
mov dword [ecx], edx
call eax
mov ecx, dword [esi + 0x34]
mov edx, eax
mov eax, dword [esi + 0x3c]
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.10040280
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x40]
add esp, 0xc
mov edi, eax
mov eax, dword [esi + 0x3c]
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.10040280
mov ecx, dword [esi + 0x44]
add esp, 0xc
mov edx, eax
mov eax, dword [esi + 0x40]
mov dword [ecx], edx
call dword [eax]
mov eax, dword [esi + 0x44]
call dword [eax]
mov eax, dword [esi + 0x3c]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x1004b205
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x58]
xor ecx, ebp
call fcn.1006bd1f
mov eax, dword [esi + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [0x100c208c]
xor al, 0xd4
mov byte [0x100c2099], al
mov al, byte [0x100c208d]
xor al, 0x91
mov byte [0x100c209a], al
mov al, byte [0x100c208e]
xor al, 0x19
mov byte [0x100c209b], al
mov al, byte [0x100c208f]
xor al, 0xce
mov byte [0x100c209c], al
mov al, byte [0x100c2090]
xor al, 0x8d
mov byte [0x100c209d], al
mov al, byte [0x100c2091]
xor al, 0x21
mov byte [0x100c209e], al
mov al, byte [0x100c2092]
xor al, 0xe9
mov byte [0x100c209f], al
mov al, byte [0x100c2093]
xor al, 0xe7
mov byte [0x100c20a0], al
mov al, byte [0x100c2094]
xor al, 0xb5
mov byte [0x100c20a1], al
mov al, byte [0x100c2095]
xor al, 0xf7
mov byte [0x100c20a2], al
mov al, byte [0x100c2096]
xor al, 0x64
mov byte [0x100c20a3], al
mov al, byte [0x100c2097]
xor al, 0xf4
mov byte [0x100c20a4], al
mov al, byte [0x100c2098]
xor al, 0x89
mov byte [0x100c20a5], al
mov al, byte [0x100c20a6]
xor al, 0x16
mov byte [0x100c20b2], al
mov al, byte [0x100c20a7]
xor al, 0x82
mov byte [0x100c20b3], al
mov al, byte [0x100c20a8]
xor al, 0x98
mov byte [0x100c20b4], al
mov al, byte [0x100c20a9]
xor al, 0x28
mov byte [0x100c20b5], al
mov al, byte [0x100c20aa]
xor al, 0xb2
mov byte [0x100c20b6], al
mov al, byte [0x100c20ab]
xor al, 0xd3
mov byte [0x100c20b7], al
mov al, byte [0x100c20ac]
xor al, 0xc9
mov byte [0x100c20b8], al
mov al, byte [0x100c20ad]
xor al, 0x34
mov byte [0x100c20b9], al
mov al, byte [0x100c20ae]
xor al, 0x96
mov byte [0x100c20ba], al
mov al, byte [0x100c20af]
xor al, 0x4e
mov byte [0x100c20bb], al
mov al, byte [0x100c20b0]
xor al, 0x3e
mov byte [0x100c20bc], al
mov al, byte [0x100c20b1]
xor al, 0x4f
mov byte [0x100c20bd], al
mov al, byte [0x100c2077]
xor al, 0x28
mov byte [0x100c2080], al
mov al, byte [0x100c2078]
xor al, 0x9b
mov byte [0x100c2081], al
mov al, byte [0x100c2079]
xor al, 0x54
mov byte [0x100c2082], al
mov al, byte [0x100c207a]
xor al, 0xe5
mov byte [0x100c2084], al
mov al, byte [0x100c207b]
xor al, 0xc0
mov byte [0x100c2085], al
mov al, byte [0x100c207c]
xor al, 0x14
mov byte [0x100c2086], al
mov al, byte [0x100c207d]
xor al, 0x13
mov byte [0x100c2087], al
mov al, byte [0x100c207e]
xor al, 0xf1
mov byte [0x100c2088], al
mov al, byte [0x100c207f]
xor al, 0x53
mov byte [0x100c208a], al
mov al, byte [0x100c206d]
xor al, 0x67
mov byte [0x100c2072], al
mov al, byte [0x100c206e]
xor al, 0xd6
mov byte [0x100c2073], al
mov al, byte [0x100c206f]
xor al, 0x53
mov byte [0x100c2074], al
mov al, byte [0x100c2070]
xor al, 0x49
mov byte [0x100c2075], al
mov al, byte [0x100c2071]
xor al, 0xac
mov byte [0x100c2076], al
mov al, byte [0x100c20be]
xor al, 0x4f
mov byte [0x100c20c9], al
mov al, byte [0x100c20bf]
xor al, 0x3e
mov byte [0x100c20ca], al
mov al, byte [0x100c20c0]
xor al, 0x52
mov byte [0x100c20cc], al
mov al, byte [0x100c20c1]
xor al, 0x45
mov byte [0x100c20cd], al
mov al, byte [0x100c20c2]
xor al, 0x9f
mov byte [0x100c20ce], al
mov al, byte [0x100c20c3]
xor al, 0xfc
mov byte [0x100c20d0], al
mov al, byte [0x100c20c4]
xor al, 0x38
mov byte [0x100c20d3], al
mov al, byte [0x100c20c5]
xor al, 0x60
mov byte [0x100c20d4], al
mov al, byte [0x100c20c6]
xor al, 0xe5
mov byte [0x100c20d5], al
mov al, byte [0x100c20c7]
xor al, 0x88
mov byte [0x100c20d6], al
mov al, byte [0x100c20c8]
xor al, 0xf0
mov byte [0x100c20d7], al
jmp 0x1004a5c8
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
sub esp, 8
mov eax, esp
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.1008ca20
mov ecx, dword [esi + 0x1c]
add esp, 8
mov eax, dword [esi + 0x4c]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1008ca30
add esp, 8
jmp 0x1004acf4
mov edi, dword [esi + 0x30]
sub esp, 4
mov eax, esp
mov dword [eax], 0xf
call fcn.1001d050
mov eax, dword [esi + 0x28]
add esp, 4
movsd xmm0, qword [0x100c209e]
movsd qword [eax + 5], xmm0
movsd xmm0, qword [0x100c2099]
movsd qword [eax], xmm0
call fcn.1004a3c0
mov ecx, dword [esi + 0x28]
mov ebx, eax
mov eax, dword [esi + 0x2c]
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.10040280
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0x38]
add esp, 0xc
mov ebx, eax
mov eax, dword [esi + 0x1c]
mov dword [edi], ebx
mov edi, dword [0x100c20b2]
mov dword [edx], edi
mov edi, dword [0x100c20b6]
mov dword [edx + 4], edi
mov edi, dword [0x100c20ba]
mov dword [edx + 8], edi
mov edx, dword [0x100c20c9]
mov dword [ecx], edx
mov edx, dword [0x100c20cd]
mov dword [ecx + 4], edx
mov edx, dword [0x100c20d1]
mov dword [ecx + 8], edx
mov dx, word [0x100c20d5]
mov word [ecx + 0xc], dx
mov dl, byte [0x100c20d7]
mov byte [ecx + 0xe], dl
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.100417c0
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x48]
mov dword [eax], ecx
jmp 0x1004b070