Function at 0x4289f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e4
call fcn.0040cca0
mov dword [esp + 0xde4], 0x21f42780
mov dword [esp + 0xde8], 0x3dfb23ff
mov dword [esp + 0xdec], 0x39933fe7
mov dword [esp + 0xdf0], 0x35e83b94
mov dword [esp + 0xdf4], 0x3192379f
mov dword [esp + 0xdf8], 0xd9f339f
mov dword [esp + 0xdfc], 0x9dc0fd3
mov word [esp + 0xe00], 0xb08
mov dword [esp + 0xe02], 0
mov byte [esp + 0xe06], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
mov esi, eax
and esi, 0x12
mov edx, ecx
xor edx, 0x49
add edx, esi
xor dl, byte [esp + ecx + 0xde4]
add dl, 0x93
mov byte [esp + ecx + 0xde4], dl
inc ecx
add eax, 2
cmp ecx, 0x23
jne case.default.0x428abb
lea eax, [esp + 0x2c]
lea ecx, [esp + 0xde4]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.00444fb0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x44c03c]
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x28]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x4c]
call fcn.004453e0
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c044]
xor eax, eax
jmp 0x429f66
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x34], 0
cmp ecx, dword [esp + 0x28]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0x44c04c]
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x44c04c]
mov edi, dword [esp + 0x5c]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x428b43
mov eax, 0xffffffff
push eax
call fcn.0040cd40
add esp, 4
mov dword [esp + 0x58], edi
mov esi, eax
lea eax, [esp + 0x58]
push eax
push esi
push ebx
push dword [esp + 0x38]
call fcn.004450e0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c05c]
lea eax, [esp + 0x3c]
push dword [esp + 0x2c]
push 0
push 0x20019
push eax
push esi
call fcn.00444fb0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c064]
mov eax, dword [case.0x428abb.7]
jmp case.0x429776.27
mov dword [esp + 0x40], esi
mov dword [esp + 0x74], 0x893d8b5f
mov dword [esp + 0x78], 0x85088735
mov dword [esp + 0x7c], 0x810f8335
mov dword [esp + 0x80], 0x9d249f31
mov dword [esp + 0x84], 0x993e9b10
mov dword [esp + 0x88], 0x95219731
mov dword [esp + 0x8c], 0x912e9326
mov dword [esp + 0x90], 0x6de76f21
mov dword [esp + 0x94], 0x698a6be1
mov dword [esp + 0x98], 0x65dd67bb
mov dword [esp + 0x9c], 0x61ef63e9
mov dword [esp + 0xa0], 0x7dc77fdf
mov dword [esp + 0xa4], 0x79c87bcb
mov dword [esp + 0xa8], 0x759677c1
mov dword [esp + 0xac], 0x71f973d9
mov dword [esp + 0xb0], 0x4dc34fce
mov dword [esp + 0xb4], 0x49c74bcb
mov dword [esp + 0xb8], 0x45fd47c4
mov dword [esp + 0xbc], 0x41e643f7
mov dword [esp + 0xc0], 0x5dd05f90
mov dword [esp + 0xc4], 0x59e05bed
mov dword [esp + 0xc8], 0x55e257ef
mov dword [esp + 0xcc], 0x51df53ef
mov dword [esp + 0xd0], 0x2de92ff4
mov dword [esp + 0xd4], 0x29e32be1
mov dword [esp + 0xd8], 0x25fb27e3
mov dword [esp + 0xdc], 0x21f823fe
mov dword [esp + 0xe0], 0x3df23fd0
mov dword [esp + 0xe4], 0x39f73bf3
mov dword [esp + 0xe8], 0x35f937f7
mov dword [esp + 0xec], 0x318e33fb
mov dword [esp + 0xf0], 0xdd00ffd
mov dword [esp + 0xf4], 0x9c20bc4
mov dword [esp + 0xf8], 0x5f607d7
mov dword [esp + 0xfc], 0x1cd03f4
mov dword [esp + 0x100], 0x1dd21ff0
mov dword [esp + 0x104], 0x19d41bc2
mov dword [esp + 0x108], 0x15dc17c7
mov dword [esp + 0x10c], 0x11db13de
mov dword [esp + 0x110], 0xed4aefda
mov word [esp + 0x114], 0xebec
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x63
xor cl, byte [esp + eax + 0x74]
add cl, 0x11
mov byte [esp + eax + 0x74], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xa8
jb 0x428d80
lea edi, [esp + 0x918]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
mov ecx, 1
lea edi, [esp + 0x9b8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x59a55b97
mov dword [esp + 0x78], 0x5da85fbd
mov dword [esp + 0x7c], 0x51a753ad
mov dword [esp + 0x80], 0x55ac57a1
mov dword [esp + 0x84], 0x69866ba0
mov dword [esp + 0x88], 0x6d916f81
mov dword [esp + 0x8c], 0x6186639e
mov dword [esp + 0x90], 0x65ef6791
mov dword [esp + 0x94], 0x795a7b91
mov dword [esp + 0x98], 0x7daa7faa
mov dword [esp + 0x9c], 0x71b77390
mov dword [esp + 0xa0], 0x758077fb
mov dword [esp + 0xa4], 0x9f10b82
mov dword [esp + 0xa8], 0xdfa0ffa
mov dword [esp + 0xac], 0x1f903e6
mov dword [esp + 0xb0], 0x5f307f6
mov dword [esp + 0xb4], 0x19eb1bfb
mov dword [esp + 0xb8], 0x1df21fea
mov dword [esp + 0xbc], 0x11ed13f5
mov dword [esp + 0xc0], 0x15f217e2
mov dword [esp + 0xc4], 0x29a32be5
mov dword [esp + 0xc8], 0x2d0e2fdd
mov dword [esp + 0xcc], 0x21d923ff
mov dword [esp + 0xd0], 0x25d327d5
mov dword [esp + 0xd4], 0x39c33bc3
mov dword [esp + 0xd8], 0x3dcc3fc7
mov dword [esp + 0xdc], 0x311233c5
mov dword [esp + 0xe0], 0x35bd37e5
mov dword [esp + 0xe4], 0xc93fcbd2
mov dword [esp + 0xe8], 0xcd3bcf47
mov dword [esp + 0xec], 0xc139c338
mov dword [esp + 0xf0], 0xc52ac733
mov dword [esp + 0xf4], 0xd92cdb14
mov dword [esp + 0xf8], 0xdd24df29
mov dword [esp + 0xfc], 0xd12ed323
mov dword [esp + 0x100], 0xd523d72b
mov dword [esp + 0x104], 0xe93beb38
mov dword [esp + 0x108], 0xed1aef63
mov dword [esp + 0x10c], 0xe113e310
mov dword [esp + 0x110], 0xe51be711
mov dword [esp + 0x114], 0xf935fb08
mov dword [esp + 0x118], 0xfd37ffcd
mov dword [esp + 0x11c], 0xf137f337
mov dword [esp + 0x120], 0xf52cf72a
mov dword [esp + 0x124], 0x89be8bc4
mov dword [esp + 0x128], 0x8dbb8fbf
mov dword [esp + 0x12c], 0x81b583bb
mov dword [esp + 0x130], 0x856287b7
mov dword [esp + 0x134], 0x995c9bb1
mov dword [esp + 0x138], 0x9d569f50
mov dword [esp + 0x13c], 0x91a2935b
mov dword [esp + 0x140], 0x95a197a0
mov dword [esp + 0x144], 0xa99eaba4
mov dword [esp + 0x148], 0xad98af6e
mov dword [esp + 0x14c], 0xa168a36b
mov dword [esp + 0x150], 0xa56fa76a
mov dword [esp + 0x154], 0xb956bb6e
mov dword [esp + 0x158], 0xbfb8
mov eax, 0x9516928f
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x6ae96de5]
lea esi, [eax + 0x6ae96e00]
or esi, eax
and esi, ecx
add ecx, eax
add esi, esi
mov edx, ecx
sub edx, esi
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0x34
mov byte [esp + eax + 0x6ae96de5], dl
inc eax
cmp eax, 0x95169377
jne 0x429050
lea edi, [esp + 0x9ba]
lea eax, [esp + 0x74]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x158]
lea edi, [esp + 0xa9e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x13fb11e5
mov dword [esp + 0x78], 0x1f8c1dff
mov dword [esp + 0x7c], 0x1b89198f
mov dword [esp + 0x80], 0x7e80593
mov dword [esp + 0x84], 0x3e6019c
mov dword [esp + 0x88], 0xfe00dfb
mov dword [esp + 0x8c], 0xbe309e6
mov dword [esp + 0x90], 0x37db35d7
mov dword [esp + 0x94], 0x33e331d4
mov dword [esp + 0x98], 0x3fe83def
mov dword [esp + 0x9c], 0x3bde39e8
mov dword [esp + 0xa0], 0x27bb25d3
mov dword [esp + 0xa4], 0x23b621bc
mov dword [esp + 0xa8], 0x2fb92dbb
mov dword [esp + 0xac], 0x2bce29c3
mov dword [esp + 0xb0], 0xd744d524
mov dword [esp + 0xb4], 0xd33cd147
mov dword [esp + 0xb8], 0xdf4add35
mov dword [esp + 0xbc], 0xdb49d935
mov dword [esp + 0xc0], 0xc731c520
mov dword [esp + 0xc4], 0xc35ec15d
mov dword [esp + 0xc8], 0xcf59cd58
mov dword [esp + 0xcc], 0xcb21c95f
mov dword [esp + 0xd0], 0xf72ff510
mov dword [esp + 0xd4], 0xf32df123
mov dword [esp + 0xd8], 0xff3dfd21
mov dword [esp + 0xdc], 0xfb34f936
mov dword [esp + 0xe0], 0xe73ae534
mov dword [esp + 0xe4], 0xe331e131
mov dword [esp + 0xe8], 0xef3fed3d
mov dword [esp + 0xec], 0xeb06e939
mov dword [esp + 0xf0], 0x97549547
mov dword [esp + 0xf4], 0x934a9148
mov dword [esp + 0xf8], 0x9f4e9d5d
mov dword [esp + 0xfc], 0x9b4b9948
mov dword [esp + 0x100], 0x875a8554
mov dword [esp + 0x104], 0x83508142
mov dword [esp + 0x108], 0x8f508d4d
mov dword [esp + 0x10c], 0x8b558956
mov dword [esp + 0x110], 0xb752b56a
mov word [esp + 0x114], 0xb1b0
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0xf6f90ac4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x906f5b0]
xor ecx, eax
mov edx, 0xd4
sub edx, ecx
add ecx, 0x2d22ca2b
and edx, 0x82
mov esi, ecx
and esi, 0x7c
sub esi, edx
and ecx, 1
or ecx, esi
add cl, 0x83
mov byte [esp + eax + 0x906f5b0], cl
inc eax
cmp eax, 0xf6f90b6c
jne 0x429290
lea edi, [esp + 0x876]
lea eax, [esp + 0x74]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0x916]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x51e54f03
mov dword [esp + 0x78], 0x55e053f5
mov dword [esp + 0x7c], 0x59e357e5
mov dword [esp + 0x80], 0x5dfc5be9
mov dword [esp + 0x84], 0xa1025fe8
mov dword [esp + 0x88], 0xa504a3f1
mov dword [esp + 0x8c], 0xa90da702
mov dword [esp + 0x90], 0xad0dab0d
mov dword [esp + 0x94], 0xb1ddaff0
mov dword [esp + 0x98], 0xb5dcb3c4
mov dword [esp + 0x9c], 0xb9eab7c4
mov dword [esp + 0xa0], 0xbd0dbbe9
mov dword [esp + 0xa4], 0x8112bf08
mov dword [esp + 0xa8], 0x85338331
mov dword [esp + 0xac], 0x89da8729
mov dword [esp + 0xb0], 0x8d388bd8
mov dword [esp + 0xb4], 0x91288f3d
mov dword [esp + 0xb8], 0x953e933b
mov dword [esp + 0xbc], 0x99239733
mov dword [esp + 0xc0], 0x9dcb9bc4
mov dword [esp + 0xc4], 0xe12a9f2b
mov dword [esp + 0xc8], 0xe553e34c
mov dword [esp + 0xcc], 0xe94be755
mov dword [esp + 0xd0], 0xed91ebb4
mov dword [esp + 0xd4], 0xf197ef99
mov dword [esp + 0xd8], 0xf5b7f387
mov dword [esp + 0xdc], 0xf9b0f7b2
mov dword [esp + 0xe0], 0xfd8efb88
mov dword [esp + 0xe4], 0xc18bff8f
mov dword [esp + 0xe8], 0xc5b1c3b3
mov dword [esp + 0xec], 0xc962c7b7
mov dword [esp + 0xf0], 0xcd88cbbd
mov dword [esp + 0xf4], 0xd1b6cfb4
mov dword [esp + 0xf8], 0xd5a2d393
mov dword [esp + 0xfc], 0xd9a5d7a4
mov dword [esp + 0x100], 0xddaedba8
mov dword [esp + 0x104], 0x21acdf9e
mov dword [esp + 0x108], 0x25542363
mov dword [esp + 0x10c], 0x295f2752
mov dword [esp + 0x110], 0x2d762b5e
mov word [esp + 0x114], 0x2f2c
lea eax, [esp + 0x114]
mov word [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x4535d8ed
mov ecx, 0x12
nop
nop
movzx edx, byte [esp + eax - 0x4535d879]
mov esi, ecx
xor esi, eax
and esi, edx
xor esi, eax
mov edx, esi
and edx, 0x5e
add edx, esi
or esi, 0xa1
sub edx, esi
mov byte [esp + eax - 0x4535d879], dl
inc eax
dec ecx
cmp eax, 0x4535d995
jne 0x4294d0
lea eax, [esp + 0xb42]
lea edx, [esp + 0x74]
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x114]
mov ecx, 1
lea edi, [esp + 0xbe2]
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x74], 0x11851fe3
mov dword [esp + 0x78], 0x158013f5
mov dword [esp + 0x7c], 0x9831785
mov dword [esp + 0x80], 0xdec0b99
mov dword [esp + 0x84], 0x1e20f98
mov dword [esp + 0x88], 0x5e403f1
mov dword [esp + 0x8c], 0x399d07e2
mov dword [esp + 0x90], 0x3ddd3bdd
mov dword [esp + 0x94], 0x31ed3fd0
mov dword [esp + 0x98], 0x35ec33e7
mov dword [esp + 0x9c], 0x29da37e4
mov dword [esp + 0xa0], 0x2dbd2bd9
mov dword [esp + 0xa4], 0x21b22fb8
mov dword [esp + 0xa8], 0x25b323b1
mov dword [esp + 0xac], 0xd9ca27b9
mov dword [esp + 0xb0], 0xdd48db28
mov dword [esp + 0xb4], 0xd138df4d
mov dword [esp + 0xb8], 0xd54ed34b
mov dword [esp + 0xbc], 0xc943d733
mov dword [esp + 0xc0], 0xcd3bcb24
mov dword [esp + 0xc4], 0xc15acf5b
mov dword [esp + 0xc8], 0xc553c35c
mov dword [esp + 0xcc], 0xf95bc755
mov dword [esp + 0xd0], 0xfd31fb14
mov dword [esp + 0xd4], 0xf137ff29
mov dword [esp + 0xd8], 0xf537f327
mov dword [esp + 0xdc], 0xe930f732
mov dword [esp + 0xe0], 0xed3eeb38
mov dword [esp + 0xe4], 0xe13bef3f
mov dword [esp + 0xe8], 0xe531e333
mov dword [esp + 0xec], 0x9902e737
mov dword [esp + 0xf0], 0x9d589b4d
mov dword [esp + 0xf4], 0x91569f54
mov dword [esp + 0xf8], 0x95429353
mov dword [esp + 0xfc], 0x89459744
mov dword [esp + 0x100], 0x8d5e8b58
mov dword [esp + 0x104], 0x815c8f4e
mov dword [esp + 0x108], 0x85548343
mov dword [esp + 0x10c], 0xb94f8752
mov dword [esp + 0x110], 0xbd56bb6e
mov dword [esp + 0x114], 0xbfbc
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0x45
xor dl, byte [esp + ecx + 0x74]
add dl, 0xa7
mov byte [esp + ecx + 0x74], dl
inc ecx
cmp ecx, 0xa4
jne case.default.0x429776
mov dword [esp + 0x44], ebx
lea edx, [esp + 0xaa0]
lea ebp, [esp + 0x74]
mov esi, ebp
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x114]
lea edi, [esp + 0xb40]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x918]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x9ba]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x876]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44c06c]
mov dword [esp + 0x48], ecx
mov edi, dword [esp + ecx + 0x60]
mov dword [esp + 0x74], 0x4f9e4998
mov dword [esp + 0x78], 0x43924d9c
mov dword [esp + 0x7c], 0x47964190
mov dword [esp + 0x80], 0x7b924594
mov word [esp + 0x84], 0x7978
lea eax, [esp + 0x114]
mov byte [eax - 0x8a], 0
mov dword [eax - 0x8e], 0
mov ecx, 0x12
mov edx, 0xed
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x62]
mov ebx, ecx
xor ebx, edx
and ebx, esi
xor ebx, edx
mov al, 0xa5
sub al, bl
mov byte [esp + ecx + 0x62], al
inc ecx
dec edx
cmp ecx, 0x29
jne 0x4297e0
movzx ecx, word [edi]
lea edx, [esp + 0xbe4]
test cx, cx
je 0x429821
add edi, 2
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x429810
mov word [edx], 0
movzx eax, word [esp + 0x74]
test ax, ax
je 0x429851
lea ecx, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429840
mov word [edx], 0
mov si, 0x31
xor eax, eax
cmp si, 0x35
setb al
mov dword [esp + 0x30], edx
jmp dword [eax*4 + 0x44c074]
mov ecx, dword [esp + 0x48]
add ecx, 4
mov eax, dword [case.0x429776.5]
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44c06c]
mov esi, dword [esp + 0x4c]
inc esi
xor eax, eax
cmp si, 0x35
setb al
lea ebp, [esp + 0x74]
mov edx, dword [esp + 0x30]
jmp dword [eax*4 + 0x44c074]
mov word [edx - 2], si
lea eax, [esp + 0x38]
lea ecx, [esp + 0xbe4]
push dword [esp + 0x3c]
push 0
push 0x20019
push eax
push ecx
call fcn.00444fb0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c08c]
inc esi
xor eax, eax
cmp si, 0x35
setb al
mov edx, dword [esp + 0x30]
jmp dword [eax*4 + 0x44c074]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], 0x800
mov dword [esp + 0x24], 0x400
xor ebx, ebx
mov dword [esp + 8], 0
jmp 0x429941
mov ebx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
lea eax, [esp + 0x24]
lea edi, [esp + 0x1de4]
lea ecx, [esp + 0x50]
lea edx, [esp + 0x54]
push eax
push edi
push ecx
push edx
push ebp
push ebx
push dword [esp + 0x50]
call fcn.004456d0
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c094]
test byte [esp + 8], 1
sete al
mov edx, dword [esp + 0x50]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44c09c]
jmp dword [0x44c0bc]
mov dword [esp + 0x20], edx
mov dword [esp], ebx
mov dword [esp + 0xc], 0x933191d1
mov dword [esp + 0x10], 0x9f099d3f
mov dword [esp + 0x14], 0x9b0c9905
mov dword [esp + 0x18], 0x87868518
mov word [esp + 0x1c], 0
xor ecx, ecx
mov eax, ecx
add al, 0xa4
xor al, byte [esp + ecx + 0xc]
add al, 0xcc
mov byte [esp + ecx + 0xc], al
inc ecx
cmp ecx, 0x12
jne 0x4299d0
movzx ebx, word [esp + 0xc]
mov esi, ebp
test bx, bx
je 0x429a2d
lea ecx, [esp + 0x74]
lea ebp, [esp + 0xc]
mov esi, ecx
jmp 0x429a09
movzx ebx, word [ebp]
test bx, bx
je 0x429a2d
movzx eax, word [ecx]
test ax, ax
je 0x429a2b
add ecx, 2
add ebp, 2
lea edx, [esi + 2]
cmp ax, bx
je 0x429a23
mov esi, edx
mov ecx, edx
je 0x429a00
lea ebp, [esp + 0xc]
jmp 0x429a00
xor esi, esi
mov eax, dword [case.0x429776.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test esi, esi
setne al
mov ebx, dword [esp]
jmp dword [eax*4 + 0x44c0b4]
lea ebp, [esp + 0x74]
mov edx, dword [esp + 0x20]
jmp dword [0x44c0bc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44c0c4]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x44c0cc]
mov dword [esp], ebx
mov dword [esp + 0xc], 0xb7578978
mov dword [esp + 0x10], 0xb32db52b
mov dword [esp + 0x14], 0xbf2db12b
mov dword [esp + 0x18], 0xbb56bd22
mov dword [esp + 0x1c], 0xb9b8
mov eax, 0xd0035cde
mov ecx, 0x2ffca321
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x2ffca32e]
lea esi, [ecx - 0x20000000]
and esi, 0xddca01b
mov ebx, eax
and ebx, 0xc00100e4
or ebx, esi
xor ebx, edx
xor ebx, 0x1ddefc1b
lea edi, [ebx + ebx]
not edi
add edi, ebx
and edi, eax
add edi, edi
mov esi, edi
sub esi, edx
add esi, ecx
or esi, 0xefef2fa9
add esi, edx
sub edx, edi
add edx, eax
sub esi, edi
lea edi, [eax + esi]
inc edi
mov esi, edi
and esi, 2
mov ebx, edi
or edi, 2
imul edi, esi
xor esi, 2
and ebx, 0xfd
imul ebx, esi
xor edx, 0xefef2fa9
add edi, edx
add edi, ebx
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [esp + eax + 0x2ffca32e], dl
inc eax
dec ecx
cmp eax, 0xd0035cf2
jne 0x429ac0
movzx edi, word [esp + 0xc]
lea eax, [esp + 0x74]
test di, di
je 0x429c9f
lea ecx, [esp + 0x74]
lea edx, [esp + 0xc]
mov eax, ecx
jmp 0x429b7c
movzx edi, word [edx]
test di, di
je 0x429c9f
movzx ebx, word [ecx]
test bx, bx
je 0x429c9d
add ecx, 2
add edx, 2
lea esi, [eax + 2]
cmp bx, di
je 0x429b9a
mov eax, esi
mov ecx, esi
je 0x429b70
lea edx, [esp + 0xc]
jmp 0x429b70
mov eax, dword [esp + 0x24]
cmp eax, 2
jae 0x429bc6
mov esi, dword [esp + 4]
lea ebp, [esp + 0x74]
jmp 0x429c85
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x429c17
mov dword [esp + 8], ecx
xor ebx, ebx
lea edi, [esp + 0x1de4]
mov ebp, dword [esp + 4]
nop
nop
nop
nop
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 [ebp], si
add ebp, 2
inc ebx
cmp edx, ebx
jne 0x429bf0
mov dword [esp + 4], ebp
sub eax, ebx
mov ebx, dword [esp]
mov ecx, dword [esp + 8]
cmp ecx, 3
mov esi, dword [esp + 4]
lea ebp, [esp + 0x74]
jb 0x429c85
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [ebx + edx*2]
mov word [esi + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [edi + edx*2]
mov word [esi + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [esi + 6], dx
add esi, 8
lea edi, [ebx + ecx*2]
add eax, 0xfffffffc
jne 0x429c30
mov ebx, dword [esp]
mov dword [esi], 0x20003a
add esi, 4
mov dword [esp + 4], esi
mov al, 1
mov dword [esp + 8], eax
jmp case.0x429776.23
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44c0d4]
mov eax, dword [esp + 0x24]
cmp eax, 2
mov ebx, dword [esp]
jae 0x429cc2
mov edx, dword [esp + 4]
jmp 0x429d67
shr eax, 1
lea esi, [eax - 1]
mov edi, eax
lea ecx, [esp + 0x1de4]
and edi, 3
mov edx, dword [esp + 4]
je 0x429d0b
mov dword [esp + 0x20], esi
xor ebx, ebx
nop
movzx esi, word [ecx]
mov ebp, edx
xor edx, edx
test si, si
setne dl
lea ecx, [ecx + edx*2]
mov edx, ebp
mov word [ebp], si
add edx, 2
inc ebx
cmp edi, ebx
jne 0x429ce0
sub eax, ebx
lea ebp, [esp + 0x74]
mov ebx, dword [esp]
mov esi, dword [esp + 0x20]
cmp esi, 3
jb 0x429d67
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 0x429d10
mov ebx, dword [esp]
mov word [edx], 0xa
add edx, 2
mov dword [esp + 4], edx
mov al, 1
mov dword [esp + 0x34], eax
jmp case.0x429776.23
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0xc], 0xd8dbdac5
lea eax, [esp + 0x10]
mov byte [eax + 2], 0
mov word [eax], 0
xor ebp, ebp
mov edi, 0x75
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp + 0xc]
mov ebx, ebp
xor ebx, 0x4f2b114f
lea ecx, [edi + ebx]
add ecx, 0xffffff8b
and ecx, edx
mov eax, ecx
or al, 0xfd
inc al
mov ah, cl
and ah, 0x5d
mul ah
add bl, dl
add bl, al
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
sub bl, al
movzx eax, bl
add eax, edi
mov byte [esp + ebp + 0xc], al
inc ebp
add edi, 2
cmp ebp, 7
jne 0x429db0
mov eax, dword [0x450710]
test eax, eax
je 0x4298a0
mov ecx, dword [esp + 0xc]
xor edx, edx
mov edi, dword [0x450714]
cmp dword [edi + edx*8], 0xb62b8d10
je 0x429e23
inc edx
cmp eax, edx
jne 0x429e10
jmp 0x4298a0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4298a0
push dword [esp]
push 1
push dword [0x450718]
push eax
call fcn.00441310
add esp, 0x10
jmp 0x4298a0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 0x74], 0xd8dbdac5
lea eax, [esp + 0x114]
mov byte [eax - 0x9a], 0
mov word [eax - 0x9c], 0
mov edi, 0x75
xor esi, esi
nop
nop
nop
movzx edx, byte [esp + esi + 0x74]
mov ebx, esi
xor ebx, 0x4f2b114f
lea ecx, [edi + ebx]
add ecx, 0xffffff8b
and ecx, edx
mov eax, ecx
or al, 0xfd
inc al
mov ah, cl
and ah, 0x5d
mul ah
add bl, dl
add bl, al
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
sub bl, al
movzx eax, bl
add eax, edi
mov byte [esp + esi + 0x74], al
inc esi
add edi, 2
cmp esi, 7
jne 0x429e80
mov eax, dword [0x450710]
test eax, eax
je 0x429f10
mov ecx, dword [esp + 0x74]
xor edx, edx
mov ebx, dword [0x450714]
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xb62b8d10
je 0x429ef0
inc edx
cmp eax, edx
jne 0x429ee0
jmp 0x429f10
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x429f10
push dword [esp]
push 1
push dword [0x450718]
push eax
call fcn.00441310
add esp, 0x10
nop
nop
nop
nop
mov eax, dword [case.0x428abb.7]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
nop
nop
nop
jmp eax
jmp dword [0x44c0ec]
push esi
call fcn.0040cd50
add esp, 4
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x44c04c]
mov eax, dword [esp + 4]
mov word [eax], 0
mov eax, dword [esp + 0x34]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44c054]
jmp dword [0x44c0f8]
and al, 1
add esp, 0x21e4
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edi, word [esp + 0xde4]
xor esi, esi
test di, di
je 0x429fcb
xor esi, esi
lea eax, [esp + 0xde6]
mov ecx, edi
jmp 0x429f9c
inc esi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x429fcb
cmp cx, 0x7f
jbe 0x429f90
movzx edx, cx
cmp edx, 0x7ff
ja 0x429fc0
add esi, 2
jmp 0x429f91
cmp cx, 0xffff
je 0x429f91
add esi, 3
jmp 0x429f91
mov ebx, esi
and ebx, 1
mov dword [esp + 8], esi
mov ebp, esi
xor ebp, 1
lea eax, [ebx*2]
add eax, ebp
push eax
call fcn.0040cd40
add esp, 4
mov esi, eax
mov dword [esp], eax
test di, di
je 0x42a124
lea ecx, [ebx*2 - 1]
add ecx, ebp
mov esi, dword [esp]
test ecx, ecx
je 0x42a124
lea ebx, [esp + 0xde4]
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, di
lea edi, [ebx + 2]
cmp dx, 0x7f
ja 0x42a040
lea ebp, [esi + 1]
mov byte [esi], dl
jmp 0x42a0d0
cmp edx, 0x7ff
ja 0x42a070
cmp ecx, 2
jb 0x42a070
mov eax, edx
shr eax, 6
add al, 0xc0
mov byte [esi], al
and dl, 0x3f
or dl, 0x80
lea ebp, [esi + 2]
mov byte [esi + 1], dl
jmp 0x42a0d0
mov eax, edx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42a0ea
cmp ecx, 4
jb 0x42a0ea
movzx edi, word [ebx + 2]
add ebx, 4
shl edx, 0xa
lea eax, [edx + edi]
add eax, 0xfca02400
mov edx, eax
shr edx, 0x12
add dl, 0xf0
mov byte [esi], dl
mov edx, eax
shr edx, 0xc
and dl, 0x3f
or dl, 0x80
mov byte [esi + 1], dl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 2], al
mov eax, edi
and al, 0x3f
or al, 0x80
lea ebp, [esi + 4]
mov byte [esi + 3], al
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, esi
sub ecx, ebp
mov ebx, edi
mov esi, ebp
movzx edi, word [ebx]
test di, di
je 0x42a124
test ecx, ecx
jne 0x42a020
jmp 0x42a124
movzx eax, ax
cmp eax, 0xdc00
jne 0x42a0f8
mov ebx, edi
jmp 0x42a0d8
cmp ecx, 3
jb 0x42a120
mov eax, edx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, edx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and dl, 0x3f
or dl, 0x80
lea ebp, [esi + 3]
mov byte [esi + 2], dl
jmp 0x42a0d0
mov ebp, esi
jmp 0x42a0d0
mov byte [esi], 0
mov dword [esp + 0x74], 0xa7a2a151
mov dword [esp + 0x78], 0xe3cfced5
mov dword [esp + 0x7c], 0xd8dcded1
mov dword [esp + 0x80], 0xebeb3213
mov dword [esp + 0x84], 0xd8d5d6d4
mov dword [esp + 0x88], 0xc8cc2d0b
mov dword [esp + 0x8c], 0xc6cec0c6
mov dword [esp + 0x90], 0xfffa03c7
mov dword [esp + 0x94], 0x71fc
mov byte [esp + 0x98], 0
jmp dword [0x44c100]
movzx edi, word [esp + 0xde4]
xor esi, esi
test di, di
je 0x42a1eb
xor esi, esi
lea eax, [esp + 0xde6]
mov ecx, edi
jmp 0x42a1bc
inc esi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42a1eb
cmp cx, 0x7f
jbe 0x42a1b0
movzx edx, cx
cmp edx, 0x7ff
ja 0x42a1e0
add esi, 2
jmp 0x42a1b1
cmp cx, 0xffff
je 0x42a1b1
add esi, 3
jmp 0x42a1b1
lea eax, [esi + 1]
push eax
call fcn.0040cd40
add esp, 4
mov ebp, eax
test di, di
je 0x42a325
test esi, esi
je 0x42a325
lea edx, [esp + 0xde4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, di
lea ecx, [edx + 2]
cmp bx, 0x7f
ja 0x42a240
lea edi, [ebp + 1]
mov byte [ebp], bl
jmp 0x42a2d0
cmp ebx, 0x7ff
ja 0x42a270
cmp esi, 2
jb 0x42a270
mov edx, ebx
shr edx, 6
add dl, 0xc0
mov byte [ebp], dl
and bl, 0x3f
or bl, 0x80
lea edi, [ebp + 2]
mov byte [ebp + 1], bl
jmp 0x42a2d0
mov edi, ebx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x42a2ea
cmp esi, 4
jb 0x42a2ea
movzx ecx, word [edx + 2]
add edx, 4
shl ebx, 0xa
lea eax, [ebx + ecx]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [ebp], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [ebp + 1], bl
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 2], al
and cl, 0x3f
or cl, 0x80
lea edi, [ebp + 4]
mov byte [ebp + 3], cl
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
add esi, ebp
sub esi, edi
mov edx, ecx
mov ebp, edi
movzx edi, word [edx]
test di, di
je 0x42a325
test esi, esi
jne 0x42a220
jmp 0x42a325
movzx eax, di
cmp eax, 0xdc00
jne 0x42a2f8
mov edx, ecx
jmp 0x42a2d8
cmp esi, 3
jb 0x42a321
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [ebp], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [ebp + 1], al
and bl, 0x3f
or bl, 0x80
lea edi, [ebp + 3]
mov byte [ebp + 2], bl
jmp 0x42a2d0
mov edi, ebp
jmp 0x42a2d0
mov byte [ebp], 0
mov dword [esp + 0x74], 0xa7a2a151
mov dword [esp + 0x78], 0xe3cfced5
mov dword [esp + 0x7c], 0xd8dcded1
mov dword [esp + 0x80], 0xebeb3213
mov dword [esp + 0x84], 0xd8d5d6d4
mov dword [esp + 0x88], 0xc8cc2d0b
mov dword [esp + 0x8c], 0xc6cec0c6
mov dword [esp + 0x90], 0xfffa03c7
mov dword [esp + 0x94], 0x71fc
mov byte [esp + 0x98], 0
jmp case.0x429776.34
xor eax, eax
mov esi, dword [esp + 8]
cmp eax, 0x24
ja 0x42a3c0
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x74]
lea edx, [eax + 0x3c]
and edx, ecx
add ecx, eax
add ecx, 0x3c
add edx, edx
sub ecx, edx
add cl, 0xd4
mov byte [esp + eax + 0x74], cl
inc eax
cmp eax, 0x24
jbe 0x42a3a0
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x21f8]
push esi
mov edx, dword [esp + 4]
mov esi, edx
push edx
push eax
call fcn.0040da00
jmp dword [0x44c104]
jmp dword [0x44c10c]
jmp dword [0x44c10c]
jmp dword [0x44c114]
push esi
mov esi, eax
call fcn.0040cd50
mov eax, esi
add esp, 4
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44c128]