Function at 0x41c822
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2208
call fcn.00409000
mov dword [esp + 0x1200], 0x4ba255ba
mov dword [esp + 0x1204], 0x4fb149b1
mov dword [esp + 0x1208], 0x43b94db1
mov dword [esp + 0x120c], 0x47b641b6
mov dword [esp + 0x1210], 0x7ba845a9
mov dword [esp + 0x1214], 0x7f8d7991
mov dword [esp + 0x1218], 0x738a7d85
mov dword [esp + 0x121c], 0x7172
mov byte [esp + 0x1220], 0
mov dword [esp + 0xa90], 0
mov eax, dword [esp + 0xa90]
cmp eax, 0x20
ja 0x41b879
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa90]
mov ecx, dword [esp + 0xa90]
movzx ecx, byte [esp + ecx + 0x1200]
mov edx, 0x72
sub edx, eax
add eax, 0xd2d73a8d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x90]
add al, 0x25
mov ecx, dword [esp + 0xa90]
mov byte [esp + ecx + 0x1200], al
inc dword [esp + 0xa90]
mov eax, dword [esp + 0xa90]
cmp eax, 0x21
jb 0x41b820
lea eax, [esp + 0x18]
lea esi, [esp + 0x1200]
push 0
push 0
push 0x20019
push eax
push esi
call fcn.004363e0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43d62c]
jmp dword [0x43d634]
inc edi
xor eax, eax
cmp edi, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x43d64c]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x6c]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x41b8d7
mov eax, 0xffffffff
push eax
call fcn.00409030
add esp, 4
mov ebx, eax
mov dword [esp + 0x78], esi
lea eax, [esp + 0x78]
push eax
push ebx
push edi
push dword [esp + 0x24]
call fcn.00436510
add esp, 0x10
not eax
shr eax, 0x1f
mov esi, dword [esp + 4]
jmp dword [eax*4 + 0x43d65c]
lea eax, [esp + 0x68]
push dword [esp + 0x18]
push 0
push 0x20019
push eax
mov dword [esp + 0x2c], ebx
push ebx
call fcn.004363e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d664]
mov ebx, dword [esp + 0x1c]
jmp dword [0x43d6dc]
mov dword [esp + 0x50], edi
mov dword [esp + 0x90], 0x8beb85f5
mov dword [esp + 0x94], 0x8f1e89ef
mov dword [esp + 0x98], 0xb3198d1f
mov dword [esp + 0x9c], 0xb7dab123
mov dword [esp + 0xa0], 0xbbc8b522
mov dword [esp + 0xa4], 0xbfd7b9c3
mov dword [esp + 0xa8], 0xa3d8bd2c
mov dword [esp + 0xac], 0xa739a133
mov dword [esp + 0xb0], 0xab84a533
mov dword [esp + 0xb4], 0xafc3a9d9
mov dword [esp + 0xb8], 0xd339ad3b
mov dword [esp + 0xbc], 0xd7b9d1b5
mov dword [esp + 0xc0], 0xdb46d5b9
mov dword [esp + 0xc4], 0xdff8d9b3
mov dword [esp + 0xc8], 0xc347ddab
mov dword [esp + 0xcc], 0xc755c1a4
mov dword [esp + 0xd0], 0xcb51c559
mov dword [esp + 0xd4], 0xcfa3c95e
mov dword [esp + 0xd8], 0xf3b0cd5d
mov dword [esp + 0xdc], 0xf766f182
mov dword [esp + 0xe0], 0xfb9ef567
mov dword [esp + 0xe4], 0xff94f995
mov dword [esp + 0xe8], 0xe369fd95
mov dword [esp + 0xec], 0xe7bfe19e
mov dword [esp + 0xf0], 0xebbde5b3
mov dword [esp + 0xf4], 0xefade9b1
mov dword [esp + 0xf8], 0x13a6eda4
mov dword [esp + 0xfc], 0x17441142
mov dword [esp + 0x100], 0x1b411541
mov dword [esp + 0x104], 0x1f4f194d
mov dword [esp + 0x108], 0x3781d49
mov dword [esp + 0x10c], 0x7460157
mov dword [esp + 0x110], 0xb5c055e
mov dword [esp + 0x114], 0xf58094d
mov dword [esp + 0x118], 0x335b0d5e
mov dword [esp + 0x11c], 0x37643162
mov dword [esp + 0x120], 0x3b623570
mov dword [esp + 0x124], 0x3f62397d
mov dword [esp + 0x128], 0x23653d64
mov dword [esp + 0x12c], 0x275c2178
mov word [esp + 0x130], 0x2526
lea eax, [esp + 0x130]
mov word [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xab
ja 0x41bb9b
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, 0xea
sub edx, eax
add eax, 0x8dc19815
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
add al, 0x6d
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xac
jb 0x41bb40
lea edi, [esp + 0xe92]
lea eax, [esp + 0x90]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x130]
lea edi, [esp + 0xf32]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xabc3add9
mov dword [esp + 0x94], 0xd748a9c7
mov dword [esp + 0x98], 0xd34dd547
mov dword [esp + 0x9c], 0xdfb4d143
mov dword [esp + 0xa0], 0xdbbedd40
mov dword [esp + 0xa4], 0xc7afd9a3
mov dword [esp + 0xa8], 0xc3aec556
mov dword [esp + 0xac], 0xcf55c153
mov dword [esp + 0xb0], 0xcbeacd53
mov dword [esp + 0xb4], 0xf78ac9ba
mov dword [esp + 0xb8], 0xf3bdf590
mov dword [esp + 0xbc], 0xff60f16d
mov dword [esp + 0xc0], 0xfb97fd62
mov dword [esp + 0xc4], 0xe77af96a
mov dword [esp + 0xc8], 0xe38fe59e
mov dword [esp + 0xcc], 0xef71e17e
mov dword [esp + 0xd0], 0xeb79ed85
mov dword [esp + 0xd4], 0x1772e97a
mov dword [esp + 0xd8], 0x137b156f
mov dword [esp + 0xdc], 0x1f721182
mov dword [esp + 0xe0], 0x1b811d8f
mov dword [esp + 0xe4], 0x7261987
mov dword [esp + 0xe8], 0x36f0571
mov dword [esp + 0xec], 0xf91019f
mov dword [esp + 0xf0], 0xb610d6d
mov dword [esp + 0xf4], 0x37a40961
mov dword [esp + 0xf8], 0x3312355f
mov dword [esp + 0xfc], 0x3fa3314f
mov dword [esp + 0x100], 0x3ba53d52
mov dword [esp + 0x104], 0x27b939a1
mov dword [esp + 0x108], 0x234f25b8
mov dword [esp + 0x10c], 0x2f4a21b5
mov dword [esp + 0x110], 0x2bb42d5c
mov dword [esp + 0x114], 0x573c29bb
mov dword [esp + 0x118], 0x53c6553d
mov dword [esp + 0x11c], 0x5fc1513d
mov dword [esp + 0x120], 0x5b295d38
mov dword [esp + 0x124], 0x47da59c5
mov dword [esp + 0x128], 0x43d145d0
mov dword [esp + 0x12c], 0x4fd941d3
mov dword [esp + 0x130], 0x4b134d28
mov dword [esp + 0x134], 0x772d4917
mov dword [esp + 0x138], 0x733d7529
mov dword [esp + 0x13c], 0x7f34713a
mov dword [esp + 0x140], 0x7b267d2c
mov dword [esp + 0x144], 0x67397929
mov dword [esp + 0x148], 0x63336535
mov dword [esp + 0x14c], 0x6f026131
mov dword [esp + 0x150], 0x6b246d33
mov dword [esp + 0x154], 0x97ce6930
mov dword [esp + 0x158], 0x93c295d5
mov dword [esp + 0x15c], 0x9fcf91c0
mov dword [esp + 0x160], 0x9bc69dcc
mov dword [esp + 0x164], 0x87d899d6
mov dword [esp + 0x168], 0x83d885c5
mov dword [esp + 0x16c], 0x8fd581da
mov dword [esp + 0x170], 0x8bee8dd6
mov word [esp + 0x174], 0x8988
mov dword [esp + 0x17a], 0
mov dword [esp + 0x176], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xed
ja 0x41bedb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, 0x45
sub edx, eax
add eax, 0x64bf2ba
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
add al, 0xea
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xee
jb 0x41be80
lea edi, [esp + 0xf34]
lea eax, [esp + 0x90]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x174]
lea edi, [esp + 0x1018]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0x63f36595
mov dword [esp + 0x94], 0x6ffe618f
mov dword [esp + 0x98], 0x6bf16dff
mov dword [esp + 0x9c], 0x178269fb
mov dword [esp + 0xa0], 0x13f0158a
mov dword [esp + 0xa4], 0x1ffa11e3
mov dword [esp + 0xa8], 0x1b8b1df4
mov dword [esp + 0xac], 0x7f319f7
mov dword [esp + 0xb0], 0x3db05e2
mov dword [esp + 0xb4], 0xfd201df
mov dword [esp + 0xb8], 0xbe80dde
mov dword [esp + 0xbc], 0x379309fb
mov dword [esp + 0xc0], 0x33a035aa
mov dword [esp + 0xc4], 0x3fa131a3
mov dword [esp + 0xc8], 0x3bd83dab
mov dword [esp + 0xcc], 0x27a639ca
mov dword [esp + 0xd0], 0x23ce25b7
mov dword [esp + 0xd4], 0x2fb421b5
mov dword [esp + 0xd8], 0x2bb12dc5
mov dword [esp + 0xdc], 0xd7d929ce
mov dword [esp + 0xe0], 0xd348d54d
mov dword [esp + 0xe4], 0xdf41d146
mov dword [esp + 0xe8], 0xdb49dd4f
mov dword [esp + 0xec], 0xc71fd93e
mov dword [esp + 0xf0], 0xc31dc51b
mov dword [esp + 0xf4], 0xcf0dc119
mov dword [esp + 0xf8], 0xcb06cd04
mov dword [esp + 0xfc], 0xf714c91a
mov dword [esp + 0x100], 0xf329f529
mov dword [esp + 0x104], 0xff2ff12d
mov dword [esp + 0x108], 0xfb10fd21
mov dword [esp + 0x10c], 0xe736f927
mov dword [esp + 0x110], 0xe33ce53e
mov dword [esp + 0x114], 0xef30e12d
mov dword [esp + 0x118], 0xeb33ed3e
mov dword [esp + 0x11c], 0x9734e93a
mov dword [esp + 0x120], 0x934a9558
mov dword [esp + 0x124], 0x9f4a915d
mov dword [esp + 0x128], 0x9b459d44
mov dword [esp + 0x12c], 0x877c9940
mov word [esp + 0x130], 0x8586
lea eax, [esp + 0x130]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xa7
ja 0x41c15b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, 0x4e
sub edx, eax
add eax, 0xcab1
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
add al, 0x29
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xa8
jb 0x41c100
lea edi, [esp + 0x115e]
lea eax, [esp + 0x90]
mov ebx, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x130]
lea edi, [esp + 0x11fe]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xbb13b9f9
mov dword [esp + 0x94], 0xbf0ebd1f
mov dword [esp + 0x98], 0x8335810f
mov dword [esp + 0x9c], 0x87228533
mov dword [esp + 0xa0], 0x8bd48932
mov dword [esp + 0xa4], 0x8f2a8ddb
mov dword [esp + 0xa8], 0x933b9128
mov dword [esp + 0xac], 0x97339537
mov dword [esp + 0xb0], 0x9beb99ca
mov dword [esp + 0xb4], 0x9ff29dee
mov dword [esp + 0xb8], 0xe3bce1ee
mov dword [esp + 0xbc], 0xe753e5b3
mov dword [esp + 0xc0], 0xeb44e952
mov dword [esp + 0xc4], 0xef5ded5b
mov dword [esp + 0xc8], 0xf3acf143
mov dword [esp + 0xcc], 0xf746f5a2
mov dword [esp + 0xd0], 0xfb5ef947
mov dword [esp + 0xd4], 0xff50fd51
mov dword [esp + 0xd8], 0xc375c159
mov dword [esp + 0xdc], 0xc795c59e
mov dword [esp + 0xe0], 0xcb7cc971
mov dword [esp + 0xe4], 0xcf7dcd66
mov dword [esp + 0xe8], 0xd37dd17f
mov dword [esp + 0xec], 0xd7afd58e
mov dword [esp + 0xf0], 0xdba1d9a3
mov dword [esp + 0xf4], 0xdf99ddad
mov dword [esp + 0xf8], 0x23662198
mov dword [esp + 0xfc], 0x27502552
mov dword [esp + 0x100], 0x2b5d2955
mov dword [esp + 0x104], 0x2f5f2d59
mov dword [esp + 0x108], 0x3394315d
mov dword [esp + 0x10c], 0x37763547
mov dword [esp + 0x110], 0x3b40394e
mov dword [esp + 0x114], 0x3f4c3d79
mov dword [esp + 0x118], 0x373014e
mov dword [esp + 0x11c], 0x7700572
mov dword [esp + 0x120], 0xb7a0944
mov dword [esp + 0x124], 0xf7a0d49
mov dword [esp + 0x128], 0x13691178
mov dword [esp + 0x12c], 0x17481564
mov word [esp + 0x130], 0x1916
lea eax, [esp + 0x130]
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xad
ja 0x41c3eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, 0xe8
sub edx, eax
add eax, 0xb1583417
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
add al, 0x5f
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xae
jb 0x41c390
lea edx, [esp + 0x10bc]
lea eax, [esp + 0x90]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x130]
lea edi, [esp + 0x115c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x90], 0xbbd3b9f9
mov dword [esp + 0x94], 0xbfcebddf
mov dword [esp + 0x98], 0xc3b5c1cf
mov dword [esp + 0x9c], 0xc7a2c5b3
mov dword [esp + 0xa0], 0xcb94c9b2
mov dword [esp + 0xa4], 0xcfaacd9b
mov dword [esp + 0xa8], 0xd3bbd1a8
mov dword [esp + 0xac], 0xd7b3d5b7
mov dword [esp + 0xb0], 0xdbebd98a
mov dword [esp + 0xb4], 0xdff2dded
mov dword [esp + 0xb8], 0xe3bce1ee
mov dword [esp + 0xbc], 0xe793e5b3
mov dword [esp + 0xc0], 0xeb84e992
mov dword [esp + 0xc4], 0xef9ded9b
mov dword [esp + 0xc8], 0xf3acf183
mov dword [esp + 0xcc], 0xf786f5a2
mov dword [esp + 0xd0], 0xfb9ef987
mov dword [esp + 0xd4], 0xff90fd91
mov dword [esp + 0xd8], 0x3750199
mov dword [esp + 0xdc], 0x755055e
mov dword [esp + 0xe0], 0xb7c0971
mov dword [esp + 0xe4], 0xf7d0d66
mov dword [esp + 0xe8], 0x137d117f
mov dword [esp + 0xec], 0x172f154e
mov dword [esp + 0xf0], 0x1b211923
mov dword [esp + 0xf4], 0x1f591d2d
mov dword [esp + 0xf8], 0x23662158
mov dword [esp + 0xfc], 0x27102512
mov dword [esp + 0x100], 0x2b1d2915
mov dword [esp + 0x104], 0x2f1f2d19
mov dword [esp + 0x108], 0x3354311d
mov dword [esp + 0x10c], 0x37763507
mov dword [esp + 0x110], 0x3b00390e
mov dword [esp + 0x114], 0x3f0c3d79
mov dword [esp + 0x118], 0x4373410e
mov dword [esp + 0x11c], 0x47704572
mov dword [esp + 0x120], 0x4b7a4904
mov dword [esp + 0x124], 0x4f7a4d09
mov dword [esp + 0x128], 0x53695178
mov dword [esp + 0x12c], 0x57085564
mov word [esp + 0x130], 0x5956
lea eax, [esp + 0x130]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0xaf
ja 0x41c67b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov esi, 0x48
sub esi, eax
add eax, 0xb09425b7
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0xa90], esi
mov eax, dword [esp + 0xa90]
dec al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0xb0
jb 0x41c620
lea eax, [esp + 0x101a]
lea esi, [esp + 0x90]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x130]
mov ecx, 1
lea edi, [esp + 0x10ba]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xe92]
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0xf34]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
mov ebx, dword [esp + 4]
jmp dword [eax*4 + 0x43d66c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x90], 0x62656467
lea ecx, [esp + 0x130]
mov dword [ecx - 0x99], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0xa
ja 0x41c7ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x890]
mov edx, dword [esp + 0x890]
movzx edx, byte [esp + edx + 0x90]
mov esi, 0xae
sub esi, ecx
add ecx, 0x55d2dc51
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0xc9
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0xb
jb 0x41c750
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x41cfb0
mov edx, dword [esp + 0x90]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x41cfa8
inc esi
cmp ecx, esi
jne 0x41c7d0
jmp 0x41cfb0
mov ecx, dword [esp + 0x70]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43d66c]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + ecx + 0x7c]
mov ecx, dword [case.0x41c6ec.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov dword [esp + 0x90], 0xa3f0a1f6
mov dword [esp + 0x94], 0xdf8cddf2
mov dword [esp + 0x98], 0xdb88d98e
mov dword [esp + 0x9c], 0xd7bcd58a
mov word [esp + 0xa0], 0xd1d6
lea ecx, [esp + 0x130]
mov byte [ecx - 0x82], 0
mov dword [ecx - 0x86], 0
mov dword [ecx - 0x8a], 0
mov dword [ecx - 0x8e], 0
mov dword [esp + 0x890], 0
mov ecx, dword [esp + 0x890]
cmp ecx, 0x1e
ja 0x41c8fb
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x890]
mov edx, dword [esp + 0x890]
movzx edx, byte [esp + edx + 0x90]
mov esi, 0x44
sub esi, ecx
add ecx, 0xc2b32dbb
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa90], esi
mov ecx, dword [esp + 0xa90]
add cl, 0xe3
mov edx, dword [esp + 0x890]
mov byte [esp + edx + 0x90], cl
inc dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
cmp ecx, 0x1f
jb 0x41c8a0
movzx ecx, word [eax]
lea edx, [esp + 0x890]
test cx, cx
je 0x41c931
add eax, 2
lea edx, [esp + 0x890]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x41c920
mov word [edx], 0
movzx eax, word [esp + 0x90]
test ax, ax
je 0x41c961
lea ecx, [esp + 0x92]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c950
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [esp + 0x20], edx
jmp dword [eax*4 + 0x43d684]
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
xor eax, eax
cmp si, 0x35
setb al
mov edx, dword [esp + 0x20]
mov ecx, esi
jmp dword [eax*4 + 0x43d684]
mov word [edx - 2], cx
lea eax, [esp + 0x64]
mov esi, ecx
lea ecx, [esp + 0x890]
push dword [esp + 0x68]
push 0
push 0x20019
push eax
push ecx
call fcn.004363e0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d68c]
mov dword [esp + 0x54], esi
mov dword [esp + 0x74], 0x800
mov dword [esp + 0x24], 0x400
xor esi, esi
mov dword [esp + 0x60], 0
jmp 0x41ca10
mov dword [ebx], 0x20003a
add ebx, 4
mov al, 1
mov dword [esp + 0x60], eax
inc esi
lea eax, [esp + 0x24]
lea edi, [esp + 0xa90]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x74]
push eax
mov dword [esp + 0x60], edi
push edi
push ecx
push edx
lea eax, [esp + 0xa0]
push eax
push esi
push dword [esp + 0x7c]
call fcn.00436b90
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d694]
test byte [esp + 0x60], 1
sete al
cmp dword [esp + 0x28], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43d69c]
xor eax, eax
cmp dword [esp + 0x28], 3
sete al
jmp dword [eax*4 + 0x43d6bc]
mov eax, dword [case.0x41cfa1.16]
nop
nop
jmp eax
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x30], 0x8be185c1
mov dword [esp + 0x34], 0x8f1989ef
mov dword [esp + 0x38], 0xb31e8d15
mov dword [esp + 0x3c], 0xb7b0b126
lea eax, [esp + 0x40]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x15
ja 0x41cb19
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x30]
mov edx, 0xea
sub edx, eax
add eax, 0xa8084015
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x6d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x16
jb 0x41cae0
movzx eax, word [esp + 0x30]
mov word [esp + 0x10], ax
mov eax, dword [case.0x41cfa1.10]
mov dword [esp + 0xc], eax
jmp case.0x41cfa1.8
jmp dword [esp + 0xc]
lea edi, [esp + 0x90]
cmp word [esp + 0x10], 0
je 0x41cb30
lea ebx, [esp + 0x90]
lea esi, [esp + 0x30]
movzx eax, word [esp + 0x10]
mov edi, ebx
jmp 0x41cb68
movzx eax, word [esi]
test ax, ax
je 0x41cb30
movzx ecx, word [ebx]
test cx, cx
je 0x41cb90
add ebx, 2
add esi, 2
lea edx, [edi + 2]
cmp cx, ax
je 0x41cb82
mov edi, edx
mov ebx, edx
je 0x41cb60
lea esi, [esp + 0x30]
jmp 0x41cb60
xor edi, edi
jmp dword [esp + 0xc]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43d6b4]
xor eax, eax
cmp dword [esp + 0x28], 3
sete al
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
jmp dword [eax*4 + 0x43d6bc]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp + 0x30], 0x23832196
mov dword [esp + 0x34], 0x1f911daf
mov dword [esp + 0x38], 0x1b891997
mov dword [esp + 0x3c], 0x17881588
mov word [esp + 0x40], 0x1116
lea eax, [esp + 0x40]
mov byte [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1a
ja 0x41cc59
nop
nop
nop
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 + 0x30]
mov edx, 0xa4
sub edx, eax
add eax, 0x20e8305b
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x14]
add al, 0x83
mov ecx, dword [esp]
mov byte [esp + ecx + 0x30], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1b
jb 0x41cc20
movzx esi, word [esp + 0x30]
lea eax, [esp + 0x90]
test si, si
je 0x41cda1
lea ecx, [esp + 0x90]
lea edx, [esp + 0x30]
mov eax, ecx
jmp 0x41cc8c
movzx esi, word [edx]
test si, si
je 0x41cda1
movzx edi, word [ecx]
test di, di
je 0x41cd9f
add ecx, 2
add edx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x41ccaa
mov eax, ebx
mov ecx, ebx
je 0x41cc80
lea edx, [esp + 0x30]
jmp 0x41cc80
mov eax, dword [esp + 0x24]
cmp eax, 2
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
jb 0x41ca00
shr eax, 1
lea ecx, [eax - 1]
mov edi, eax
and edi, 3
je 0x41cd31
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov ecx, ebx
xor esi, esi
lea edx, [esp + 0xa90]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
movzx edi, word [edx]
xor ebx, ebx
test di, di
setne bl
lea edx, [edx + ebx*2]
mov word [ecx], di
mov edi, eax
add ecx, 2
inc esi
cmp eax, esi
jne 0x41cd00
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0xc]
sub eax, esi
mov ebx, ecx
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
cmp ecx, 3
mov edx, dword [esp + 0x5c]
jb 0x41ca00
nop
nop
mov ecx, ebx
mov esi, edx
movzx edx, word [edx]
xor ebx, ebx
test dx, dx
setne bl
mov word [ecx], dx
lea edx, [esi + ebx*2]
movzx esi, word [esi + ebx*2]
xor ebx, ebx
test si, si
setne bl
mov word [ecx + 2], si
lea esi, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [ecx + 4], dx
lea edx, [esi + ebx*2]
movzx esi, word [esi + ebx*2]
xor ebx, ebx
test si, si
setne bl
lea edx, [edx + ebx*2]
mov word [ecx + 6], si
lea ebx, [ecx + 8]
add eax, 0xfffffffc
jne 0x41cd40
mov esi, dword [esp + 8]
jmp 0x41ca00
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
jmp dword [ecx*4 + 0x43d6c4]
mov eax, dword [esp + 0x24]
cmp eax, 2
jb 0x41ce88
shr eax, 1
lea edx, [eax - 1]
mov ebx, eax
lea ecx, [esp + 0xa90]
and ebx, 3
je 0x41ce1f
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
xor edi, edi
lea ecx, [esp + 0xa90]
mov esi, dword [esp + 4]
nop
nop
nop
nop
mov eax, ebx
movzx ebx, word [ecx]
xor edx, edx
test bx, bx
setne dl
lea ecx, [ecx + edx*2]
mov word [esi], bx
mov ebx, eax
add esi, 2
inc edi
cmp eax, edi
jne 0x41cdf0
mov dword [esp + 4], esi
mov eax, dword [esp + 0xc]
sub eax, edi
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
cmp edx, 3
mov ebx, dword [esp + 4]
jb 0x41ce88
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
mov word [edx], si
lea esi, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edx + 2], cx
lea ecx, [esi + ebx*2]
movzx esi, word [esi + ebx*2]
xor ebx, ebx
test si, si
setne bl
mov word [edx + 4], si
lea esi, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [esi + ecx*2]
mov word [edx + 6], di
lea ebx, [edx + 8]
add eax, 0xfffffffc
jne 0x41ce30
mov esi, dword [esp + 8]
mov word [ebx], 0xa
add ebx, 2
mov al, 1
mov dword [esp + 0x58], eax
inc esi
jmp 0x41ca10
mov eax, dword [esp + 0x64]
mov dword [esp + 0x30], 0x62656467
lea ecx, [esp + 0x40]
mov dword [ecx - 9], 0
mov dword [ecx - 0xc], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xa
ja 0x41cf0b
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
mov esi, 0xae
sub esi, ecx
add ecx, 0x55d2dc51
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x14]
add cl, 0xc9
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xb
jb 0x41ced0
mov ecx, dword [0x4412dc]
test ecx, ecx
je 0x41cf50
mov edx, dword [esp + 0x30]
xor esi, esi
mov edi, dword [0x4412e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xa3c1f363
je 0x41cf40
inc esi
cmp ecx, esi
jne 0x41cf30
jmp 0x41cf50
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x41cf6c
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x54]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x20]
jmp dword [eax*4 + 0x43d684]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov ecx, dword [esp + 0x54]
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
xor eax, eax
cmp cx, 0x35
setb al
mov edx, dword [esp + 0x20]
jmp dword [eax*4 + 0x43d684]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x41cfc6
mov esi, ebx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
jmp dword [0x43d6dc]
jmp dword [0x43d6e4]
push eax
push 1
push dword [0x4412e4]
push ecx
call fcn.004337a0
add esp, 0x10
mov esi, ebx
mov edi, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
jmp dword [0x43d6dc]
push ebx
call fcn.00409040
add esp, 4
push ebx
call fcn.00409040
add esp, 4
jmp dword [0x43d6f0]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], 0
cmp ecx, dword [esp + 0x2c]
setb al
xor edi, edi
jmp dword [eax*4 + 0x43d64c]
mov word [esi], 0
mov ebx, dword [esp + 0x58]
mov eax, ebx
and al, 1
movzx eax, al
mov dword [esp + 4], esi
jmp dword [eax*4 + 0x43d654]
movzx ecx, word [esp + 0x1200]
xor ebx, ebx
test cx, cx
je 0x41d098
lea eax, [esp + 0x1200]
jmp 0x41d070
add ebx, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov esi, edi
je 0x41d098
cmp eax, esi
jae 0x41d098
mov edi, esi
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41d060
mov edx, ecx
jmp 0x41d060
lea eax, [ebx + 1]
mov dword [esp + 0xc], eax
push eax
call fcn.00409030
add esp, 4
mov edi, eax
lea eax, [esp + 0x1200]
cmp eax, esi
setb al
mov dword [esp + 8], edi
test ebx, ebx
jle 0x41d199
mov edi, dword [esp + 8]
test al, al
je 0x41d199
mov edi, dword [esp + 8]
lea eax, [edi + ebx]
mov dword [esp + 0x10], eax
add dword [esp + 0xc], edi
lea edx, [esp + 0x1202]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41d199
cmp cx, 0x7f
ja 0x41d110
mov byte [edi], cl
mov esi, 1
jmp 0x41d180
mov eax, edi
not eax
add eax, dword [esp + 0xc]
cmp eax, 2
jb 0x41d150
movzx esi, cx
cmp esi, 0x7ff
ja 0x41d150
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [edi], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 1], cl
mov esi, 2
jmp 0x41d180
xor esi, esi
cmp eax, 3
jb 0x41d180
movzx esi, cx
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [edi], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [edi + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [edi + 2], cl
mov esi, 3
nop
nop
nop
add edi, esi
cmp edi, dword [esp + 0x10]
jae 0x41d199
lea eax, [edx + 2]
mov esi, dword [esp + 4]
cmp edx, esi
mov edx, eax
jb 0x41d0f0
mov byte [edi], 0
mov dword [esp + 0x90], 0xd7c8c9f5
mov dword [esp + 0x94], 0xcbdfd8d1
mov dword [esp + 0x98], 0xb6aeb0d5
mov dword [esp + 0x9c], 0xb3b394f3
mov dword [esp + 0xa0], 0xa6b9b8aa
mov dword [esp + 0xa4], 0xbebe9dfb
mov dword [esp + 0xa8], 0xb4bcbaa8
mov dword [esp + 0xac], 0xafa0fba7
mov word [esp + 0xb0], 0xd9a2
mov dword [esp + 0xb2], 0
mov word [esp + 0xb6], 0
mov dword [esp + 0x890], 0
mov eax, dword [esp + 0x890]
cmp eax, 0x27
ja 0x41d289
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x890]
mov ecx, dword [esp + 0x890]
movzx ecx, byte [esp + ecx + 0x90]
mov edx, 0x48
sub edx, eax
add eax, 0xcab7
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa90], edx
mov eax, dword [esp + 0xa90]
dec al
mov ecx, dword [esp + 0x890]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x890]
mov eax, dword [esp + 0x890]
cmp eax, 0x28
jb 0x41d230
lea eax, [esp + 0x90]
mov ecx, dword [ebp + 8]
push ebx
mov esi, dword [esp + 0xc]
push esi
push eax
call fcn.00409d20
mov ebx, eax
jmp dword [0x43d6f4]
push esi
call fcn.00409040
add esp, 4
and bl, 1
jmp 0x41d30d
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x2c]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x38]
call fcn.00436860
add esp, 0x24
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x2c]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x38]
call fcn.00436860
add esp, 0x24
jmp dword [0x43d63c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43d644]
xor ebx, ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret