Function at 0x429370
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e4
call fcn.0040c670
mov dword [esp + 0xde4], 0x49e44be8
mov dword [esp + 0xde8], 0x45ff47f3
mov dword [esp + 0xdec], 0x41ef43f3
mov dword [esp + 0xdf0], 0xbd10bfec
mov dword [esp + 0xdf4], 0xb91ebb1b
mov dword [esp + 0xdf8], 0xb51bb713
mov dword [esp + 0xdfc], 0xb11cb30f
mov word [esp + 0xe00], 0xafb0
mov dword [esp + 0xe02], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x73
xor cl, byte [esp + eax + 0xde4]
add cl, 0xc1
mov byte [esp + eax + 0xde4], cl
inc eax
cmp eax, 0x22
jne case.default.0x429431
lea eax, [esp + 0x2c]
lea ecx, [esp + 0xde4]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x10], ecx
push ecx
call fcn.004468a0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x44e714]
jmp dword [0x44e71c]
lea eax, [esp + 0x4c]
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.00446c30
add esp, 0x24
lea eax, [esp + 0x4c]
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.00446c30
add esp, 0x24
jmp dword [0x44e724]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e72c]
xor eax, eax
jmp 0x42aa63
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], 0
cmp ecx, dword [esp + 0x28]
setb al
xor edi, edi
jmp dword [eax*4 + 0x44e734]
mov edx, dword [esp]
mov word [edx], 0
mov eax, dword [esp + 0x10]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44e73c]
movzx ecx, word [esp + 0xde4]
xor ebp, ebp
test cx, cx
je 0x42a887
lea eax, [esp + 0xde4]
jmp 0x42a861
inc edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x44e734]
mov esi, dword [esp + 0x4c]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x429523
mov eax, 0xffffffff
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 0x5c], esi
mov esi, eax
lea eax, [esp + 0x5c]
push eax
push esi
push edi
push dword [esp + 0x38]
call fcn.00446990
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e744]
jmp dword [0x44e794]
lea eax, [esp + 0x48]
push dword [esp + 0x2c]
push 0
push 0x20019
push eax
push esi
call fcn.004468a0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e74c]
jmp dword [0x44e794]
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x74], 0x1fb719d5
mov dword [esp + 0x78], 0xe3541dbb
mov dword [esp + 0x7c], 0xe751e153
mov dword [esp + 0x80], 0xeb40e557
mov dword [esp + 0x84], 0xef32e95c
mov dword [esp + 0x88], 0xf35bed37
mov dword [esp + 0x8c], 0xf752f142
mov dword [esp + 0x90], 0xfb41f547
mov dword [esp + 0x94], 0xff1ef94f
mov dword [esp + 0x98], 0xc367fd31
mov dword [esp + 0x9c], 0xc771c177
mov dword [esp + 0xa0], 0xcb61c565
mov dword [esp + 0xa4], 0xcf7cc961
mov dword [esp + 0xa8], 0xd332cd67
mov dword [esp + 0xac], 0xd763d107
mov dword [esp + 0xb0], 0xdb6dd572
mov dword [esp + 0xb4], 0xdf69d961
mov dword [esp + 0xb8], 0xa307dd68
mov dword [esp + 0xbc], 0xa77aa10d
mov dword [esp + 0xc0], 0xab1ca574
mov dword [esp + 0xc4], 0xaf04a91b
mov dword [esp + 0xc8], 0xb31ead05
mov dword [esp + 0xcc], 0xb701b115
mov dword [esp + 0xd0], 0xbb43b568
mov dword [esp + 0xd4], 0xbf45b94f
mov dword [esp + 0xd8], 0x8345bd49
mov dword [esp + 0xdc], 0x874c814a
mov dword [esp + 0xe0], 0x8b7e8574
mov dword [esp + 0xe4], 0x8f798979
mov dword [esp + 0xe8], 0x93638d7d
mov dword [esp + 0xec], 0x97329161
mov dword [esp + 0xf0], 0x9b5c9563
mov dword [esp + 0xf4], 0x9f669960
mov dword [esp + 0xf8], 0x63929d5d
mov dword [esp + 0xfc], 0x67976190
mov dword [esp + 0x100], 0x6b9e6594
mov dword [esp + 0x104], 0x6f9869ae
mov dword [esp + 0x108], 0x73886dad
mov dword [esp + 0x10c], 0x778d718a
mov dword [esp + 0x110], 0x7ba6758e
mov word [esp + 0x114], 0x7978
lea eax, [esp + 0x114]
mov byte [eax + 4], 0
mov word [eax + 2], 0
xor eax, eax
mov cl, 0x85
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x74]
xor dl, cl
mov ch, 0x9d
sub ch, dl
mov byte [esp + eax + 0x74], ch
inc eax
dec cl
cmp eax, 0xa5
jne 0x429770
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 edx, [esp + 0x114]
mov eax, edx
lea edi, [esp + 0x916]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x61fd67d3
mov dword [esp + 0x78], 0x5df063fd
mov dword [esp + 0x7c], 0x59d35fcd
mov dword [esp + 0x80], 0x55c45bc9
mov dword [esp + 0x84], 0x51f257d8
mov dword [esp + 0x88], 0x4dc953f9
mov dword [esp + 0x8c], 0x49d24fda
mov dword [esp + 0x90], 0x45c34bd9
mov dword [esp + 0x94], 0x41a647c9
mov dword [esp + 0x98], 0x3dee43f6
mov dword [esp + 0x9c], 0x39833f98
mov dword [esp + 0xa0], 0x35a83bb7
mov dword [esp + 0xa4], 0x31a937a6
mov dword [esp + 0xa8], 0x2dbe33a6
mov dword [esp + 0xac], 0x29b12f82
mov dword [esp + 0xb0], 0x25a72bba
mov dword [esp + 0xb4], 0x21b727bf
mov dword [esp + 0xb8], 0x1d8623b6
mov dword [esp + 0xbc], 0x19851fb5
mov dword [esp + 0xc0], 0x15861b8e
mov dword [esp + 0xc4], 0x119f1785
mov dword [esp + 0xc8], 0xdf2139d
mov dword [esp + 0xcc], 0x9910fbb
mov dword [esp + 0xd0], 0x5870b85
mov dword [esp + 0xd4], 0x19f07a7
mov dword [esp + 0xd8], 0xfd94039b
mov dword [esp + 0xdc], 0xf91eff65
mov dword [esp + 0xe0], 0xf575fb55
mov dword [esp + 0xe4], 0xf17bf756
mov dword [esp + 0xe8], 0xed7ff37b
mov dword [esp + 0xec], 0xe971ef60
mov dword [esp + 0xf0], 0xe54eeb7f
mov dword [esp + 0xf4], 0xe174e754
mov dword [esp + 0xf8], 0xdd7ce371
mov dword [esp + 0xfc], 0xd94adf47
mov dword [esp + 0x100], 0xd557db47
mov dword [esp + 0x104], 0xd167d770
mov dword [esp + 0x108], 0xcd5ed35f
mov dword [esp + 0x10c], 0xc95fcf58
mov dword [esp + 0x110], 0xc55fcb59
mov dword [esp + 0x114], 0xc10dc760
mov dword [esp + 0x118], 0xbd0bc30d
mov dword [esp + 0x11c], 0xb903bf73
mov dword [esp + 0x120], 0xb504bb06
mov dword [esp + 0x124], 0xb17ab764
mov dword [esp + 0x128], 0xad7fb363
mov dword [esp + 0x12c], 0xa97daf7f
mov dword [esp + 0x130], 0xa536ab7b
mov dword [esp + 0x134], 0xa164a769
mov dword [esp + 0x138], 0x9d6aa368
mov dword [esp + 0x13c], 0x994e9f5f
mov dword [esp + 0x140], 0x95499b48
mov dword [esp + 0x144], 0x915a9744
mov dword [esp + 0x148], 0x8d409352
mov dword [esp + 0x14c], 0x89408f4f
mov dword [esp + 0x150], 0x85438b46
mov dword [esp + 0x154], 0x8122874a
mov word [esp + 0x158], 0x8380
mov byte [edx + 0x48], 0
mov word [edx + 0x46], 0
mov eax, 0x99
mov ecx, 0x66
nop
movzx edx, byte [esp + eax - 0x25]
mov esi, ecx
or esi, edx
not edx
or edx, eax
and edx, esi
mov bl, 2
sub bl, dl
mov byte [esp + eax - 0x25], bl
inc eax
dec ecx
cmp eax, 0x182
jne 0x429a40
lea edi, [esp + 0x918]
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 + 0x9fc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0xd77fc91d
mov dword [esp + 0x78], 0xd36cd57b
mov dword [esp + 0x7c], 0xdf61d163
mov dword [esp + 0x80], 0xdb70dd6f
mov dword [esp + 0x84], 0xa702d964
mov dword [esp + 0x88], 0xa308a577
mov dword [esp + 0x8c], 0xaf07a10a
mov dword [esp + 0x90], 0xab07ad03
mov dword [esp + 0x94], 0xb747a90c
mov dword [esp + 0x98], 0xb340b54b
mov dword [esp + 0x9c], 0xbf1ab140
mov dword [esp + 0xa0], 0xbb07bd6f
mov dword [esp + 0xa4], 0x8732b904
mov dword [esp + 0xa8], 0x83318537
mov dword [esp + 0xac], 0x8f2a8137
mov dword [esp + 0xb0], 0x8b348d5c
mov dword [esp + 0xb4], 0x973c893b
mov dword [esp + 0xb8], 0x9326953d
mov dword [esp + 0xbc], 0x9f21913d
mov dword [esp + 0xc0], 0x9b499d38
mov dword [esp + 0xc4], 0x67da9925
mov dword [esp + 0xc8], 0x63d165d0
mov dword [esp + 0xcc], 0x6fd961d3
mov dword [esp + 0xd0], 0x6b936dc8
mov dword [esp + 0xd4], 0x778d6997
mov dword [esp + 0xd8], 0x73bd7589
mov dword [esp + 0xdc], 0x7fb471ba
mov dword [esp + 0xe0], 0x7b867d8c
mov dword [esp + 0xe4], 0x47b97989
mov dword [esp + 0xe8], 0x43b345b5
mov dword [esp + 0xec], 0x4fe241b1
mov dword [esp + 0xf0], 0x4b844db3
mov dword [esp + 0xf4], 0x57ae49b0
mov dword [esp + 0xf8], 0x53a25595
mov dword [esp + 0xfc], 0x5faf51a0
mov dword [esp + 0x100], 0x5ba65dac
mov dword [esp + 0x104], 0x27d85996
mov dword [esp + 0x108], 0x23d825e5
mov dword [esp + 0x10c], 0x2fd521da
mov dword [esp + 0x110], 0x2b8e2dd6
mov word [esp + 0x114], 0x2928
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x2b03a6ae
mov ecx, 0x51
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x2b03a63a]
mov esi, eax
or esi, edx
mov edi, edx
not edi
or edi, ecx
and edi, esi
lea esi, [edi + edi]
not esi
add esi, edi
and esi, eax
mov edi, esi
and edi, 0x2b03a7fd
mov ebx, esi
and ebx, 2
or esi, 2
imul esi, ebx
xor ebx, 2
imul ebx, edi
add esi, ebx
mov ebx, esi
not ebx
and ebx, eax
and esi, ecx
sub ebx, esi
add bl, dl
add bl, 0x9a
mov byte [esp + eax - 0x2b03a63a], bl
inc eax
dec ecx
cmp eax, 0x2b03a755
jne 0x429c70
lea ebx, [esp + 0xb42]
lea eax, [esp + 0x74]
mov ecx, 0x28
mov edi, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x114]
lea edi, [esp + 0xbe2]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x74], 0x9f779955
mov dword [esp + 0x78], 0xa3549d7b
mov dword [esp + 0x7c], 0xa751a153
mov dword [esp + 0x80], 0xab40a557
mov dword [esp + 0x84], 0xaf72a95c
mov dword [esp + 0x88], 0xb358ad7f
mov dword [esp + 0x8c], 0xb75fb15a
mov dword [esp + 0x90], 0xbb5fb553
mov dword [esp + 0x94], 0xbf8fb964
mov dword [esp + 0x98], 0x4370bd88
mov dword [esp + 0x9c], 0x479a4170
mov dword [esp + 0xa0], 0x4bbf4597
mov dword [esp + 0xa4], 0x4fa249bc
mov dword [esp + 0xa8], 0x53a14dbf
mov dword [esp + 0xac], 0x578a51bf
mov dword [esp + 0xb0], 0x5bac5584
mov dword [esp + 0xb4], 0x5fb459ab
mov dword [esp + 0xb8], 0x638e5db5
mov dword [esp + 0xbc], 0x67916185
mov dword [esp + 0xc0], 0x6bb965b8
mov dword [esp + 0xc4], 0x6f9a699d
mov dword [esp + 0xc8], 0x73816d80
mov dword [esp + 0xcc], 0x77997183
mov dword [esp + 0xd0], 0x7b4375a8
mov dword [esp + 0xd4], 0x7f45794f
mov dword [esp + 0xd8], 0x3c57d49
mov dword [esp + 0xdc], 0x7cc01ca
mov dword [esp + 0xe0], 0xb3e0534
mov dword [esp + 0xe4], 0xf390939
mov dword [esp + 0xe8], 0x13230d3d
mov dword [esp + 0xec], 0x17f21121
mov dword [esp + 0xf0], 0x1bdc1523
mov dword [esp + 0xf4], 0x1f261920
mov dword [esp + 0xf8], 0x23121ddd
mov dword [esp + 0xfc], 0x27172110
mov dword [esp + 0x100], 0x2b1e2514
mov dword [esp + 0x104], 0x2f1829ee
mov dword [esp + 0x108], 0x33082ded
mov dword [esp + 0x10c], 0x370d310a
mov dword [esp + 0x110], 0x3be6350e
mov word [esp + 0x114], 0x3938
lea eax, [esp + 0x114]
mov byte [eax + 6], 0
mov dword [eax + 2], 0
mov eax, 0x5a
mov ecx, 0xa5
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x1a]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x3e
mov byte [esp + eax + 0x1a], dl
inc eax
dec ecx
cmp eax, 0x101
jne 0x429ed0
lea eax, [esp + 0xaa0]
lea edx, [esp + 0x74]
mov ecx, 0x28
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x114]
lea edi, [esp + 0xb40]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x74], 0xf96dfb0f
mov dword [esp + 0x78], 0xe578e715
mov dword [esp + 0x7c], 0xe17fe375
mov dword [esp + 0x80], 0xed04ef71
mov dword [esp + 0x84], 0xe90eeb70
mov dword [esp + 0x88], 0x957c9719
mov dword [esp + 0x8c], 0x9105937e
mov dword [esp + 0x90], 0x9d759f7d
mov dword [esp + 0x94], 0x99459b78
mov dword [esp + 0x98], 0x85548743
mov dword [esp + 0x9c], 0x81668354
mov dword [esp + 0xa0], 0x8d158f71
mov dword [esp + 0xa4], 0x891e8b10
mov dword [esp + 0xa8], 0xb527b719
mov dword [esp + 0xac], 0xb156b321
mov dword [esp + 0xb0], 0xbd20bf40
mov dword [esp + 0xb4], 0xb950bb2d
mov dword [esp + 0xb8], 0xa532a72f
mov dword [esp + 0xbc], 0xa13fa34f
mov dword [esp + 0xc0], 0xad5faf44
mov dword [esp + 0xc4], 0xa936ab37
mov dword [esp + 0xc8], 0x55c7573c
mov dword [esp + 0xcc], 0x51c753c5
mov dword [esp + 0xd0], 0x5d995fb4
mov dword [esp + 0xd4], 0x59835b81
mov dword [esp + 0xd8], 0x458b4783
mov dword [esp + 0xdc], 0x4188438e
mov dword [esp + 0xe0], 0x4d924f90
mov dword [esp + 0xe4], 0x49974b93
mov dword [esp + 0xe8], 0x75a97797
mov dword [esp + 0xec], 0x719e73ab
mov dword [esp + 0xf0], 0x7db07fad
mov dword [esp + 0xf4], 0x79a27ba4
mov dword [esp + 0xf8], 0x65b667b7
mov dword [esp + 0xfc], 0x61bd63b4
mov dword [esp + 0x100], 0x6db26fb0
mov dword [esp + 0x104], 0x69b46ba2
mov dword [esp + 0x108], 0x15cc17a7
mov dword [esp + 0x10c], 0x11cb13ce
mov dword [esp + 0x110], 0x1dfa1fca
mov word [esp + 0x114], 0x1b1c
lea ecx, [esp + 0x114]
mov byte [ecx + 6], 0
mov dword [ecx + 2], 0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0xab
xor dl, byte [esp + ecx + 0x74]
add dl, 0xa9
mov byte [esp + ecx + 0x74], dl
inc ecx
cmp ecx, 0xa7
jne case.default.0x42a169
lea edx, [esp + 0x9fe]
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 + 0xa9e]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x876]
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x918]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44e754]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x74], 0x282b2a25
mov word [esp + 0x78], 0
mov ecx, 0x37
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x3d]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
add edx, 0xa8ea1700
mov esi, edx
and esi, 0x6c
xor edx, 0xec
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx + 0x3d], dl
inc ecx
cmp ecx, 0x3d
jne 0x42a190
mov ecx, dword [0x453040]
test ecx, ecx
je 0x42a800
mov edx, dword [esp + 0x74]
xor esi, esi
mov edi, dword [0x453044]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42a7f4
inc esi
cmp ecx, esi
jne 0x42a1e0
jmp 0x42a800
mov ecx, dword [esp + 0x50]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x44e754]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + ecx + 0x60]
mov dword [esp + 0x74], 0x33023100
mov dword [esp + 0x78], 0x3f0e3d0c
mov dword [esp + 0x7c], 0x3b0a3908
mov dword [esp + 0x80], 0x471e4574
mov word [esp + 0x84], 0x4140
mov dword [esp + 0x86], 0
mov ecx, 0xb4
mov edx, 0x4b
movzx ebx, byte [esp + ecx - 0x40]
mov esi, ebx
not esi
or esi, edx
or ebx, ecx
and ebx, esi
add bl, 0x7c
mov byte [esp + ecx - 0x40], bl
inc ecx
dec edx
cmp ecx, 0xca
jne 0x42a260
movzx ecx, word [eax]
lea esi, [esp + 0xbe4]
test cx, cx
je 0x42a2b1
add eax, 2
nop
nop
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 0x42a2a0
mov word [esi], 0
movzx eax, word [esp + 0x74]
test ax, ax
je 0x42a2e1
lea ecx, [esp + 0x76]
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 0x42a2d0
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x3c], esi
jmp dword [eax*4 + 0x44e75c]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x44e75c]
mov word [esi - 2], di
lea eax, [esp + 0x44]
lea ecx, [esp + 0xbe4]
push dword [esp + 0x48]
push 0
push 0x20019
push eax
push ecx
call fcn.004468a0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e764]
mov dword [esp + 0x58], 0x800
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], 0x400
xor esi, esi
mov dword [esp + 0xc], 0
jmp 0x42a366
mov esi, dword [esp + 4]
inc esi
lea eax, [esp + 0x30]
lea edi, [esp + 0x1de4]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x58]
push eax
push edi
push ecx
push edx
push ebp
mov dword [esp + 0x18], esi
push esi
push dword [esp + 0x5c]
call fcn.00446f00
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e76c]
test byte [esp + 0xc], 1
sete al
mov edx, dword [esp + 0x54]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44e774]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x44e784]
mov dword [esp + 0x14], 0x7f197939
mov dword [esp + 0x18], 0x63f17d1b
mov dword [esp + 0x1c], 0x67f461f5
mov dword [esp + 0x20], 0x6b6a65f0
lea eax, [esp + 0x24]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
nop
mov eax, ecx
add al, 0x6a
xor al, byte [esp + ecx + 0x14]
add al, 0xee
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0x13
jne 0x42a400
mov dword [esp + 8], edx
movzx esi, word [esp + 0x14]
test si, si
je 0x42a45c
lea edx, [esp + 0x74]
lea ebx, [esp + 0x14]
mov ebp, edx
jmp 0x42a438
movzx esi, word [ebx]
test si, si
je 0x42a45c
movzx eax, word [edx]
test ax, ax
je 0x42a45a
add edx, 2
add ebx, 2
lea ecx, [ebp + 2]
cmp ax, si
je 0x42a452
mov ebp, ecx
mov edx, ecx
je 0x42a430
lea ebx, [esp + 0x14]
jmp 0x42a430
xor ebp, ebp
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x44e77c]
xor eax, eax
cmp dword [esp + 8], 3
sete al
lea ebp, [esp + 0x74]
jmp dword [eax*4 + 0x44e784]
mov dword [esp + 0x14], 0xf915fb0c
mov dword [esp + 0x18], 0xe57be765
mov dword [esp + 0x1c], 0xe173e37d
mov dword [esp + 0x20], 0xed02ef7e
mov dword [esp + 0x24], 0xebec
mov eax, 0x2b
mov ecx, 0x54
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
and edx, 0x77
xor edx, 0xf7
or edx, eax
xor dl, byte [esp + eax - 0x17]
add dl, 0xa9
mov byte [esp + eax - 0x17], dl
inc eax
dec ecx
cmp eax, 0x3f
jne 0x42a4c0
movzx edi, word [esp + 0x14]
lea eax, [esp + 0x74]
test di, di
je 0x42a616
lea ecx, [esp + 0x74]
lea edx, [esp + 0x14]
mov eax, ecx
jmp 0x42a50c
movzx edi, word [edx]
test di, di
je 0x42a616
movzx esi, word [ecx]
test si, si
je 0x42a614
add ecx, 2
add edx, 2
lea ebx, [eax + 2]
cmp si, di
je 0x42a52a
mov eax, ebx
mov ecx, ebx
je 0x42a500
lea edx, [esp + 0x14]
jmp 0x42a500
mov eax, dword [esp + 0x30]
cmp eax, 2
jae 0x42a551
mov ebp, dword [esp]
jmp 0x42a5f3
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x42a593
mov dword [esp + 0xc], ecx
xor esi, esi
lea edi, [esp + 0x1de4]
mov ebp, dword [esp]
nop
nop
nop
movzx ebx, word [edi]
xor ecx, ecx
test bx, bx
setne cl
lea edi, [edi + ecx*2]
mov word [ebp], bx
add ebp, 2
inc esi
cmp edx, esi
jne 0x42a570
mov dword [esp], ebp
sub eax, esi
mov ecx, dword [esp + 0xc]
cmp ecx, 3
mov ebp, dword [esp]
jb 0x42a5f3
nop
nop
nop
nop
nop
movzx ecx, word [edi]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp], cx
movzx ecx, word [edi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
add ebp, 8
lea edi, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x42a5a0
mov dword [ebp], 0x20003a
add ebp, 4
mov dword [esp], ebp
mov al, 1
mov dword [esp + 0xc], eax
mov esi, dword [esp + 4]
inc esi
lea ebp, [esp + 0x74]
jmp 0x42a366
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44e78c]
mov eax, dword [esp + 0x30]
cmp eax, 2
mov edi, dword [esp + 4]
jae 0x42a639
mov edx, dword [esp]
jmp 0x42a6fd
shr eax, 1
lea ebx, [eax - 1]
mov esi, eax
lea ecx, [esp + 0x1de4]
and esi, 3
mov edx, dword [esp]
je 0x42a68c
mov dword [esp + 8], ebx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [ecx]
mov ebp, edx
xor edx, edx
test bx, bx
setne dl
lea ecx, [ecx + edx*2]
mov edx, ebp
mov word [ebp], bx
add edx, 2
inc edi
cmp esi, edi
jne 0x42a660
sub eax, edi
lea ebp, [esp + 0x74]
mov edi, dword [esp + 4]
mov ebx, dword [esp + 8]
cmp ebx, 3
jb 0x42a6fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edx
movzx edx, word [ecx]
xor ebx, ebx
test dx, dx
setne bl
lea esi, [ecx + ebx*2]
mov word [ebp], dx
movzx ecx, word [ecx + ebx*2]
xor edx, edx
test cx, cx
setne dl
lea edi, [esi + edx*2]
mov word [ebp + 2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [edi + edx*2]
mov word [ebp + 4], cx
movzx edx, word [edi + edx*2]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebp + 6], dx
lea edx, [ebp + 8]
lea ecx, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x42a6a0
lea ebp, [esp + 0x74]
mov edi, dword [esp + 4]
mov word [edx], 0xa
add edx, 2
mov dword [esp], edx
mov al, 1
mov dword [esp + 0x10], eax
inc edi
mov esi, edi
jmp 0x42a366
mov eax, dword [esp + 0x44]
mov dword [esp + 0x14], 0x282b2a25
mov word [esp + 0x18], 0
mov ecx, 0x37
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x23]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
add edx, 0xa8ea1700
mov esi, edx
and esi, 0x6c
xor edx, 0xec
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx - 0x23], dl
inc ecx
cmp ecx, 0x3d
jne 0x42a740
mov ecx, dword [0x453040]
test ecx, ecx
je 0x42a7b0
mov edx, dword [esp + 0x14]
xor esi, esi
mov edi, dword [0x453044]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42a7a0
inc esi
cmp ecx, esi
jne 0x42a790
jmp 0x42a7b0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x42a7c2
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x40]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x44e75c]
push eax
push 1
push dword [0x453048]
push ecx
call fcn.00443090
add esp, 0x10
mov edi, dword [esp + 0x40]
inc edi
xor eax, eax
cmp di, 0x35
setb al
mov esi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x44e75c]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42a828
nop
nop
nop
nop
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp dword [0x44e794]
push esi
call fcn.0040c720
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [esp + 0x28]
setb al
jmp dword [eax*4 + 0x44e734]
push eax
push 1
push dword [0x453048]
push ecx
call fcn.00443090
add esp, 0x10
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp dword [0x44e794]
add ebp, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
mov edx, dword [esp]
je 0x42a887
cmp eax, edx
jae 0x42a887
movzx esi, cx
cmp esi, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp esi, 0x80
jb 0x42a850
mov edx, ecx
jmp 0x42a850
lea eax, [ebp + 1]
mov ebx, eax
push eax
mov esi, edx
call fcn.0040c710
add esp, 4
lea ecx, [esp + 0xde4]
cmp ecx, esi
setb cl
mov dword [esp + 8], eax
test ebp, ebp
jle 0x42a994
mov eax, dword [esp + 8]
test cl, cl
je 0x42a994
mov eax, dword [esp + 8]
lea edi, [eax + ebp]
add ebx, eax
lea edx, [esp + 0xde6]
mov dword [esp + 4], ebx
mov dword [esp + 0xc], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [edx - 2]
test cx, cx
je 0x42a994
cmp cx, 0x7f
ja 0x42a900
mov byte [eax], cl
mov esi, 1
jmp 0x42a980
mov esi, eax
not esi
mov edi, esi
mov ebx, dword [esp + 4]
and edi, ebx
xor esi, ebx
lea edi, [esi + edi*2]
movzx esi, cx
cmp edi, 2
jb 0x42a940
cmp esi, 0x7ff
ja 0x42a940
mov ebx, ecx
shr ebx, 6
add bl, 0xc0
mov byte [eax], bl
and cl, 0x3f
or cl, 0x80
mov byte [eax + 1], cl
mov esi, 2
mov edi, dword [esp + 0xc]
jmp 0x42a980
mov dword [esp + 0x10], esi
xor esi, esi
cmp edi, 3
mov edi, dword [esp + 0xc]
jb 0x42a980
mov esi, dword [esp + 0x10]
mov ebx, esi
shr ebx, 0xc
or bl, 0xe0
mov byte [eax], bl
mov ebx, esi
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
and cl, 0x3f
or cl, 0x80
mov byte [eax + 2], cl
mov esi, 3
nop
nop
nop
nop
nop
nop
nop
add eax, esi
cmp eax, edi
jae 0x42a994
lea ecx, [edx + 2]
cmp edx, dword [esp]
mov edx, ecx
jb 0x42a8e0
mov byte [eax], 0
mov dword [esp + 0x74], 0xb3aea959
mov dword [esp + 0x78], 0xd7c3bab5
mov dword [esp + 0x7c], 0xd0d4d2c9
mov dword [esp + 0x80], 0xdfdf3617
mov dword [esp + 0x84], 0xc0dddac4
mov dword [esp + 0x88], 0xc0c43d1f
mov dword [esp + 0x8c], 0xd2dad8da
mov dword [esp + 0x90], 0xc3ce07c3
mov word [esp + 0x94], 0x79cc
mov dword [esp + 0x96], 0
mov byte [esp + 0x9a], 0
mov eax, 0xc943efba
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x36bc10ba]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x5e
mov byte [esp + eax + 0x36bc10ba], cl
inc eax
cmp eax, 0xc943efe1
jne 0x42aa10
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x21f8]
push ebp
mov esi, dword [esp + 0xc]
push esi
push eax
call fcn.0040d180
jmp dword [0x44e79c]
push esi
mov esi, eax
call fcn.0040c720
mov eax, esi
add esp, 4
and al, 1
add esp, 0x21e4
pop esi
pop edi
pop ebx
pop ebp
ret