Function at 0x41c862
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x2200
call fcn.00408a00
mov dword [esp + 0x11f8], 0xeb82d5ba
mov dword [esp + 0x11fc], 0xefb1e9b1
mov dword [esp + 0x1200], 0xe3b9edb1
mov dword [esp + 0x1204], 0xe7b6e1b6
mov dword [esp + 0x1208], 0xfb88e589
mov dword [esp + 0x120c], 0xffadf991
mov dword [esp + 0x1210], 0xf3aafda5
mov word [esp + 0x1214], 0xf1f2
mov dword [esp + 0x1216], 0
mov dword [esp + 0xa88], 0
mov eax, dword [esp + 0xa88]
cmp eax, 0x21
ja 0x41b209
nop
nop
nop
nop
mov eax, dword [esp + 0xa88]
mov ecx, dword [esp + 0xa88]
movzx ecx, byte [esp + ecx + 0x11f8]
mov edx, 0xa2
sub edx, eax
add eax, 0xf98155d
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x88]
add al, 0x75
mov ecx, dword [esp + 0xa88]
mov byte [esp + ecx + 0x11f8], al
inc dword [esp + 0xa88]
mov eax, dword [esp + 0xa88]
cmp eax, 0x22
jb 0x41b1b0
lea eax, [esp + 0x24]
lea ecx, [esp + 0x11f8]
push 0
push 0
push 0x20019
push eax
mov esi, ecx
push ecx
call fcn.004350c0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43b514]
lea eax, [esp + 0x70]
lea ecx, [esp + 0x5c]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x44]
call fcn.00435540
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43b51c]
mov eax, dword [case.0x41b22c.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ebx, ebx
jmp 0x41cc2f
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [esp + 0x5c]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x43b534]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x70]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41b2b6
mov eax, 0xffffffff
push eax
call fcn.00408a30
add esp, 4
mov esi, eax
mov dword [esp + 0x6c], edi
lea eax, [esp + 0x6c]
push eax
push esi
push ebx
push dword [esp + 0x30]
call fcn.004351f0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43b544]
lea eax, [esp + 0x58]
push dword [esp + 0x24]
push 0
push 0x20019
push eax
push esi
call fcn.004350c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43b54c]
jmp dword [0x43b5e4]
push esi
call fcn.00408a40
add esp, 4
mov eax, dword [case.0x41c96d.39]
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x5c]
setb al
jmp dword [eax*4 + 0x43b534]
mov dword [esp + 0x88], 0x39b0df1
mov dword [esp + 0x8c], 0x79001e7
mov dword [esp + 0x90], 0x3bad0597
mov dword [esp + 0x94], 0x3fa439ab
mov dword [esp + 0x98], 0x33de3da8
mov dword [esp + 0x9c], 0x37af31db
mov dword [esp + 0xa0], 0x2bce35a6
mov dword [esp + 0xa4], 0x2fa529bb
mov dword [esp + 0xa8], 0x23022dbb
mov dword [esp + 0xac], 0x27c321dd
mov dword [esp + 0xb0], 0xdb4d25b3
mov dword [esp + 0xb4], 0xdf45d939
mov dword [esp + 0xb8], 0xd340dd45
mov dword [esp + 0xbc], 0xd7f6d14b
mov dword [esp + 0xc0], 0xcb5fd523
mov dword [esp + 0xc4], 0xcf59c92e
mov dword [esp + 0xc8], 0xc355cd45
mov dword [esp + 0xcc], 0xc723c154
mov dword [esp + 0xd0], 0xfb16c559
mov dword [esp + 0xd4], 0xff68f908
mov dword [esp + 0xd8], 0xf368fd6f
mov dword [esp + 0xdc], 0xf76af169
mov dword [esp + 0xe0], 0xeb7df511
mov dword [esp + 0xe4], 0xef27e904
mov dword [esp + 0xe8], 0xe329ed3b
mov dword [esp + 0xec], 0xe721e135
mov dword [esp + 0xf0], 0x9b60e51e
mov dword [esp + 0xf4], 0x9f4a9948
mov dword [esp + 0xf8], 0x93459d4d
mov dword [esp + 0xfc], 0x97479141
mov dword [esp + 0x100], 0x8b6e9545
mov dword [esp + 0x104], 0x8f48895f
mov dword [esp + 0x108], 0x834a8d44
mov dword [esp + 0x10c], 0x87568141
mov dword [esp + 0x110], 0xbb6b8554
mov dword [esp + 0x114], 0xbf6ab968
mov dword [esp + 0x118], 0xb364bd7a
mov dword [esp + 0x11c], 0xb77cb171
mov dword [esp + 0x120], 0xab61b57e
mov dword [esp + 0x124], 0xaf42a962
mov word [esp + 0x128], 0xadac
lea eax, [esp + 0x128]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xa7
ja 0x41b59b
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
mov edx, 0xa9
sub edx, eax
add eax, 0x69c29456
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0xa6
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xa8
jb 0x41b540
lea edi, [esp + 0xf2c]
lea eax, [esp + 0x88]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edx, [esp + 0x128]
mov eax, edx
lea edi, [esp + 0xfcc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xb32bb10d
mov dword [esp + 0x8c], 0xb724b517
mov dword [esp + 0x90], 0xab39a937
mov dword [esp + 0x94], 0xaf08ad33
mov dword [esp + 0x98], 0xa30ea134
mov dword [esp + 0x9c], 0xa73fa513
mov dword [esp + 0xa0], 0x9b3e9906
mov dword [esp + 0xa4], 0x9f099d03
mov dword [esp + 0xa8], 0x93729103
mov dword [esp + 0xac], 0x9722952a
mov dword [esp + 0xb0], 0x8b498924
mov dword [esp + 0xb4], 0x8f1c8d19
mov dword [esp + 0xb8], 0x83278112
mov dword [esp + 0xbc], 0x8712851a
mov dword [esp + 0xc0], 0x7bdf79ce
mov dword [esp + 0xc4], 0x7fed7dee
mov dword [esp + 0xc8], 0x73ed71e9
mov dword [esp + 0xcc], 0x77da75ea
mov dword [esp + 0xd0], 0x6bf369df
mov dword [esp + 0xd4], 0x6fca6df2
mov dword [esp + 0xd8], 0x63f561ff
mov dword [esp + 0xdc], 0x678665f7
mov dword [esp + 0xe0], 0x5bff59e5
mov dword [esp + 0xe4], 0x5fcd5dcf
mov dword [esp + 0xe8], 0x53f551f1
mov dword [esp + 0xec], 0x57c855cd
mov dword [esp + 0xf0], 0x4baa49ef
mov dword [esp + 0xf4], 0x4fdb4dff
mov dword [esp + 0xf8], 0x43d141e2
mov dword [esp + 0xfc], 0x47d545cd
mov dword [esp + 0x100], 0x3b9f39ac
mov dword [esp + 0x104], 0x3f923da1
mov dword [esp + 0x108], 0x33a03180
mov dword [esp + 0x10c], 0x379035ab
mov dword [esp + 0x110], 0x2bb629b1
mov dword [esp + 0x114], 0x2fbd2d89
mov dword [esp + 0x118], 0x239d218c
mov dword [esp + 0x11c], 0x27b225b1
mov dword [esp + 0x120], 0x1b851984
mov dword [esp + 0x124], 0x1f851d83
mov dword [esp + 0x128], 0x13db11bc
mov dword [esp + 0x12c], 0x17c115c7
mov dword [esp + 0x130], 0xbc909dd
mov dword [esp + 0x134], 0xfc80dca
mov dword [esp + 0x138], 0x3d601d0
mov dword [esp + 0x13c], 0x7d505d5
mov dword [esp + 0x140], 0xfb2bf929
mov dword [esp + 0x144], 0xff5afd2d
mov dword [esp + 0x148], 0xf330f123
mov dword [esp + 0x14c], 0xf73ef53c
mov dword [esp + 0x150], 0xeb3ae929
mov dword [esp + 0x154], 0xef3fed3c
mov dword [esp + 0x158], 0xe336e130
mov dword [esp + 0x15c], 0xe734e526
mov dword [esp + 0x160], 0xdb0cd919
mov dword [esp + 0x164], 0xdf09dd0a
mov dword [esp + 0x168], 0xd37ed106
mov word [esp + 0x16c], 0xd5d4
mov byte [edx + 0x4a], 0
mov dword [edx + 0x46], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xea
ja 0x41b8cb
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
mov edx, 0xb7
sub edx, eax
add eax, 0xa9c72e48
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 8
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xeb
jb 0x41b870
lea edi, [esp + 0xfce]
lea eax, [esp + 0x88]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x16c]
lea edi, [esp + 0x10b2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xfb63f939
mov dword [esp + 0x8c], 0xff6efd1f
mov dword [esp + 0x90], 0xf365f16f
mov dword [esp + 0x94], 0xf712f563
mov dword [esp + 0x98], 0xeb04e962
mov dword [esp + 0x9c], 0xef0aed1b
mov dword [esp + 0xa0], 0xe37be108
mov dword [esp + 0xa4], 0xe703e507
mov dword [esp + 0xa8], 0x9b4b990a
mov dword [esp + 0xac], 0x9f429d4f
mov dword [esp + 0xb0], 0x937c914e
mov dword [esp + 0xb4], 0x97039563
mov dword [esp + 0xb8], 0x8b148902
mov dword [esp + 0xbc], 0x8f1d8d1b
mov dword [esp + 0xc0], 0x836c8113
mov dword [esp + 0xc4], 0x87168572
mov dword [esp + 0xc8], 0xbb5eb917
mov dword [esp + 0xcc], 0xbf20bd21
mov dword [esp + 0xd0], 0xb325b159
mov dword [esp + 0xd4], 0xb745b55e
mov dword [esp + 0xd8], 0xab3ca921
mov dword [esp + 0xdc], 0xaf3dad36
mov dword [esp + 0xe0], 0xa33da13f
mov dword [esp + 0xe4], 0xa76fa54e
mov dword [esp + 0xe8], 0x5b915973
mov dword [esp + 0xec], 0x5f995d8d
mov dword [esp + 0xf0], 0x53965198
mov dword [esp + 0xf4], 0x57805582
mov dword [esp + 0xf8], 0x4b9d4985
mov dword [esp + 0xfc], 0x4f9f4d99
mov dword [esp + 0x100], 0x43a4419d
mov dword [esp + 0x104], 0x47864597
mov dword [esp + 0x108], 0x7bb0798e
mov dword [esp + 0x10c], 0x7fac7db9
mov dword [esp + 0x110], 0x73a371ae
mov dword [esp + 0x114], 0x77a075a2
mov dword [esp + 0x118], 0x6bba69b4
mov dword [esp + 0x11c], 0x6fba6da9
mov dword [esp + 0x120], 0x63a961b8
mov dword [esp + 0x124], 0x678865b4
mov word [esp + 0x128], 0x1966
lea eax, [esp + 0x128]
mov word [eax + 0xe], 0
mov dword [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xaf
ja 0x41bb5b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
mov edx, 0xe0
sub edx, eax
add eax, 0xdde36c1f
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0x27
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xb0
jb 0x41bb00
lea edi, [esp + 0xe8a]
lea eax, [esp + 0x88]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0xf2a]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0xd37bd161
mov dword [esp + 0x8c], 0xdf4edd7f
mov dword [esp + 0x90], 0xdb45d94f
mov dword [esp + 0x94], 0xc76ac54b
mov dword [esp + 0x98], 0xc364c15a
mov dword [esp + 0x9c], 0xcf62cd73
mov dword [esp + 0xa0], 0xcb63c960
mov dword [esp + 0xa4], 0x379b3567
mov dword [esp + 0xa8], 0x33633192
mov dword [esp + 0xac], 0x3f6a3d6e
mov dword [esp + 0xb0], 0x3b9c396e
mov dword [esp + 0xb4], 0x27bb258b
mov dword [esp + 0xb8], 0x23b421ba
mov dword [esp + 0xbc], 0x2fbd2db3
mov dword [esp + 0xc0], 0x2b8c29bb
mov dword [esp + 0xc4], 0x1786159a
mov dword [esp + 0xc8], 0x13be1187
mov dword [esp + 0xcc], 0x1f881db9
mov dword [esp + 0xd0], 0x1b8519b1
mov dword [esp + 0xd4], 0x7b505be
mov dword [esp + 0xd8], 0x39c0199
mov dword [esp + 0xdc], 0xf9d0d96
mov dword [esp + 0xe0], 0xb9d099f
mov dword [esp + 0xe4], 0x772f75ae
mov dword [esp + 0xe8], 0x7329712b
mov dword [esp + 0xec], 0x7f317d2d
mov dword [esp + 0xf0], 0x7b367930
mov dword [esp + 0xf4], 0x6738652a
mov dword [esp + 0xf8], 0x633d6135
mov dword [esp + 0xfc], 0x6f3f6d31
mov dword [esp + 0x100], 0x6bc4693d
mov dword [esp + 0x104], 0x57165537
mov dword [esp + 0x108], 0x5308510e
mov dword [esp + 0x10c], 0x5f0c5d11
mov dword [esp + 0x110], 0x5b0b590e
mov dword [esp + 0x114], 0x4718450a
mov dword [esp + 0x118], 0x43124104
mov dword [esp + 0x11c], 0x4f124d01
mov dword [esp + 0x120], 0x4b114910
mov dword [esp + 0x124], 0xb710b514
mov word [esp + 0x128], 0xb1b6
lea eax, [esp + 0x128]
mov byte [eax + 0xa], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xaa
ja 0x41bddb
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
mov edx, 0x1c
sub edx, eax
add eax, 0xb7b99de3
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0xa88], edx
mov eax, dword [esp + 0xa88]
add al, 0xcb
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xab
jb 0x41bd80
mov dword [esp + 0x60], esi
lea edx, [esp + 0x1156]
lea eax, [esp + 0x88]
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x11f6]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x88], 0x33ab314d
mov dword [esp + 0x8c], 0x37a43557
mov dword [esp + 0x90], 0x2bb929b7
mov dword [esp + 0x94], 0x2f482db3
mov dword [esp + 0x98], 0x234e21b4
mov dword [esp + 0x9c], 0x2740255b
mov dword [esp + 0xa0], 0x5bc3593e
mov dword [esp + 0xa4], 0x5f3b5d3f
mov dword [esp + 0xa8], 0x5303513c
mov dword [esp + 0xac], 0x57085501
mov dword [esp + 0xb0], 0x4b264918
mov dword [esp + 0xb4], 0x4fdb4d33
mov dword [esp + 0xb8], 0x43de41d4
mov dword [esp + 0xbc], 0x47d945db
mov dword [esp + 0xc0], 0x7b1679e3
mov dword [esp + 0xc4], 0x7fec7d0c
mov dword [esp + 0xc8], 0x731471ef
mov dword [esp + 0xcc], 0x77ea75ed
mov dword [esp + 0xd0], 0x6bf9690d
mov dword [esp + 0xd4], 0x6f116d00
mov dword [esp + 0xd8], 0x63f661f5
mov dword [esp + 0xdc], 0x67f965f8
mov dword [esp + 0xe0], 0x9b019907
mov dword [esp + 0xe4], 0x9fd79df0
mov dword [esp + 0xe8], 0x93c591c3
mov dword [esp + 0xec], 0x97d595c1
mov dword [esp + 0xf0], 0x8bcc89ce
mov dword [esp + 0xf4], 0x8fda8ddc
mov dword [esp + 0xf8], 0x83d181d1
mov dword [esp + 0xfc], 0x87d785d5
mov dword [esp + 0x100], 0xbbdeb9e9
mov dword [esp + 0x104], 0xbffcbdef
mov dword [esp + 0x108], 0xb3fab1f8
mov dword [esp + 0x10c], 0xb7e6b5f5
mov dword [esp + 0x110], 0xabfba9f8
mov dword [esp + 0x114], 0xaffaadfc
mov dword [esp + 0x118], 0xa3f0a1e2
mov dword [esp + 0x11c], 0xa7f0a5e5
mov dword [esp + 0x120], 0xdb8dd98e
mov dword [esp + 0x124], 0xdfb2dd8a
mov word [esp + 0x128], 0xd1d0
lea eax, [esp + 0x128]
mov dword [eax + 9], 0
mov dword [eax + 6], 0
mov dword [eax + 2], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0xac
ja 0x41c06b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
movzx ecx, byte [esp + ecx + 0x88]
mov esi, 0xd7
sub esi, eax
add eax, 0x320f5b28
xor esi, eax
and esi, ecx
xor esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
add al, 0xe8
mov ecx, dword [esp + 0x888]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0xad
jb 0x41c010
mov dword [esp + 0x48], ebx
lea eax, [esp + 0x10b4]
lea esi, [esp + 0x88]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x128]
mov ecx, 1
lea edi, [esp + 0x1154]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0xf2c]
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0xfce]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0xe8a]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43b554]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x88], 0x3a393837
lea ecx, [esp + 0x128]
mov word [ecx - 0x94], 0
mov dword [ecx - 0x98], 0
mov dword [ecx - 0x9c], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0xd
ja 0x41c19b
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
mov esi, 8
sub esi, ecx
add ecx, 0x4032cff7
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x3f
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0xe
jb 0x41c140
mov ecx, dword [0x43f060]
test ecx, ecx
mov esi, dword [esp + 0x60]
je 0x41c980
mov edx, dword [esp + 0x88]
xor edi, edi
mov ebx, dword [0x43f064]
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x41c974
inc edi
cmp ecx, edi
jne 0x41c1c0
jmp 0x41c980
mov ecx, dword [esp + 0x64]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x43b554]
mov dword [esp + 0x64], ecx
mov eax, dword [esp + ecx + 0x74]
mov dword [esp + 0x88], 0x6bba6dbc
mov dword [esp + 0x8c], 0x67b669b8
mov dword [esp + 0x90], 0x63b265b4
mov dword [esp + 0x94], 0x1ff661b0
mov word [esp + 0x98], 0x1d1c
mov dword [esp + 0x9e], 0
mov dword [esp + 0x9a], 0
mov dword [esp + 0x888], 0
mov ecx, dword [esp + 0x888]
cmp ecx, 0x19
ja 0x41c2cb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
mov esi, 0x4d
sub esi, ecx
add ecx, 0xd357db2
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0xa88], esi
mov ecx, dword [esp + 0xa88]
add cl, 0x22
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], cl
inc dword [esp + 0x888]
mov ecx, dword [esp + 0x888]
cmp ecx, 0x1a
jb 0x41c270
movzx ecx, word [eax]
lea esi, [esp + 0x888]
test cx, cx
je 0x41c301
add eax, 2
lea esi, [esp + 0x888]
nop
nop
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 0x41c2f0
mov word [esi], 0
movzx eax, word [esp + 0x88]
test ax, ax
je 0x41c331
lea ecx, [esp + 0x8a]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c320
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x4c], esi
jmp dword [eax*4 + 0x43b55c]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x43b55c]
mov word [esi - 2], di
lea eax, [esp + 0x54]
lea ecx, [esp + 0x888]
push dword [esp + 0x58]
push 0
push 0x20019
push eax
push ecx
call fcn.004350c0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43b564]
mov dword [esp + 0x68], 0x800
mov dword [esp + 0x50], edi
mov dword [esp + 0x1c], 0x400
xor esi, esi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x1c]
lea edi, [esp + 0xa88]
lea ecx, [esp + 0x20]
lea edx, [esp + 0x68]
push eax
push edi
push ecx
push edx
lea eax, [esp + 0x98]
push eax
push esi
push dword [esp + 0x6c]
call fcn.00435880
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43b56c]
test bl, 1
sete al
cmp dword [esp + 0x20], 1
sete cl
and cl, al
movzx eax, cl
mov dword [esp + 0x14], esi
mov dword [esp + 8], ebx
jmp dword [eax*4 + 0x43b574]
xor eax, eax
cmp dword [esp + 0x20], 3
sete al
jmp dword [eax*4 + 0x43b5a4]
mov eax, dword [esp + 0x10]
jmp case.0x41c96d.16
mov dword [esp + 0x28], 0xdb39d919
mov dword [esp + 0x2c], 0xe711e507
mov dword [esp + 0x30], 0xe314e11d
mov dword [esp + 0x34], 0xefeeed10
mov byte [esp + 0x38], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x41c4a9
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 + 0x28]
mov edx, 0xe3
sub edx, eax
add eax, 0x3a57711c
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x3c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x41c470
movzx ebx, word [esp + 0x28]
lea eax, [esp + 0x88]
mov dword [esp + 0xc], eax
test bx, bx
je 0x41c508
lea esi, [esp + 0x88]
lea edx, [esp + 0x28]
mov dword [esp + 0xc], esi
jmp 0x41c4d8
movzx ebx, word [edx]
test bx, bx
je 0x41c508
movzx eax, word [esi]
test ax, ax
je 0x41c500
add esi, 2
add edx, 2
mov ecx, dword [esp + 0xc]
add ecx, 2
cmp ax, bx
je 0x41c4f8
mov dword [esp + 0xc], ecx
mov esi, ecx
je 0x41c4d0
lea edx, [esp + 0x28]
jmp 0x41c4d0
mov dword [esp + 0xc], 0
xor eax, eax
cmp dword [esp + 0xc], 0
setne al
jmp dword [eax*4 + 0x43b57c]
xor eax, eax
cmp dword [esp + 0x20], 3
sete al
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp dword [eax*4 + 0x43b5a4]
mov dword [esp + 0x28], 0x43234116
mov dword [esp + 0x2c], 0x5fd15dcf
mov dword [esp + 0x30], 0x5b2959d7
mov dword [esp + 0x34], 0x57285528
mov word [esp + 0x38], 0x5156
lea eax, [esp + 0x3a]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x18
ja 0x41c5b9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
mov edx, 0x34
sub edx, eax
add eax, 0xbbc982cb
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x73
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x19
jb 0x41c580
movzx edi, word [esp + 0x28]
lea eax, [esp + 0x88]
test di, di
je 0x41c734
lea ecx, [esp + 0x88]
lea edx, [esp + 0x28]
mov eax, ecx
jmp 0x41c5ec
movzx edi, word [edx]
test di, di
je 0x41c734
movzx ebx, word [ecx]
test bx, bx
je 0x41c72e
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x41c60a
mov eax, esi
mov ecx, esi
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
je 0x41c5e0
lea edx, [esp + 0x28]
jmp 0x41c5e0
mov eax, dword [esp + 0x1c]
cmp eax, 2
mov esi, dword [esp + 0x14]
jae 0x41c636
mov edx, dword [esp + 4]
jmp 0x41c6f8
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x41c689
mov dword [esp + 8], ecx
xor ebx, ebx
lea edi, [esp + 0xa88]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edi]
xor ecx, ecx
test si, si
setne cl
lea edi, [edi + ecx*2]
mov word [edx], si
add edx, 2
inc ebx
cmp dword [esp + 0xc], ebx
jne 0x41c660
mov dword [esp + 4], edx
sub eax, ebx
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
cmp ecx, 3
jb 0x41c6f8
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [edi + edx*2]
movzx edx, word [edi + edx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 2], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 4], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
lea edi, [ecx + ebx*2]
mov word [esi + 6], dx
add esi, 8
add eax, 0xfffffffc
jne 0x41c6a0
mov edx, esi
mov esi, dword [esp + 0x14]
mov word [edx], 0x3a
lea eax, [edx + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
jmp dword [0x43b594]
mov word [edx + 2], 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx + 2], 0x20
mov bl, 1
jmp dword [0x43b59c]
xor eax, eax
mov ebx, dword [esp + 8]
xor ecx, ecx
test eax, eax
setne cl
mov eax, dword [esp + 0x10]
jmp dword [ecx*4 + 0x43b5ac]
mov eax, dword [esp + 0x1c]
cmp eax, 2
jae 0x41c758
mov edi, dword [esp + 4]
jmp 0x41c81e
shr eax, 1
lea ecx, [eax - 1]
mov dword [esp + 0xc], ecx
mov edi, eax
lea ecx, [esp + 0xa88]
and edi, 3
mov edx, dword [esp + 4]
je 0x41c7af
mov dword [esp + 0x10], eax
xor ebx, ebx
lea ecx, [esp + 0xa88]
movzx esi, word [ecx]
mov eax, edi
mov edi, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, edi
mov edi, eax
mov word [edx], si
add edx, 2
inc ebx
cmp eax, ebx
jne 0x41c780
mov eax, dword [esp + 0x10]
sub eax, ebx
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov edi, edx
cmp dword [esp + 0xc], 3
jb 0x41c81e
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi], dx
lea edx, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [esi + 2], cx
lea ecx, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [esi + 4], dx
lea edx, [ecx + ebx*2]
movzx edi, word [ecx + ebx*2]
xor ecx, ecx
test di, di
setne cl
lea ecx, [edx + ecx*2]
mov word [esi + 6], di
lea edx, [esi + 8]
add eax, 0xfffffffc
jne 0x41c7c0
mov edi, edx
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 8]
lea eax, [edi + 2]
mov dword [esp + 4], eax
jmp dword [0x43b5b8]
mov word [edi], 0xa
mov word [edi], 0xa
jmp dword [0x43b5c0]
mov al, 1
jmp dword [0x43b5d0]
mov dword [esp + 0x10], eax
mov eax, dword [case.0x41c96d.33]
nop
nop
nop
nop
nop
nop
nop
jmp eax
inc esi
jmp 0x41c3b0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], 0x3a393837
lea ecx, [esp + 0x3a]
mov word [ecx - 6], 0
mov dword [ecx - 0xa], 0
mov dword [ecx - 0xe], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xd
ja 0x41c8eb
nop
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 + 0x28]
mov esi, 8
sub esi, ecx
add ecx, 0x4032cff7
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x18]
add cl, 0x3f
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe
jb 0x41c8b0
mov ecx, dword [0x43f060]
test ecx, ecx
je 0x41c930
mov edx, dword [esp + 0x28]
xor edi, edi
mov ebx, dword [0x43f064]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xa3c1f363
je 0x41c920
inc edi
cmp ecx, edi
jne 0x41c910
jmp 0x41c930
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne case.default.0x41c942
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x43b55c]
push eax
push 1
push dword [0x43f068]
push ecx
call fcn.00432610
add esp, 0x10
mov edi, dword [esp + 0x50]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x4c]
jmp dword [eax*4 + 0x43b55c]
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x41c98a
nop
nop
nop
nop
mov ebx, dword [esp + 0x48]
jmp dword [0x43b5e4]
push eax
push 1
push dword [0x43f068]
push ecx
call fcn.00432610
add esp, 0x10
mov ebx, dword [esp + 0x48]
jmp dword [0x43b5e4]
mov word [esi], 0
mov ebx, dword [esp + 0x10]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x43b53c]
movzx ecx, word [esp + 0x11f8]
test cx, cx
mov dword [esp + 4], esi
je 0x41ca18
xor edi, edi
lea eax, [esp + 0x11f8]
jmp 0x41c9f2
add edi, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov esi, dword [esp + 4]
je 0x41ca1a
cmp eax, esi
jae 0x41ca1a
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x41c9e0
mov edx, ecx
jmp 0x41c9e0
xor edi, edi
lea eax, [edi + 1]
mov dword [esp + 0x14], eax
push eax
call fcn.00408a30
add esp, 4
mov ebx, eax
lea ecx, [esp + 0x11f8]
cmp ecx, esi
setb al
mov dword [esp + 8], ebx
mov ecx, edi
mov dword [esp + 0x10], edi
test edi, edi
jle 0x41cb17
mov ebx, dword [esp + 8]
test al, al
je 0x41cb17
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 8]
add eax, ebx
mov dword [esp + 0xc], eax
add dword [esp + 0x14], ebx
lea edx, [esp + 0x11fa]
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x41cb17
cmp cx, 0x7f
ja 0x41ca90
mov byte [ebx], cl
mov edi, 1
jmp 0x41cb00
mov eax, ebx
not eax
add eax, dword [esp + 0x14]
movzx esi, cx
cmp eax, 2
jb 0x41cad0
cmp esi, 0x7ff
ja 0x41cad0
mov eax, ecx
shr eax, 6
add al, 0xc0
mov byte [ebx], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 1], cl
mov edi, 2
jmp 0x41cb00
xor edi, edi
cmp eax, 3
jb 0x41cb00
mov eax, esi
shr eax, 0xc
or al, 0xe0
mov byte [ebx], al
mov eax, esi
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebx + 1], al
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 2], cl
mov edi, 3
nop
nop
nop
nop
nop
nop
add ebx, edi
cmp ebx, dword [esp + 0xc]
jae 0x41cb17
lea eax, [edx + 2]
cmp edx, dword [esp + 4]
mov edx, eax
jb 0x41ca70
mov edi, dword [esp + 8]
mov ecx, dword [ebp + 8]
mov byte [ebx], 0
mov dword [esp + 0x88], 0xafaaa9d9
mov dword [esp + 0x8c], 0x5b47464d
mov dword [esp + 0x90], 0x50545649
mov dword [esp + 0x94], 0x53533a1b
mov dword [esp + 0x98], 0x405d5e5c
mov dword [esp + 0x9c], 0x40442503
mov dword [esp + 0xa0], 0x5e46585e
mov dword [esp + 0xa4], 0x47420b4f
mov word [esp + 0xa8], 0xf944
mov dword [esp + 0xaa], 0
mov word [esp + 0xae], 0
mov dword [esp + 0x888], 0
mov eax, dword [esp + 0x888]
cmp eax, 0x27
ja 0x41cc09
nop
mov eax, dword [esp + 0x888]
mov edx, dword [esp + 0x888]
movzx edx, byte [esp + edx + 0x88]
mov esi, 3
sub esi, eax
add eax, 0xc1c814fc
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 0xa88], esi
mov eax, dword [esp + 0xa88]
add al, 0x1c
mov edx, dword [esp + 0x888]
mov byte [esp + edx + 0x88], al
inc dword [esp + 0x888]
mov eax, dword [esp + 0x888]
cmp eax, 0x28
jb 0x41cbb0
lea eax, [esp + 0x88]
push dword [esp + 0x10]
push edi
push eax
call fcn.00409560
mov ebx, eax
jmp dword [0x43b5fc]
push edi
call fcn.00408a40
add esp, 4
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
int3
mov dl, 0x41
add byte [edx - 0x4e], dh
inc ecx
add byte [ecx - 0x4e], ah
inc ecx
add byte [ecx - 0x4e], bh
inc ecx
add byte [eax - 0x4e], dh
inc ecx
add byte [eax - 0x4e], dh
inc ecx
add byte [eax - 0x4e], dh
inc ecx
add byte [edx - 0x4e], dh
inc ecx
add byte [esi - 0x5fffbe37], ah
mov dl, 0x41
add byte [esp + ecx*8], ch
inc ecx
add byte [ebp + 0x180041c9], bh
mov bl, 0x41
add ah, ah
mov dl, 0x41
add byte [ecx], cl
mov bl, 0x41
add byte [eax - 0x4d], dl
inc ecx
add al, dh
rol byte [ecx], 0xf6
rol dword [ecx], 0xe0
rol dword [ecx], 0x61
ret