Function at 0x425004
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x1dec
call fcn.00408500
push eax
sub esp, 0x3fc
mov dword [ebp - 0x1c], esp
push eax
mov dword [ebp - 0x28], esp
sub esp, 0x14
mov ebx, esp
sub esp, 0x14
mov esi, esp
sub esp, 0x24
mov dword [ebp - 0x30], esp
mov dword [ebp - 0x1df6], 0x32833093
mov dword [ebp - 0x1df2], 0x36723476
mov dword [ebp - 0x1dee], 0x2a9a288e
mov dword [ebp - 0x1dea], 0x2e9f2c9f
mov dword [ebp - 0x1de6], 0x228d2086
mov dword [ebp - 0x1de2], 0x26962496
mov dword [ebp - 0x1dde], 0x1aab1862
mov word [ebp - 0x1dda], 0x1c1b
xor eax, eax
nop
movzx edx, byte [ebp + eax - 0x1df6]
lea ecx, [eax - 0x12fa17f9]
xor ecx, edx
mov edx, ecx
xor edx, 0x11
and ecx, 0x6e
add ecx, ecx
sub ecx, edx
add cl, 0xd9
mov byte [ebp + eax - 0x1df6], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x1e
jb case.default.0x423d68
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x1df6]
push 0
push 0
push 0x20019
push eax
mov dword [ebp - 0x14], ecx
push ecx
call fcn.0043e590
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x445838]
lea eax, [ebp - 0x74]
lea ecx, [ebp - 0x38]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [ebp - 0x3c]
call fcn.0043e940
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445840]
xor ebx, ebx
jmp 0x42531d
mov dword [ebp - 0x10], esi
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x20], 0
cmp ecx, dword [ebp - 0x38]
setb al
xor esi, esi
mov dword [ebp - 0x24], ebx
jmp dword [eax*4 + 0x445848]
mov eax, dword [ebp - 0x14]
mov word [eax], 0
mov ebx, dword [ebp - 0x20]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x445850]
movzx ecx, word [ebp - 0x1df6]
xor edi, edi
test cx, cx
je 0x42524b
lea eax, [ebp - 0x1df4]
jmp 0x42521c
inc esi
xor eax, eax
cmp esi, dword [ebp - 0x38]
setb al
jmp dword [eax*4 + 0x445848]
mov dword [ebp - 0x34], esi
mov esi, dword [ebp - 0x74]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x423e24
mov eax, 0xffffffff
push eax
call fcn.00408620
add esp, 4
mov edi, eax
mov dword [ebp - 0x70], esi
lea eax, [ebp - 0x70]
push eax
push edi
mov esi, dword [ebp - 0x34]
push esi
push dword [ebp - 0x3c]
call fcn.0043e690
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445858]
jmp dword [0x4458f8]
lea eax, [ebp - 0x50]
push dword [ebp - 0x3c]
push 0
push 0x20019
push eax
mov dword [ebp - 0x2c], edi
push edi
call fcn.0043e590
add esp, 0x14
mov ecx, dword [case.0x423d68.12]
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445870]
mov edi, dword [ebp - 0x2c]
jmp dword [0x4458f8]
mov dword [ebp - 0x888], 0x3aa038fa
mov dword [ebp - 0x884], 0x3eaf3c98
mov dword [ebp - 0x880], 0x32a230a0
mov dword [ebp - 0x87c], 0x369334ac
mov dword [ebp - 0x878], 0x2a8528a3
mov dword [ebp - 0x874], 0x2eb42c9c
mov dword [ebp - 0x870], 0x228520b1
mov dword [ebp - 0x86c], 0x26b224bc
mov dword [ebp - 0x868], 0x1af918b4
mov dword [ebp - 0x864], 0x1eb81ca6
mov dword [ebp - 0x860], 0x1282108c
mov dword [ebp - 0x85c], 0x16b214b2
mov dword [ebp - 0x858], 0xa97088e
mov dword [ebp - 0x854], 0xeed0cac
mov dword [ebp - 0x850], 0x29400bc
mov dword [ebp - 0x84c], 0x69604a1
mov dword [ebp - 0x848], 0xfa6af88e
mov dword [ebp - 0x844], 0xfe58fc6f
mov dword [ebp - 0x840], 0xf25df062
mov dword [ebp - 0x83c], 0xf667f443
mov dword [ebp - 0x838], 0xea4fe868
mov dword [ebp - 0x834], 0xee71ec72
mov dword [ebp - 0x830], 0xe272e04a
mov dword [ebp - 0x82c], 0xe62ce44f
mov dword [ebp - 0x828], 0xda0ed834
mov dword [ebp - 0x824], 0xde1edc0e
mov dword [ebp - 0x820], 0xd217d019
mov dword [ebp - 0x81c], 0xd601d403
mov dword [ebp - 0x818], 0xca1ac806
mov dword [ebp - 0x814], 0xce1ccc1a
mov dword [ebp - 0x810], 0xc265c01e
mov dword [ebp - 0x80c], 0xc607c410
mov dword [ebp - 0x808], 0xba71b80f
mov dword [ebp - 0x804], 0xbe6dbc7a
mov dword [ebp - 0x800], 0xb260b06f
mov dword [ebp - 0x7fc], 0xb661b463
mov dword [ebp - 0x7f8], 0xaa7ba875
mov dword [ebp - 0x7f4], 0xae7bac6a
mov dword [ebp - 0x7f0], 0xa276a079
mov dword [ebp - 0x7ec], 0xa609a475
mov dword [ebp - 0x7e8], 0x98a7
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xbf
xor cl, byte [ebp + eax - 0x888]
add cl, 8
mov byte [ebp + eax - 0x888], cl
inc eax
cmp eax, 0xa4
jne 0x424040
lea edi, [ebp - 0x9cc]
lea eax, [ebp - 0x888]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7e8]
lea edi, [ebp - 0x92c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x60d66e30
mov dword [ebp - 0x884], 0x64d162c2
mov dword [ebp - 0x880], 0x78d466da
mov dword [ebp - 0x87c], 0x7cdd7ac6
mov dword [ebp - 0x878], 0x70d37ec9
mov dword [ebp - 0x874], 0x74ca7226
mov dword [ebp - 0x870], 0x48d376cb
mov dword [ebp - 0x86c], 0x4cfc4af6
mov dword [ebp - 0x868], 0x402f4efe
mov dword [ebp - 0x864], 0x4417421f
mov dword [ebp - 0x860], 0x580446e9
mov dword [ebp - 0x85c], 0x5ce95aec
mov dword [ebp - 0x858], 0x50fa5eef
mov dword [ebp - 0x854], 0x54e752ef
mov dword [ebp - 0x850], 0xa8f25603
mov dword [ebp - 0x84c], 0xac18aa1b
mov dword [ebp - 0x848], 0xa010ae14
mov dword [ebp - 0x844], 0xa40fa21f
mov dword [ebp - 0x840], 0xb81ea6f2
mov dword [ebp - 0x83c], 0xbc1fba07
mov dword [ebp - 0x838], 0xb008be02
mov dword [ebp - 0x834], 0xb4d3b202
mov dword [ebp - 0x830], 0x8812b6e8
mov dword [ebp - 0x82c], 0x8c388a3a
mov dword [ebp - 0x828], 0x80288e2c
mov dword [ebp - 0x824], 0x843d8238
mov dword [ebp - 0x820], 0x98e78622
mov dword [ebp - 0x81c], 0x9c2e9aca
mov dword [ebp - 0x818], 0x902c9e3f
mov dword [ebp - 0x814], 0x94209218
mov dword [ebp - 0x810], 0xe8329621
mov dword [ebp - 0x80c], 0xec47ea54
mov dword [ebp - 0x808], 0xe05deebd
mov dword [ebp - 0x804], 0xe445e25e
mov dword [ebp - 0x800], 0xf85be65c
mov dword [ebp - 0x7fc], 0xfc48fa5c
mov dword [ebp - 0x7f8], 0xf0a0fe51
mov dword [ebp - 0x7f4], 0xf447f244
mov dword [ebp - 0x7f0], 0xc848f649
mov dword [ebp - 0x7ec], 0xcc70ca76
mov dword [ebp - 0x7e8], 0xc086ce61
mov dword [ebp - 0x7e4], 0xc4b4c2b2
mov dword [ebp - 0x7e0], 0xd884c6b0
mov dword [ebp - 0x7dc], 0xdc9dda9f
mov dword [ebp - 0x7d8], 0xd0abdead
mov dword [ebp - 0x7d4], 0xd4a0d2a0
mov dword [ebp - 0x7d0], 0x28a6d6a4
mov dword [ebp - 0x7cc], 0x2c8f2a58
mov dword [ebp - 0x7c8], 0x206d2e5e
mov dword [ebp - 0x7c4], 0x246b2269
mov dword [ebp - 0x7c0], 0x38572664
mov dword [ebp - 0x7bc], 0x3c4a3a49
mov dword [ebp - 0x7b8], 0x304b3e4d
mov dword [ebp - 0x7b4], 0x34413273
mov dword [ebp - 0x7b0], 0x8413674
mov dword [ebp - 0x7ac], 0xc7c0a7f
mov dword [ebp - 0x7a8], 0xa30e7b
mov word [ebp - 0x7a4], 0x201
mov byte [ebp - 0x7a2], 0
mov eax, 0x45
mov ecx, 0xba
nop
nop
nop
movzx esi, byte [ebp + eax - 0x8cd]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xd8
mov byte [ebp + eax - 0x8cd], dl
inc eax
dec ecx
cmp eax, 0x12c
jne 0x4242e0
lea edi, [ebp - 0xab2]
lea eax, [ebp - 0x888]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7a4]
mov ecx, 1
lea edi, [ebp - 0x9ce]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x748a72ac
mov dword [ebp - 0x884], 0x8857696
mov dword [ebp - 0x880], 0xcf80af6
mov dword [ebp - 0x87c], 0xe90ef2
mov dword [ebp - 0x878], 0x4ef02f5
mov dword [ebp - 0x874], 0x18e106da
mov dword [ebp - 0x870], 0x1ce21aff
mov dword [ebp - 0x86c], 0x10fa1efe
mov dword [ebp - 0x868], 0x142212fd
mov dword [ebp - 0x864], 0x28291626
mov dword [ebp - 0x860], 0x2cc72a19
mov dword [ebp - 0x85c], 0x20da2ef2
mov dword [ebp - 0x858], 0x24df22d5
mov dword [ebp - 0x854], 0x38d826da
mov dword [ebp - 0x850], 0x3cd73ac2
mov dword [ebp - 0x84c], 0x30cd3eed
mov dword [ebp - 0x848], 0x34d532ce
mov dword [ebp - 0x844], 0xc8cb36cc
mov dword [ebp - 0x840], 0xcc38ca2c
mov dword [ebp - 0x83c], 0xc010ce21
mov dword [ebp - 0x838], 0xc437c234
mov dword [ebp - 0x834], 0xd838c639
mov dword [ebp - 0x830], 0xdc20da26
mov dword [ebp - 0x82c], 0xd016de31
mov dword [ebp - 0x828], 0xd4e4d2e2
mov dword [ebp - 0x824], 0xe814d6e0
mov dword [ebp - 0x820], 0xec2dea2f
mov dword [ebp - 0x81c], 0xe0dbeedd
mov dword [ebp - 0x818], 0xe4d0e2d0
mov dword [ebp - 0x814], 0xf8d6e6d4
mov dword [ebp - 0x810], 0xfc1ffac8
mov dword [ebp - 0x80c], 0xf03dfece
mov dword [ebp - 0x808], 0xf43bf239
mov dword [ebp - 0x804], 0x88c7f634
mov dword [ebp - 0x800], 0x8cba8ab9
mov dword [ebp - 0x7fc], 0x80bb8ebd
mov dword [ebp - 0x7f8], 0x84b18243
mov dword [ebp - 0x7f4], 0x98b18644
mov dword [ebp - 0x7f0], 0x9cac9aaf
mov dword [ebp - 0x7ec], 0x90739eab
mov dword [ebp - 0x7e8], 0x9291
mov eax, 0x11eb9
mov ecx, 0xfffdc346
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0xc3
mov edx, eax
and edx, 0x3c
or edx, esi
xor dl, byte [ebp + eax - 0x12741]
xor dl, 0xc3
add dl, 0x38
mov byte [ebp + eax - 0x12741], dl
inc eax
dec ecx
cmp eax, 0x11f5d
jne 0x4244e0
lea edi, [ebp - 0x92a]
lea eax, [ebp - 0x888]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7e8]
lea edi, [ebp - 0x88a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x9f379d51
mov dword [ebp - 0x884], 0x63d061c3
mov dword [ebp - 0x880], 0x67d565cb
mov dword [ebp - 0x87c], 0x6bcc69c7
mov dword [ebp - 0x878], 0x6fb26dd8
mov dword [ebp - 0x874], 0x73d471bf
mov dword [ebp - 0x870], 0x77df75d2
mov dword [ebp - 0x86c], 0x7bdf79db
mov dword [ebp - 0x868], 0x7f8f7da0
mov dword [ebp - 0x864], 0x43ac41b4
mov dword [ebp - 0x860], 0x479a45b4
mov dword [ebp - 0x85c], 0x4bff4987
mov dword [ebp - 0x858], 0x4fe24df8
mov dword [ebp - 0x854], 0x53fd51ff
mov dword [ebp - 0x850], 0x578a55ff
mov dword [ebp - 0x84c], 0x5be85988
mov dword [ebp - 0x848], 0x5ff85df3
mov dword [ebp - 0x844], 0x238e2189
mov dword [ebp - 0x840], 0x27952581
mov dword [ebp - 0x83c], 0x2be529f4
mov dword [ebp - 0x838], 0x2f9a2d99
mov dword [ebp - 0x834], 0x339d319c
mov dword [ebp - 0x830], 0x379d359b
mov dword [ebp - 0x82c], 0x3bc339e4
mov dword [ebp - 0x828], 0x3fc93dcf
mov dword [ebp - 0x824], 0x3c101f5
mov dword [ebp - 0x820], 0x7c005c2
mov dword [ebp - 0x81c], 0xbfe09f8
mov dword [ebp - 0x818], 0xffd0dfd
mov dword [ebp - 0x814], 0x13e311e1
mov dword [ebp - 0x810], 0x17b215e5
mov dword [ebp - 0x80c], 0x1bd819eb
mov dword [ebp - 0x808], 0x1fe61de4
mov dword [ebp - 0x804], 0xe312e121
mov dword [ebp - 0x800], 0xe717e514
mov dword [ebp - 0x7fc], 0xeb1ee918
mov dword [ebp - 0x7f8], 0xef1ced2e
mov dword [ebp - 0x7f4], 0xf304f131
mov dword [ebp - 0x7f0], 0xf701f502
mov dword [ebp - 0x7ec], 0xfb26f90e
mov word [ebp - 0x7e8], 0xfdfc
mov byte [ebp - 0x7e6], 0
mov eax, 0xf3947e7c
nop
nop
nop
nop
movzx ecx, byte [ebp + eax + 0xc6b78fc]
xor ecx, eax
mov edx, 0x41
sub edx, ecx
add ecx, 0x3e
and edx, 0x9e
and ecx, 0x61
sub ecx, edx
mov byte [ebp + eax + 0xc6b78fc], cl
inc eax
cmp eax, 0xf3947f1f
jne 0x4246e0
lea edx, [ebp - 0xbf6]
lea eax, [ebp - 0x888]
mov ecx, 0x28
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0x7e8]
lea edi, [ebp - 0xb56]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [ebp - 0x888], 0x66fc649e
mov dword [ebp - 0x884], 0x1a8b1884
mov dword [ebp - 0x880], 0x1e8e1c84
mov dword [ebp - 0x87c], 0x12f71080
mov dword [ebp - 0x878], 0x16f91487
mov dword [ebp - 0x874], 0xaef08e8
mov dword [ebp - 0x870], 0xe940ced
mov dword [ebp - 0x86c], 0x2e400ec
mov dword [ebp - 0x868], 0x6d404ef
mov dword [ebp - 0x864], 0x3ae738d2
mov dword [ebp - 0x860], 0x3ed13ceb
mov dword [ebp - 0x85c], 0x32a430c0
mov dword [ebp - 0x858], 0x36a934a7
mov dword [ebp - 0x854], 0x2ab628a8
mov dword [ebp - 0x850], 0x2ec12cb0
mov dword [ebp - 0x84c], 0x22b320df
mov dword [ebp - 0x848], 0x26c324bc
mov dword [ebp - 0x844], 0xda45d8be
mov dword [ebp - 0x840], 0xde4edc3e
mov dword [ebp - 0x83c], 0xd22ed033
mov dword [ebp - 0x838], 0xd641d446
mov dword [ebp - 0x834], 0xca56c84b
mov dword [ebp - 0x830], 0xce56cc54
mov dword [ebp - 0x82c], 0xc208c023
mov dword [ebp - 0x828], 0xc612c410
mov dword [ebp - 0x824], 0xfa3af812
mov dword [ebp - 0x820], 0xfe3bfc3d
mov dword [ebp - 0x81c], 0xf225f02f
mov dword [ebp - 0x818], 0xf626f422
mov dword [ebp - 0x814], 0xea38e826
mov dword [ebp - 0x810], 0xee09ec3a
mov dword [ebp - 0x80c], 0xe223e03c
mov dword [ebp - 0x808], 0xe62de42b
mov dword [ebp - 0x804], 0x9a499826
mov dword [ebp - 0x800], 0x9e4c9c4b
mov dword [ebp - 0x7fc], 0x9245904f
mov dword [ebp - 0x7f8], 0x96479451
mov dword [ebp - 0x7f4], 0x8a5f8856
mov dword [ebp - 0x7f0], 0x8e5a8c5d
mov dword [ebp - 0x7ec], 0x826d8059
mov dword [ebp - 0x7e8], 0x8483
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xbb
xor cl, byte [ebp + eax - 0x888]
add cl, 0x28
mov byte [ebp + eax - 0x888], cl
inc eax
cmp eax, 0xa4
jne case.default.0x424960
lea eax, [ebp - 0xb54]
lea esi, [ebp - 0x888]
mov edi, eax
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [ebp - 0x7e8]
lea edi, [ebp - 0xab4]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [ebp - 0x9cc]
mov dword [ebp - 0x88], ecx
lea ecx, [ebp - 0xab2]
mov dword [ebp - 0x84], ecx
lea ecx, [ebp - 0x92a]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x78], eax
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x445878]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x888], 0x16171819
mov word [ebp - 0x884], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xb6
xor dl, byte [ebp + ecx - 0x888]
add dl, 0x50
mov byte [ebp + ecx - 0x888], dl
inc ecx
cmp ecx, 6
jne 0x424990
mov ecx, dword [0x44aea0]
test ecx, ecx
je 0x4251c0
mov edx, dword [ebp - 0x888]
xor esi, esi
mov edi, dword [0x44aea4]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb430e561
je 0x4251aa
inc esi
cmp ecx, esi
jne 0x4249d0
jmp 0x4251c0
mov ecx, dword [ebp - 0x54]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x445878]
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp + ecx - 0x88]
mov dword [ebp - 0x888], 0xe635e433
mov dword [ebp - 0x884], 0x9a499837
mov dword [ebp - 0x880], 0x9e4d9c4b
mov dword [ebp - 0x87c], 0x9279904f
mov word [ebp - 0x878], 0x9493
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp + ecx - 0x888]
lea esi, [ecx + 0x3b]
mov edi, esi
and edi, edx
or esi, edx
lea edx, [edi + edi]
not edx
add edx, edi
and edx, esi
add dl, 0x28
mov byte [ebp + ecx - 0x888], dl
mov edx, ecx
and edx, 2
mov esi, ecx
xor esi, 0x94fd1882
lea edx, [esi + edx*2]
and ecx, 1
or edx, 1
add edx, ecx
mov ecx, edx
not ecx
and ecx, 0x94fd1882
and edx, 0x7d
sub edx, ecx
mov ecx, edx
cmp edx, 0x12
jb 0x424a50
movzx ecx, word [eax]
lea edx, [ebp - 0xdf6]
test cx, cx
je 0x424ad1
add eax, 2
nop
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 0x424ac0
mov word [edx], 0
movzx eax, word [ebp - 0x888]
test ax, ax
je 0x424b10
lea ecx, [ebp - 0x886]
mov edi, dword [ebp - 0x10]
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x424af0
jmp 0x424b13
mov edi, dword [ebp - 0x10]
mov word [edx], 0
mov cx, 0x31
mov eax, dword [case.0x424960.3]
mov dword [ebp - 0x58], edx
jmp case.0x424960.1
mov ecx, dword [ebp - 0x5c]
inc ecx
mov eax, dword [case.0x424960.3]
mov edx, dword [ebp - 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp cx, 0x35
setb al
jmp dword [eax*4 + 0x445890]
mov dword [ebp - 0x5c], ecx
mov word [edx - 2], cx
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0xdf6]
push dword [ebp - 0x50]
push 0
push 0x20019
push eax
push ecx
call fcn.0043e590
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445898]
mov dword [ebp - 0x6c], 0x800
mov eax, dword [ebp - 0x28]
mov dword [eax], 0x400
xor edx, edx
mov dword [ebp - 0x48], 0
jmp 0x424bae
mov edx, dword [ebp - 0x64]
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x6c]
push dword [ebp - 0x28]
push dword [ebp - 0x1c]
push eax
push ecx
lea eax, [ebp - 0x888]
push eax
mov dword [ebp - 0x64], edx
push edx
push dword [ebp - 0x4c]
call fcn.0043ec20
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4458a0]
test byte [ebp - 0x48], 1
sete al
mov edx, dword [ebp - 0x68]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4458a8]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x4458c8]
mov dword [ebp - 0x18], edx
mov dword [ebx], 0x56b65492
mov dword [ebx + 4], 0x4ad648b4
mov dword [ebx + 8], 0x4ed34cde
mov dword [ebx + 0xc], 0x424140db
mov word [ebx + 0x10], 0
mov ecx, 0xd952a00b
mov edx, 0x26ad5ff4
nop
nop
movzx eax, byte [ebx + ecx + 0x26ad5ff5]
mov esi, ecx
and esi, eax
add esi, esi
sub esi, eax
add esi, edx
and esi, ecx
add esi, esi
sub eax, esi
add eax, ecx
mov esi, eax
and esi, 0x27
xor eax, 0x356affa7
lea esi, [eax + esi*2]
and eax, 1
xor esi, 1
lea eax, [esi + eax*2]
mov byte [ebx + ecx + 0x26ad5ff5], al
inc ecx
dec edx
cmp ecx, 0xd952a01d
jne 0x424c40
movzx eax, word [ebx]
lea ecx, [ebp - 0x888]
test ax, ax
je 0x424cc6
lea edx, [ebp - 0x888]
mov edi, ebx
mov ecx, edx
jmp 0x424caf
add ecx, 2
mov edx, ecx
mov edi, ebx
movzx eax, word [edi]
test ax, ax
je 0x424cc6
movzx esi, word [edx]
test si, si
je 0x424cc4
cmp si, ax
jne 0x424ca0
add edx, 2
add edi, 2
jmp 0x424ca7
xor ecx, ecx
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4458b0]
xor eax, eax
cmp dword [ebp - 0x18], 3
sete al
mov edi, dword [ebp - 0x10]
jmp dword [eax*4 + 0x4458c8]
jmp dword [0x4458d4]
mov dword [edi], 0x98268655
mov dword [edi + 4], 0x9c289a2a
mov dword [edi + 8], 0x90209e2a
mov dword [edi + 0xc], 0x94379223
mov word [edi + 0x10], 0x9695
mov byte [edi + 0x12], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x1a
mov edx, ecx
xor edx, 0x4612b2ed
add edx, esi
movzx esi, byte [edi + ecx]
xor edx, esi
add edx, 0xcf6a6897
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov byte [edi + ecx], dl
inc ecx
add eax, 2
cmp ecx, 0x13
jne 0x424d20
jmp case.0x424960.22
lea eax, [ebp - 0x888]
jmp dword [0x4458dc]
mov dword [edi], 0x98268655
mov dword [edi + 4], 0x9c289a2a
mov dword [edi + 8], 0x90209e2a
mov dword [edi + 0xc], 0x94379223
mov word [edi + 0x10], 0x9695
mov byte [edi + 0x12], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x1a
mov edx, ecx
xor edx, 0x4612b2ed
add edx, esi
movzx esi, byte [edi + ecx]
xor edx, esi
add edx, 0xcf6a6897
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov byte [edi + ecx], dl
inc ecx
add eax, 2
cmp ecx, 0x13
jne 0x424da0
movzx esi, word [edi]
test si, si
je 0x424d60
lea ecx, [ebp - 0x888]
mov edx, edi
mov eax, ecx
jmp 0x424e02
add eax, 2
mov ecx, eax
mov edi, dword [ebp - 0x10]
mov edx, edi
movzx esi, word [edx]
test si, si
je 0x424e30
movzx edi, word [ecx]
test di, di
je 0x424e20
cmp di, si
jne 0x424df0
add ecx, 2
add edx, 2
mov edi, dword [ebp - 0x10]
jmp 0x424dfa
xor eax, eax
mov edi, dword [ebp - 0x10]
jmp dword [0x4458dc]
jmp dword [0x4458dc]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4458e0]
jmp case.0x424960.19
mov edi, dword [ebp - 0x10]
jmp dword [0x4458b8]
mov eax, dword [ebp - 0x28]
mov esi, dword [eax]
or esi, 2
mov eax, esi
and eax, 3
mov dword [ebp - 0x18], eax
xor edx, edx
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [edi]
xor ecx, ecx
test bx, bx
setne cl
lea edi, [edi + ecx*2]
mov word [eax], bx
add eax, 2
inc edx
cmp dword [ebp - 0x18], edx
jne 0x424e80
cmp esi, 4
jb 0x424efa
nop
movzx ecx, word [edi]
xor ebx, ebx
test cx, cx
setne bl
mov word [eax], cx
lea ecx, [edi + ebx*2]
movzx edi, word [edi + ebx*2]
xor ebx, ebx
test di, di
setne bl
mov word [eax + 2], di
lea edi, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [eax + 4], cx
lea ecx, [edi + ebx*2]
mov dword [ebp - 0x18], ecx
movzx ebx, word [edi + ebx*2]
xor ecx, ecx
test bx, bx
setne cl
mov edi, dword [ebp - 0x18]
lea edi, [edi + ecx*2]
mov word [eax + 6], bx
add eax, 8
add esi, 0xfffffffc
cmp edx, esi
jne 0x424ea0
mov word [eax], 0x3a
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x10]
jmp case.0x424960.15
mov word [eax], 0x3a
jmp dword [0x4458c4]
mov eax, dword [ebp - 0x28]
mov esi, dword [eax]
mov eax, dword [ebp - 0x14]
cmp esi, 2
jb 0x424f10
shr esi, 1
mov edi, esi
and edi, 3
je 0x424f67
mov dword [ebp - 0x18], esi
xor esi, esi
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
nop
nop
nop
nop
movzx ebx, word [edx]
xor ecx, ecx
test bx, bx
setne cl
lea edx, [edx + ecx*2]
mov word [eax], bx
add eax, 2
inc esi
cmp edi, esi
jne 0x424f40
mov edi, dword [ebp - 0x18]
mov ecx, edi
sub ecx, esi
mov esi, edi
mov ebx, dword [ebp - 0x24]
jmp 0x424f6f
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, esi
dec esi
cmp esi, 3
mov edi, dword [ebp - 0x10]
jb 0x424f10
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [edx]
xor ebx, ebx
test si, si
setne bl
mov word [eax], si
lea esi, [edx + ebx*2]
movzx edx, word [edx + ebx*2]
xor ebx, ebx
test dx, dx
setne bl
mov word [eax + 2], dx
lea edx, [esi + ebx*2]
movzx esi, word [esi + ebx*2]
xor ebx, ebx
test si, si
setne bl
mov word [eax + 4], si
lea esi, [edx + ebx*2]
movzx edi, word [edx + ebx*2]
xor edx, edx
test di, di
setne dl
lea edx, [esi + edx*2]
mov word [eax + 6], di
add eax, 8
add ecx, 0xfffffffc
jne 0x424f80
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x10]
jmp 0x424f10
mov word [eax + 2], 0x20
add eax, 4
mov cl, 1
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x14], eax
jmp case.0x424960.19
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
jmp dword [0x4458e8]
add edx, 2
mov al, 1
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], edx
jmp case.0x424960.19
mov edx, dword [ebp - 0x14]
cmp ecx, 2
jb 0x4250e8
mov edi, ecx
shr edi, 1
lea esi, [edi - 1]
mov eax, edi
and eax, 3
je 0x42507c
mov dword [ebp - 0x60], esi
xor esi, esi
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax]
xor ecx, ecx
test bx, bx
setne cl
lea eax, [eax + ecx*2]
mov word [edx], bx
add edx, 2
inc esi
cmp dword [ebp - 0x18], esi
jne 0x425050
sub edi, esi
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x60]
cmp esi, 3
jae 0x425090
jmp 0x4250e8
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
cmp esi, 3
jb 0x4250e8
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
xor ebx, ebx
test cx, cx
setne bl
mov word [edx], cx
lea ecx, [eax + ebx*2]
movzx eax, word [eax + ebx*2]
xor ebx, ebx
test ax, ax
setne bl
mov word [edx + 2], ax
lea eax, [ecx + ebx*2]
movzx ecx, word [ecx + ebx*2]
xor ebx, ebx
test cx, cx
setne bl
mov word [edx + 4], cx
lea ecx, [eax + ebx*2]
movzx esi, word [eax + ebx*2]
xor eax, eax
test si, si
setne al
lea eax, [ecx + eax*2]
mov word [edx + 6], si
add edx, 8
add edi, 0xfffffffc
jne 0x425090
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov word [edx], 0xa
mov edi, dword [ebp - 0x10]
jmp dword [0x4458f4]
mov eax, dword [ebp - 0x14]
test cl, 2
je 0x425120
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx]
mov esi, dword [ebp - 0x14]
mov word [esi], ax
xor ecx, ecx
test ax, ax
setne cl
movzx ecx, word [edx + ecx*2]
lea eax, [esi + 4]
mov word [esi + 2], cx
mov ecx, dword [ebp - 0x20]
mov word [eax], 0xa
jmp case.0x424960.27
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x42], 0x16171819
mov word [ebp - 0x3e], 0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0xb6
xor dl, byte [ebp + ecx - 0x42]
add dl, 0x50
mov byte [ebp + ecx - 0x42], dl
inc ecx
cmp ecx, 6
jne 0x425140
mov ecx, dword [0x44aea0]
test ecx, ecx
je 0x425188
mov edx, dword [ebp - 0x42]
xor esi, esi
mov edi, dword [0x44aea4]
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb430e561
je 0x425180
inc esi
cmp ecx, esi
jne 0x425170
jmp 0x425188
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x425190
mov edi, dword [ebp - 0x10]
jmp case.0x424960.7
push eax
push 4
push ecx
push dword [0x44aea8]
call fcn.0043b9a0
add esp, 0x10
mov edi, dword [ebp - 0x10]
jmp case.0x424960.7
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x4251e5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x2c]
jmp dword [0x4458f8]
push edi
call fcn.00408630
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [ebp - 0x38]
setb al
jmp dword [eax*4 + 0x445848]
push eax
push 4
push ecx
push dword [0x44aea8]
call fcn.0043b9a0
add esp, 0x10
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x2c]
jmp dword [0x4458f8]
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42524b
cmp cx, 0x7f
jbe 0x425210
movzx edx, cx
cmp edx, 0x7ff
ja 0x425240
add edi, 2
jmp 0x425211
cmp cx, 0xffff
je 0x425211
add edi, 3
jmp 0x425211
lea ebx, [edi + 1]
push ebx
call fcn.00408620
add esp, 4
lea ecx, [ebp - 0x1df6]
push ecx
push ebx
mov dword [ebp - 0x10], eax
push eax
call fcn.00409330
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov dword [eax], 0x4e41409e
mov dword [eax + 4], 0x4274774a
mov dword [eax + 8], 0x5957574e
mov dword [eax + 0xc], 0x5a587394
mov dword [eax + 0x10], 0x595e5f53
mov dword [eax + 0x14], 0x5957749c
mov dword [eax + 0x18], 0x9fa5a161
mov dword [eax + 0x1c], 0xb6a962a8
mov word [eax + 0x20], 0x30ab
mov edx, 0xe7
movzx esi, byte [eax + edx - 0xe7]
mov ebx, esi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xc8
mov ecx, dword [ebp - 0x30]
mov byte [ecx + edx - 0xe7], al
mov eax, dword [ebp - 0x30]
inc edx
cmp edx, 0x109
jne 0x4252b0
mov ecx, dword [ebp + 8]
push edi
mov esi, dword [ebp - 0x10]
push esi
push eax
call fcn.00409490
mov ebx, eax
jmp dword [0x445900]
push esi
call fcn.00408630
add esp, 4
and bl, 1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret