Function at 0x41f162
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21ec
call fcn.00409a20
mov dword [esp + 0x11ec], 0x701f7217
mov dword [esp + 0x11f0], 0x8cd48ed4
mov dword [esp + 0x11f4], 0x88e48adc
mov dword [esp + 0x11f8], 0x84eb86eb
mov dword [esp + 0x11fc], 0x80e582e4
mov dword [esp + 0x1200], 0x9cf09ef4
mov dword [esp + 0x1204], 0x98f79ac0
mov word [esp + 0x1208], 0x9697
mov dword [esp + 0x120a], 0
mov byte [esp + 0x120e], 0
mov dword [esp + 0xa7c], 0
mov eax, dword [esp + 0xa7c]
cmp eax, 0x22
ja 0x41dd75
nop
mov eax, dword [esp + 0xa7c]
mov ecx, dword [esp + 0xa7c]
movzx ecx, byte [esp + ecx + 0x11ec]
lea edx, [eax + ecx]
add eax, 0xfc
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x7f13c4fc
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x7c]
add al, 0x71
mov ecx, dword [esp + 0xa7c]
mov byte [esp + ecx + 0x11ec], al
inc dword [esp + 0xa7c]
mov eax, dword [esp + 0xa7c]
cmp eax, 0x23
jb 0x41dd20
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x11ec]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.0043fb10
add esp, 0x14
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x446524]
lea eax, [esp + 0x64]
lea ecx, [esp + 0x38]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x5c]
call fcn.0043ff00
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44652c]
xor ebx, ebx
jmp 0x41f5bb
xor ecx, ecx
xor eax, eax
mov dword [esp + 8], 0
cmp ecx, dword [esp + 0x38]
setb al
xor esi, esi
jmp dword [eax*4 + 0x446534]
mov edx, dword [esp + 4]
mov word [edx], 0
mov ebx, dword [esp + 8]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44653c]
movzx ecx, word [esp + 0x11ec]
xor edi, edi
test cx, cx
je 0x41f3c8
lea eax, [esp + 0x11ec]
jmp 0x41f3a2
inc esi
xor eax, eax
cmp esi, dword [esp + 0x38]
setb al
jmp dword [eax*4 + 0x446534]
mov edi, dword [esp + 0x64]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41de53
mov eax, 0xffffffff
push eax
call fcn.00409a50
add esp, 4
mov ebx, eax
mov dword [esp + 0x60], edi
lea eax, [esp + 0x60]
push eax
push ebx
push esi
push dword [esp + 0x48]
call fcn.0043fc50
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446544]
jmp dword [0x4465a4]
lea eax, [esp + 0x4c]
push dword [esp + 0x3c]
push 0
push 0x20019
push eax
push ebx
call fcn.0043fb10
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44654c]
jmp dword [0x4465a4]
mov dword [esp + 0x7c], 0x46b0b86a
mov dword [esp + 0x80], 0x42bd44a8
mov dword [esp + 0x84], 0x4eb240b0
mov dword [esp + 0x88], 0x4aa14cbc
mov dword [esp + 0x8c], 0x56b348b5
mov dword [esp + 0x90], 0x52a4548c
mov dword [esp + 0x94], 0x5eb350a3
mov dword [esp + 0x98], 0x5aa25cac
mov dword [esp + 0x9c], 0x664758a4
mov dword [esp + 0xa0], 0x628864b6
mov dword [esp + 0xa4], 0x6e92609c
mov dword [esp + 0xa8], 0x6a826c82
mov dword [esp + 0xac], 0x7685689e
mov dword [esp + 0xb0], 0x7253749c
mov dword [esp + 0xb4], 0x7e8470ac
mov dword [esp + 0xb8], 0x7a867c93
mov dword [esp + 0xbc], 0x6fa78fe
mov dword [esp + 0xc0], 0x2e804f9
mov dword [esp + 0xc4], 0xeeb00f2
mov dword [esp + 0xc8], 0xaf50cdd
mov dword [esp + 0xcc], 0x16fd08f8
mov dword [esp + 0xd0], 0x12e714e2
mov dword [esp + 0xd4], 0x1ee210fa
mov dword [esp + 0xd8], 0x1adc1cf9
mov dword [esp + 0xdc], 0x261e1824
mov dword [esp + 0xe0], 0x22ee241e
mov dword [esp + 0xe4], 0x2ee520eb
mov dword [esp + 0xe8], 0x2a172c1d
mov dword [esp + 0xec], 0x360a2816
mov dword [esp + 0xf0], 0x320c340a
mov dword [esp + 0xf4], 0x3ed3300e
mov dword [esp + 0xf8], 0x3af53c00
mov dword [esp + 0xfc], 0xc6ff3801
mov dword [esp + 0x100], 0xc2f3c40a
mov dword [esp + 0x104], 0xcef0c0f1
mov dword [esp + 0x108], 0xcaf7ccfd
mov dword [esp + 0x10c], 0xd6e9c807
mov dword [esp + 0x110], 0xd2e9d41a
mov dword [esp + 0x114], 0xdee6d0eb
mov dword [esp + 0x118], 0xda3fdce7
mov word [esp + 0x11c], 0xd8d9
lea eax, [esp + 0x11c]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa7
ja 0x41e0fa
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x3ec1ff7e
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x39
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa8
jb 0x41e0b0
lea edi, [esp + 0xe7e]
lea eax, [esp + 0x7c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x11c]
mov eax, edx
mov ecx, 1
lea edi, [esp + 0xf1e]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0x88fe8ad8
mov dword [esp + 0x80], 0x840b86fa
mov dword [esp + 0x84], 0x800c82f2
mov dword [esp + 0x88], 0x9ce79eee
mov dword [esp + 0x8c], 0x98fd9a17
mov dword [esp + 0x90], 0x94e296fe
mov dword [esp + 0x94], 0x90ed92e1
mov dword [esp + 0x98], 0xac24aede
mov dword [esp + 0x9c], 0xa889aa26
mov dword [esp + 0xa0], 0xa4c9a6f5
mov dword [esp + 0xa4], 0xa0fca2c7
mov dword [esp + 0xa8], 0xbc33be34
mov dword [esp + 0xac], 0xb8c2ba35
mov dword [esp + 0xb0], 0xb439b6c5
mov dword [esp + 0xb4], 0xb0cab2d9
mov dword [esp + 0xb8], 0xcc40ce41
mov dword [esp + 0xbc], 0xc8b8cabc
mov dword [esp + 0xc0], 0xc4a1c6b5
mov dword [esp + 0xc4], 0xc0b6c2aa
mov dword [esp + 0xc8], 0xdca1dead
mov dword [esp + 0xcc], 0xd850daaa
mov dword [esp + 0xd0], 0xd4f5d65a
mov dword [esp + 0xd4], 0xd0aad280
mov dword [esp + 0xd8], 0xec60ee62
mov dword [esp + 0xdc], 0xe890ea94
mov dword [esp + 0xe0], 0xe497e690
mov dword [esp + 0xe4], 0xe0c1e29a
mov dword [esp + 0xe8], 0xfc76fe92
mov dword [esp + 0xec], 0xf874fa85
mov dword [esp + 0xf0], 0xf478f670
mov dword [esp + 0xf4], 0xf08af27f
mov dword [esp + 0xf8], 0xc690e7c
mov dword [esp + 0xfc], 0x8870a5b
mov dword [esp + 0x100], 0x47f0676
mov dword [esp + 0x104], 0x750274
mov dword [esp + 0x108], 0x1c901e64
mov dword [esp + 0x10c], 0x18481a7f
mov dword [esp + 0x110], 0x1499169c
mov dword [esp + 0x114], 0x10601267
mov dword [esp + 0x118], 0x2c582e5e
mov dword [esp + 0x11c], 0x286e2a4f
mov dword [esp + 0x120], 0x246c266a
mov dword [esp + 0x124], 0x207c2268
mov dword [esp + 0x128], 0x3c673e65
mov dword [esp + 0x12c], 0x38753a0b
mov dword [esp + 0x130], 0x34783678
mov dword [esp + 0x134], 0x307e327c
mov dword [esp + 0x138], 0x4c314e00
mov dword [esp + 0x13c], 0x48174a06
mov dword [esp + 0x140], 0x440d460f
mov dword [esp + 0x144], 0x4071421c
mov dword [esp + 0x148], 0x5c125e6f
mov dword [esp + 0x14c], 0x58155a6b
mov dword [esp + 0x150], 0x541b5609
mov dword [esp + 0x154], 0x501b520c
mov dword [esp + 0x158], 0x6c246e25
mov dword [esp + 0x15c], 0x680d6a21
mov word [esp + 0x160], 0x6667
mov byte [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xea
ja 0x41e41a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x7f83d504
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0x71
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xeb
jb 0x41e3d0
lea edi, [esp + 0xf20]
lea eax, [esp + 0x7c]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x160]
mov ecx, 1
lea edi, [esp + 0x1004]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0xd244dc62
mov dword [esp + 0x80], 0xd647d074
mov dword [esp + 0x84], 0xca42d444
mov dword [esp + 0x88], 0xce53c858
mov dword [esp + 0x8c], 0xc261cc5b
mov dword [esp + 0x90], 0xc65bc070
mov dword [esp + 0x94], 0x3a5cc45d
mov dword [esp + 0x98], 0x3e9c389c
mov dword [esp + 0x9c], 0x326c3c93
mov dword [esp + 0xa0], 0x36633064
mov dword [esp + 0xa4], 0x2a993467
mov dword [esp + 0xa8], 0x2ebc2898
mov dword [esp + 0xac], 0x22b12cbb
mov dword [esp + 0xb0], 0x26b220b0
mov dword [esp + 0xb4], 0x1a8924b8
mov dword [esp + 0xb8], 0x1e8f18ab
mov dword [esp + 0xbc], 0x12871c8c
mov dword [esp + 0xc0], 0x168d108a
mov dword [esp + 0xc4], 0xa8214b2
mov dword [esp + 0xc8], 0xeba08a7
mov dword [esp + 0xcc], 0x2990c9a
mov dword [esp + 0xd0], 0x692009f
mov dword [esp + 0xd4], 0x7a9a0494
mov dword [esp + 0xd8], 0x7e3078d7
mov dword [esp + 0xdc], 0x72367c28
mov dword [esp + 0xe0], 0x76367026
mov dword [esp + 0xe4], 0x6acf74cd
mov dword [esp + 0xe8], 0x6e3d683b
mov dword [esp + 0xec], 0x623a6c3e
mov dword [esp + 0xf0], 0x66306032
mov dword [esp + 0xf4], 0x5ac16436
mov dword [esp + 0xf8], 0x5e1f580c
mov dword [esp + 0xfc], 0x52155c17
mov dword [esp + 0x100], 0x56015012
mov dword [esp + 0x104], 0x4a045407
mov dword [esp + 0x108], 0x4e1d481b
mov dword [esp + 0x10c], 0x421b4c09
mov dword [esp + 0x110], 0x460b4002
mov dword [esp + 0x114], 0xba0e440d
mov dword [esp + 0x118], 0xbe15b8f1
mov word [esp + 0x11c], 0xbcbf
mov dword [esp + 0x11e], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa5
ja 0x41e687
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0xd7e0bf65
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
mov ecx, eax
not ecx
and ecx, 0xba
and eax, 0x45
sub eax, ecx
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa6
jb 0x41e630
lea edi, [esp + 0x114a]
lea eax, [esp + 0x7c]
mov ecx, 0x28
mov ebp, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x11c]
mov ecx, 1
lea edi, [esp + 0x11ea]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x7c], 0x9f3799c9
mov dword [esp + 0x80], 0xe32a9d3b
mov dword [esp + 0x84], 0xe755e153
mov dword [esp + 0x88], 0xeb4ee557
mov dword [esp + 0x8c], 0xefb4e95e
mov dword [esp + 0x90], 0xf346edbf
mov dword [esp + 0x94], 0xf75ff158
mov dword [esp + 0x98], 0xfb5ff553
mov dword [esp + 0x9c], 0xff8ff9a6
mov dword [esp + 0xa0], 0xc38efd8a
mov dword [esp + 0xa4], 0xc79cc1b2
mov dword [esp + 0xa8], 0xcb7fc597
mov dword [esp + 0xac], 0xcf64c97e
mov dword [esp + 0xb0], 0xd37dcd7f
mov dword [esp + 0xb4], 0xd78cd17f
mov dword [esp + 0xb8], 0xdb62d586
mov dword [esp + 0xbc], 0xdf72d96b
mov dword [esp + 0xc0], 0x2370dd71
mov dword [esp + 0xc4], 0x27952189
mov dword [esp + 0xc8], 0x2b75257a
mov dword [esp + 0xcc], 0x2f9c2991
mov dword [esp + 0xd0], 0x339d2d82
mov dword [esp + 0xd4], 0x379d3183
mov dword [esp + 0xd8], 0x3b4b356a
mov dword [esp + 0xdc], 0x3f41394f
mov dword [esp + 0xe0], 0x3793d45
mov dword [esp + 0xe4], 0x74a0148
mov dword [esp + 0xe8], 0xb700576
mov dword [esp + 0xec], 0xf7d097d
mov dword [esp + 0xf0], 0x137b0d79
mov dword [esp + 0xf4], 0x17b41165
mov dword [esp + 0xf8], 0x1b521563
mov dword [esp + 0xfc], 0x1f601962
mov dword [esp + 0x100], 0x636c1d59
mov dword [esp + 0x104], 0x67176112
mov dword [esp + 0x108], 0x6b106516
mov dword [esp + 0x10c], 0x6f1e692c
mov dword [esp + 0x110], 0x73166d29
mov dword [esp + 0x114], 0x77097108
mov dword [esp + 0x118], 0x7b28750c
mov word [esp + 0x11c], 0x797a
lea eax, [esp + 0x11c]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0xa4
ja 0x41e8ea
nop
nop
mov eax, dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
movzx ecx, byte [esp + ecx + 0x7c]
add eax, 0x1a47fcb9
xor eax, ecx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xdd
mov ecx, dword [esp + 0x87c]
mov byte [esp + ecx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0xa5
jb 0x41e8a0
lea eax, [esp + 0x10a8]
lea edx, [esp + 0x7c]
mov ecx, 0x28
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x11c]
mov ecx, 1
lea edi, [esp + 0x1148]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x7c], 0xf25cf442
mov dword [esp + 0x80], 0xfe6ff05c
mov dword [esp + 0x84], 0xfa62fc6c
mov dword [esp + 0x88], 0xe653f868
mov dword [esp + 0x8c], 0xe241e47b
mov dword [esp + 0x90], 0xee4be050
mov dword [esp + 0x94], 0xea44ec45
mov dword [esp + 0x98], 0xd644e844
mov dword [esp + 0x9c], 0xd284d473
mov dword [esp + 0xa0], 0xde83d08e
mov dword [esp + 0xa4], 0xda79dc8f
mov dword [esp + 0xa8], 0xc644d868
mov dword [esp + 0xac], 0xc251c45b
mov dword [esp + 0xb0], 0xce52c050
mov dword [esp + 0xb4], 0xca69cc58
mov dword [esp + 0xb8], 0x3657c87b
mov dword [esp + 0xbc], 0x329f34a4
mov dword [esp + 0xc0], 0x3ea5309a
mov dword [esp + 0xc4], 0x3aa23c92
mov dword [esp + 0xc8], 0x268a389f
mov dword [esp + 0xcc], 0x22b924ba
mov dword [esp + 0xd0], 0x2eb220b7
mov dword [esp + 0xd4], 0x2aba2cbc
mov dword [esp + 0xd8], 0x1670288f
mov dword [esp + 0xdc], 0x124e1448
mov dword [esp + 0xe0], 0x1e5e104e
mov dword [esp + 0xe4], 0x1a571c55
mov dword [esp + 0xe8], 0x645184b
mov dword [esp + 0xec], 0x25a0456
mov dword [esp + 0xf0], 0xe500052
mov dword [esp + 0xf4], 0xaa10c5e
mov dword [esp + 0xf8], 0x76470854
mov dword [esp + 0xfc], 0x722d742f
mov dword [esp + 0x100], 0x7e217032
mov dword [esp + 0x104], 0x7a2c7c2f
mov dword [esp + 0x108], 0x6625782b
mov dword [esp + 0x10c], 0x623b6429
mov dword [esp + 0x110], 0x6e3b6022
mov dword [esp + 0x114], 0x6a366c35
mov dword [esp + 0x118], 0x56cd6831
mov word [esp + 0x11c], 0x5457
mov dword [esp + 0x11e], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa5
ja 0x41eb4d
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0xb510a6c1
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xca
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0xa6
jb case.default.0x41ebb3
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
lea edx, [esp + 0x1006]
lea esi, [esp + 0x7c]
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x11c]
lea edi, [esp + 0x10a6]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe7e]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0xf20]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x446554]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x7c], 0x70605
mov byte [esp + 0x80], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 4
ja 0x41ec3a
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add ecx, 0xad100031
xor ecx, edx
mov dword [esp + 0xa7c], ecx
mov ecx, dword [esp + 0xa7c]
add cl, 0xcb
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 5
jb 0x41ebf0
mov ecx, dword [0x44a974]
test ecx, ecx
je 0x41f340
mov edx, dword [esp + 0x7c]
xor edi, edi
mov ebx, dword [0x44a978]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41f32a
inc edi
cmp ecx, edi
jne 0x41ec60
jmp 0x41f340
mov ecx, dword [esp + 0x50]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x446554]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + ecx + 0x68]
mov dword [esp + 0x7c], 0x2e1f2819
mov dword [esp + 0x80], 0x32032c1d
mov dword [esp + 0x84], 0x36073001
mov dword [esp + 0x88], 0x3ae33405
mov word [esp + 0x8c], 0x3839
lea ecx, [esp + 0x11c]
mov byte [ecx - 0x8c], 0
mov word [ecx - 0x8e], 0
mov dword [esp + 0x87c], 0
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x14
ja 0x41ed54
nop
mov ecx, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
lea esi, [ecx + edx]
add ecx, 0x6a
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x1942e66a
mov dword [esp + 0xa7c], esi
mov ecx, dword [esp + 0xa7c]
add cl, 0xbd
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], cl
inc dword [esp + 0x87c]
mov ecx, dword [esp + 0x87c]
cmp ecx, 0x15
jb 0x41ed00
movzx ecx, word [eax]
lea esi, [esp + 0x87c]
test cx, cx
je 0x41ed81
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41ed70
mov word [esi], 0
movzx eax, word [esp + 0x7c]
test ax, ax
je 0x41edb1
lea ecx, [esp + 0x7e]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41eda0
mov word [esi], 0
mov bp, 0x31
xor eax, eax
cmp bp, 0x35
setb al
mov dword [esp + 0x54], esi
jmp dword [eax*4 + 0x44655c]
mov eax, ebp
and eax, 1
xor ebp, 1
lea ebp, [ebp + eax*2]
xor eax, eax
cmp bp, 0x35
setb al
jmp dword [eax*4 + 0x44655c]
mov word [esi - 2], bp
lea eax, [esp + 0x48]
lea ecx, [esp + 0x87c]
push dword [esp + 0x4c]
push 0
push 0x20019
push eax
push ecx
call fcn.0043fb10
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446564]
mov dword [esp + 0x5c], 0x800
mov dword [esp + 0x58], ebp
mov dword [esp + 0x30], 0x400
xor esi, esi
mov dword [esp + 0xc], 0
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x30]
lea ebp, [esp + 0xa7c]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x5c]
push eax
push ebp
push ecx
push edx
lea eax, [esp + 0x8c]
push eax
mov dword [esp + 0x24], esi
push esi
push dword [esp + 0x60]
call fcn.004401c0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44656c]
test byte [esp + 0xc], 1
sete al
cmp dword [esp + 0x34], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x446574]
xor eax, eax
cmp dword [esp + 0x34], 3
sete al
jmp dword [eax*4 + 0x446584]
jmp case.0x41f323.12
mov dword [esp + 0x18], 0xaa0aa86e
mov dword [esp + 0x1c], 0xa632a408
mov dword [esp + 0x20], 0xa237a02a
mov dword [esp + 0x24], 0x9e9d9c2f
mov byte [esp + 0x28], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x41ef1e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0xe59292d3
xor eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0x84
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x41eef0
movzx ebx, word [esp + 0x18]
lea esi, [esp + 0x7c]
test bx, bx
je 0x41ef6c
lea eax, [esp + 0x7c]
lea edx, [esp + 0x18]
mov esi, eax
jmp 0x41ef48
movzx ebx, word [edx]
test bx, bx
je 0x41ef6c
movzx edi, word [eax]
test di, di
je 0x41ef6a
add eax, 2
add edx, 2
lea ecx, [esi + 2]
cmp di, bx
je 0x41ef62
mov esi, ecx
mov eax, ecx
je 0x41ef40
lea edx, [esp + 0x18]
jmp 0x41ef40
xor esi, esi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x44657c]
xor eax, eax
cmp dword [esp + 0x34], 3
sete al
jmp dword [eax*4 + 0x446584]
mov dword [esp + 0x18], 0x83238156
mov dword [esp + 0x1c], 0x8f318d3f
mov dword [esp + 0x20], 0x8b398937
mov dword [esp + 0x24], 0x97389538
mov word [esp + 0x28], 0x9196
lea eax, [esp + 0x2a]
mov byte [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x16
ja 0x41f00b
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + ecx]
add eax, 0xe3
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x2d6281e3
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x9b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x17
jb 0x41efd0
movzx ebp, word [esp + 0x18]
lea eax, [esp + 0x7c]
test bp, bp
je 0x41f144
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x18]
mov eax, ecx
jmp 0x41f03c
movzx ebp, word [edx]
test bp, bp
je 0x41f144
movzx ebx, word [ecx]
test bx, bx
je 0x41f142
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, bp
je 0x41f05a
mov eax, esi
mov ecx, esi
je 0x41f030
lea edx, [esp + 0x18]
jmp 0x41f030
mov eax, dword [esp + 0x30]
cmp eax, 2
jae 0x41f082
mov edx, dword [esp + 4]
jmp 0x41f12c
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x41f0c5
mov dword [esp + 0xc], ecx
xor ebx, ebx
lea ebp, [esp + 0xa7c]
mov edi, dword [esp + 4]
nop
movzx esi, word [ebp]
xor ecx, ecx
test si, si
setne cl
lea ebp, [ebp + ecx*2]
mov word [edi], si
add edi, 2
inc ebx
cmp edx, ebx
jne 0x41f0a0
mov dword [esp + 4], edi
sub eax, ebx
mov ecx, dword [esp + 0xc]
cmp ecx, 3
mov edx, dword [esp + 4]
jb 0x41f12c
nop
nop
mov esi, edx
movzx ecx, word [ebp]
xor edx, edx
test cx, cx
setne dl
lea edi, [edx*2]
add edi, ebp
mov word [esi], cx
movzx ecx, word [ebp + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], cx
movzx edx, word [ebx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
lea edx, [esi + 8]
lea ebp, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x41f0d0
mov dword [edx], 0x20003a
add edx, 4
mov al, 1
mov dword [esp + 0xc], eax
mov eax, dword [case.0x41f323.16]
jmp 0x41f15b
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44658c]
mov eax, dword [case.0x41f323.16]
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
nop
jmp eax
mov dword [esp + 4], edx
inc ebp
mov esi, ebp
jmp 0x41ee40
mov eax, dword [esp + 0x30]
cmp eax, 2
mov edx, dword [esp + 4]
mov ebp, dword [esp + 0x10]
jb 0x41f224
shr eax, 1
lea esi, [eax - 1]
mov ebx, eax
lea ecx, [esp + 0xa7c]
and ebx, 3
je 0x41f1c7
mov dword [esp + 8], esi
xor ebp, ebp
nop
nop
nop
nop
movzx esi, word [ecx]
mov edi, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, edi
mov word [edi], si
add edx, 2
inc ebp
cmp ebx, ebp
jne 0x41f1a0
sub eax, ebp
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 8]
cmp esi, 3
jb 0x41f224
nop
nop
nop
nop
mov esi, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [esi], dx
movzx ecx, word [ecx + ebx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 2], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 4], cx
movzx edx, word [ebx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
lea edx, [esi + 8]
lea ecx, [edi + ecx*2]
add eax, 0xfffffffc
jne 0x41f1d0
mov word [edx], 0xa
add edx, 2
mov al, 1
mov dword [esp + 8], eax
mov eax, dword [case.0x41f323.16]
jmp case.0x41f323.14
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], 0x70605
mov byte [esp + 0x1c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
mov esi, dword [esp + 0x54]
ja 0x41f2a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x18]
add ecx, 0xad100031
xor ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x14]
add cl, 0xcb
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x41f270
mov ecx, dword [0x44a974]
test ecx, ecx
mov ebp, dword [esp + 0x58]
je 0x41f2e0
mov edx, dword [esp + 0x18]
xor edi, edi
mov ebx, dword [0x44a978]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x625b6034
je 0x41f2d0
inc edi
cmp ecx, edi
jne 0x41f2c0
jmp 0x41f2e0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x41f2f5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebp
and eax, 1
xor ebp, 1
lea ebp, [ebp + eax*2]
xor eax, eax
cmp bp, 0x35
setb al
jmp dword [eax*4 + 0x44655c]
push eax
push 1
push dword [0x44a97c]
push ecx
call fcn.0043d1f0
add esp, 0x10
mov eax, ebp
and eax, 1
xor ebp, 1
lea ebp, [ebp + eax*2]
xor eax, eax
cmp bp, 0x35
setb al
jmp dword [eax*4 + 0x44655c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41f368
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
jmp dword [0x4465a4]
push ebx
call fcn.00409a60
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [esp + 0x38]
setb al
jmp dword [eax*4 + 0x446534]
push eax
push 1
push dword [0x44a97c]
push ecx
call fcn.0043d1f0
add esp, 0x10
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
jmp dword [0x4465a4]
add edi, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp + 4]
je 0x41f3c8
cmp eax, edx
jae 0x41f3c8
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41f390
mov edx, ecx
jmp 0x41f390
lea eax, [edi + 1]
mov dword [esp + 0xc], eax
push eax
mov esi, edx
call fcn.00409a50
add esp, 4
mov ebp, eax
lea eax, [esp + 0x11ec]
cmp eax, esi
setb al
mov esi, ebp
mov ecx, edi
mov dword [esp + 8], edi
test edi, edi
jle 0x41f4c7
mov ebp, esi
test al, al
je 0x41f4c7
mov ebp, esi
mov eax, dword [esp + 8]
add eax, esi
mov dword [esp + 0x10], eax
add dword [esp + 0xc], esi
lea edx, [esp + 0x11ee]
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41f4c7
cmp cx, 0x7f
ja 0x41f440
mov byte [ebp], cl
mov edi, 1
jmp 0x41f4b0
mov eax, ebp
not eax
add eax, dword [esp + 0xc]
movzx ebx, cx
cmp eax, 2
jb 0x41f480
cmp ebx, 0x7ff
ja 0x41f480
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebp], al
mov eax, ecx
not eax
or eax, 0x3f
add eax, ecx
add al, 0x81
mov byte [ebp + 1], al
mov edi, 2
jmp 0x41f4b0
xor edi, edi
cmp eax, 3
jb 0x41f4b0
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [ebp], al
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [ebp + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [ebp + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
add ebp, edi
cmp ebp, dword [esp + 0x10]
jae 0x41f4c7
lea eax, [edx + 2]
cmp edx, dword [esp + 4]
mov edx, eax
jb 0x41f420
mov ecx, dword [esp + 0x2200]
mov byte [ebp], 0
mov dword [esp + 0x7c], 0x1a676036
mov dword [esp + 0x80], 0x6e1c111a
mov dword [esp + 0x84], 0x6b6d6916
mov dword [esp + 0x88], 0x76780d2c
mov dword [esp + 0x8c], 0xb76710d
mov dword [esp + 0x90], 0x7b7d1434
mov dword [esp + 0x94], 0x5030703
mov dword [esp + 0x98], 0xa073e78
mov dword [esp + 0x9c], 0x9005
mov dword [esp + 0x87c], 0
mov eax, dword [esp + 0x87c]
cmp eax, 0x23
ja 0x41f598
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x87c]
mov edx, dword [esp + 0x87c]
movzx edx, byte [esp + edx + 0x7c]
add eax, 0x99604da2
xor eax, edx
mov dword [esp + 0xa7c], eax
mov eax, dword [esp + 0xa7c]
add al, 0xad
mov edx, dword [esp + 0x87c]
mov byte [esp + edx + 0x7c], al
inc dword [esp + 0x87c]
mov eax, dword [esp + 0x87c]
cmp eax, 0x24
jb 0x41f550
lea eax, [esp + 0x7c]
push dword [esp + 8]
push esi
push eax
call fcn.0040a3e0
mov ebx, eax
jmp dword [0x4465bc]
push esi
call fcn.00409a60
add esp, 4
and bl, 1
mov eax, dword [case.0x41dd9c.1]
jmp eax
mov eax, ebx
add esp, 0x21ec
pop esi
pop edi
pop ebx
pop ebp
ret
int3
fld qword [ecx]
ret 0x41f5
jmp 0x446598
in al, dx
inc ecx
add ah, ch
in eax, dx
inc ecx
add al, dl
in eax, dx
inc ecx
add byte [esi + ebp*8], bl
inc ecx
add byte [eax - 0xe], al
inc ecx
add byte [esi + ebp*8 + 0x41], bh
add byte [eax - 0x4fffbe12], bl
out dx, al
inc ecx
add byte [edx - 0x11], bh
inc ecx
add byte [eax - 0x10], dh
inc ecx
add byte [ecx - 0x74ffbe12], ch
out dx, eax
inc ecx
add byte [edx - 0xf], dl
inc ecx
add byte [esi - 0xf], ch
inc ecx
add byte [eax - 0xf], ah
inc ecx
add byte [eax - 0xf], ah
pushal
int1
inc ecx
add byte [edx - 0xf], ah
inc ecx
add byte [eax - 0xf], ah
inc ecx
add byte [esi - 0xd], cl
inc ecx
add byte [eax], dh
fiadd word [ecx]
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
iretd