Function at 0x42404e
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, 0x21e8
call fcn.0040c970
mov dword [esp + 0xde8], 0x912c9f30
mov dword [esp + 0xdec], 0x952b93d7
mov dword [esp + 0xdf0], 0x8923972f
mov dword [esp + 0xdf4], 0x8d388b3c
mov dword [esp + 0xdf8], 0x81228f27
mov dword [esp + 0xdfc], 0x85378337
mov dword [esp + 0xe00], 0xf93487c3
mov word [esp + 0xe04], 0xfbf8
mov dword [esp + 0xe06], 0
mov byte [esp + 0xe0a], 0
mov eax, 0xa5
mov ecx, 0x5a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xd43]
mov edx, eax
xor edx, ecx
and edx, esi
xor edx, ecx
mov bl, 0xc6
sub bl, dl
mov byte [esp + eax + 0xd43], bl
inc eax
dec ecx
cmp eax, 0xc8
jne case.default.0x422e99
lea eax, [esp + 0x38]
lea ecx, [esp + 0xde8]
push 0
push 0
push 0x20019
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.0043eeb0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x445538]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x34]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [esp + 0x58]
call fcn.0043f270
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445540]
xor eax, eax
jmp 0x424534
lea ebx, [esp + 0x118]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x44], 0
cmp ecx, dword [esp + 0x34]
setb al
xor edi, edi
jmp dword [eax*4 + 0x445548]
inc edi
xor eax, eax
cmp edi, dword [esp + 0x34]
setb al
jmp dword [eax*4 + 0x445548]
mov esi, dword [esp + 0x60]
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x422f23
mov eax, 0xffffffff
push eax
call fcn.0040ca10
add esp, 4
mov dword [esp + 0x5c], esi
mov esi, eax
lea eax, [esp + 0x5c]
push eax
push esi
push edi
push dword [esp + 0x44]
call fcn.0043efc0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445558]
lea eax, [esp + 0x30]
push dword [esp + 0x38]
push 0
push 0x20019
push eax
push esi
call fcn.0043eeb0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445560]
mov eax, dword [case.0x422e99.7]
jmp case.0x42420d.26
mov dword [esp + 0x4c], edi
mov dword [esp + 0x78], 0x16d0753
mov dword [esp + 0x7c], 0xd70036d
mov dword [esp + 0x80], 0x9730f7d
mov dword [esp + 0x84], 0x15640b79
mov dword [esp + 0x88], 0x11721768
mov dword [esp + 0x8c], 0x1d791349
mov dword [esp + 0x90], 0x19721f6a
mov dword [esp + 0x94], 0x25631b69
mov dword [esp + 0x98], 0x21062759
mov dword [esp + 0x9c], 0x2d4d2377
mov dword [esp + 0xa0], 0x29532f51
mov dword [esp + 0xa4], 0x35432b4b
mov dword [esp + 0xa8], 0x3140375f
mov dword [esp + 0xac], 0x3d123359
mov dword [esp + 0xb0], 0x39413f61
mov dword [esp + 0xb4], 0x45473b5a
mov dword [esp + 0xb8], 0x413b473f
mov dword [esp + 0xbc], 0x4d2d433c
mov dword [esp + 0xc0], 0x492a4f3b
mov dword [esp + 0xc4], 0x55384b18
mov dword [esp + 0xc8], 0x51385725
mov dword [esp + 0xcc], 0x5d26533b
mov dword [esp + 0xd0], 0x59235f33
mov dword [esp + 0xd4], 0x65615b3c
mov dword [esp + 0xd8], 0x615f6759
mov dword [esp + 0xdc], 0x6d2f635f
mov dword [esp + 0xe0], 0x69206f22
mov dword [esp + 0xe4], 0x75566b58
mov dword [esp + 0xe8], 0x714b7747
mov dword [esp + 0xec], 0x7d417343
mov dword [esp + 0xf0], 0x79127f4f
mov dword [esp + 0xf4], 0x85387b45
mov dword [esp + 0xf8], 0x81be87bc
mov dword [esp + 0xfc], 0x8db283c3
mov dword [esp + 0x100], 0x89bd8fbc
mov dword [esp + 0x104], 0x95b68bb8
mov dword [esp + 0x108], 0x91a497d6
mov dword [esp + 0x10c], 0x9dac93d3
mov dword [esp + 0x110], 0x99a79fa2
mov dword [esp + 0x114], 0xa5fe9ba6
mov word [esp + 0x118], 0xa7a4
mov byte [ebx + 4], 0
mov word [ebx + 2], 0
xor eax, eax
nop
nop
nop
nop
lea ecx, [eax + 1]
movzx edx, byte [esp + eax + 0x78]
xor dl, cl
add dl, 0xfb
mov byte [esp + eax + 0x78], dl
mov eax, ecx
cmp ecx, 0xa5
jne 0x423150
mov dword [esp + 0x48], esi
lea edi, [esp + 0x87a]
lea eax, [esp + 0x78]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
lea edi, [esp + 0x91a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0xf35bf1a5
mov dword [esp + 0x7c], 0xff4cfd5f
mov dword [esp + 0x80], 0xfb49f94f
mov dword [esp + 0x84], 0xc768c573
mov dword [esp + 0x88], 0xc366c17c
mov dword [esp + 0x8c], 0xcf67cd93
mov dword [esp + 0x90], 0xcb66c97e
mov dword [esp + 0x94], 0xd769d563
mov dword [esp + 0x98], 0xd3b2d163
mov dword [esp + 0x9c], 0xdf82dd8a
mov dword [esp + 0xa0], 0xdb99d97c
mov dword [esp + 0xa4], 0x27942599
mov dword [esp + 0xa8], 0x238f2192
mov dword [esp + 0xac], 0x2f922d9a
mov dword [esp + 0xb0], 0x2b872976
mov dword [esp + 0xb4], 0x37853586
mov dword [esp + 0xb8], 0x33853199
mov dword [esp + 0xbc], 0x3f9a3d8a
mov dword [esp + 0xc0], 0x3b933967
mov dword [esp + 0xc4], 0x7aa05b2
mov dword [esp + 0xc8], 0x3bd01b7
mov dword [esp + 0xcc], 0xf6e0dbf
mov dword [esp + 0xd0], 0xba7095d
mov dword [esp + 0xd4], 0x17a515a7
mov dword [esp + 0xd8], 0x13bd11b1
mov dword [esp + 0xdc], 0x1fa81db5
mov dword [esp + 0xe0], 0x1b7a19b7
mov dword [esp + 0xe4], 0x67db6537
mov dword [esp + 0xe8], 0x63d161c2
mov dword [esp + 0xec], 0x6fdd6dd5
mov dword [esp + 0xf0], 0x6bc769d4
mov dword [esp + 0xf4], 0x77d275c1
mov dword [esp + 0xf8], 0x73c07120
mov dword [esp + 0xfc], 0x7fd07dcb
mov dword [esp + 0x100], 0x7bce79d1
mov dword [esp + 0x104], 0x47f545e9
mov dword [esp + 0x108], 0x431541e4
mov dword [esp + 0x10c], 0x4ff24df1
mov dword [esp + 0x110], 0x4bfd49fc
mov dword [esp + 0x114], 0x57fd55e3
mov dword [esp + 0x118], 0x532b51f4
mov dword [esp + 0x11c], 0x5f215d2f
mov dword [esp + 0x120], 0x5b195925
mov dword [esp + 0x124], 0xa7e8a5ea
mov dword [esp + 0x128], 0xa3dea1d0
mov dword [esp + 0x12c], 0xafddaddd
mov dword [esp + 0x130], 0xabdba9d9
mov dword [esp + 0x134], 0xb71ab5c5
mov dword [esp + 0x138], 0xb3f0b1c3
mov dword [esp + 0x13c], 0xbfc6bdc4
mov dword [esp + 0x140], 0xbbcab9f9
mov dword [esp + 0x144], 0x87f785f4
mov dword [esp + 0x148], 0x83fe81f0
mov dword [esp + 0x14c], 0x8ffc8dce
mov dword [esp + 0x150], 0x8bf489c9
mov dword [esp + 0x154], 0x97e995ea
mov dword [esp + 0x158], 0x933691ee
mov word [esp + 0x15c], 0x9d9c
mov byte [ebx + 0x48], 0
mov word [ebx + 0x46], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x54
xor cl, byte [esp + eax + 0x78]
add cl, 0x5c
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0xe9
jne 0x423420
lea edi, [esp + 0x91c]
lea eax, [esp + 0x78]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x15c]
mov ecx, 1
lea edi, [esp + 0xa00]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0x9ff799d5
mov dword [esp + 0x7c], 0xa3d49dfb
mov dword [esp + 0x80], 0xa7d1a1d3
mov dword [esp + 0x84], 0xabc0a5d7
mov dword [esp + 0x88], 0xaff2a9dc
mov dword [esp + 0x8c], 0xb3d8adff
mov dword [esp + 0x90], 0xb7dfb1da
mov dword [esp + 0x94], 0xbbdfb5d3
mov dword [esp + 0x98], 0xbf8fb9e4
mov dword [esp + 0x9c], 0xc3f0bd8b
mov dword [esp + 0xa0], 0xc79ac1f0
mov dword [esp + 0xa4], 0xcbbfc597
mov dword [esp + 0xa8], 0xcfa2c9bc
mov dword [esp + 0xac], 0xd3a1cdbf
mov dword [esp + 0xb0], 0xd78ad1bf
mov dword [esp + 0xb4], 0xdbacd584
mov dword [esp + 0xb8], 0xdfb4d9ab
mov dword [esp + 0xbc], 0xe38eddb5
mov dword [esp + 0xc0], 0xe791e185
mov dword [esp + 0xc4], 0xebb9e5b8
mov dword [esp + 0xc8], 0xef9ae99d
mov dword [esp + 0xcc], 0xf381ed80
mov dword [esp + 0xd0], 0xf799f183
mov dword [esp + 0xd4], 0xfbc3f5a8
mov dword [esp + 0xd8], 0xffc5f9cf
mov dword [esp + 0xdc], 0x345fdc9
mov dword [esp + 0xe0], 0x74c014a
mov dword [esp + 0xe4], 0xb3e0534
mov dword [esp + 0xe8], 0xf390939
mov dword [esp + 0xec], 0x13230d3d
mov dword [esp + 0xf0], 0x17721121
mov dword [esp + 0xf4], 0x1b5c1523
mov dword [esp + 0xf8], 0x1f261920
mov dword [esp + 0xfc], 0x23121d5d
mov dword [esp + 0x100], 0x27172110
mov dword [esp + 0x104], 0x2b1e2514
mov dword [esp + 0x108], 0x2f18296e
mov dword [esp + 0x10c], 0x33082d6d
mov dword [esp + 0x110], 0x370d310a
mov dword [esp + 0x114], 0x3b66350e
mov word [esp + 0x118], 0x3938
mov word [ebx + 6], 0
mov dword [ebx + 2], 0
mov eax, 0x1a
mov ecx, 0xe5
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x5e]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x7e
mov byte [esp + eax + 0x5e], dl
inc eax
dec ecx
cmp eax, 0xc2
jne 0x423640
lea edi, [esp + 0xb46]
lea eax, [esp + 0x78]
mov ebp, edi
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x118]
lea edi, [esp + 0xbe6]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x78], 0xc3abc18d
mov dword [esp + 0x7c], 0xc754c5a7
mov dword [esp + 0x80], 0xcb59c9a7
mov dword [esp + 0x84], 0xcfa8cda3
mov dword [esp + 0x88], 0xf38ef164
mov dword [esp + 0x8c], 0xf790f5bb
mov dword [esp + 0x90], 0xfb93f99e
mov dword [esp + 0x94], 0xff9bfd9f
mov dword [esp + 0x98], 0xe3b3e19c
mov dword [esp + 0x9c], 0xe7c8e5b0
mov dword [esp + 0xa0], 0xeb96e9b8
mov dword [esp + 0xa4], 0xef7beda3
mov dword [esp + 0xa8], 0x137e1184
mov dword [esp + 0xac], 0x1779157b
mov dword [esp + 0xb0], 0x1b661973
mov dword [esp + 0xb4], 0x1f8c1d6c
mov dword [esp + 0xb8], 0x364016f
mov dword [esp + 0xbc], 0x76a056d
mov dword [esp + 0xc0], 0xb99096d
mov dword [esp + 0xc4], 0xf410d70
mov dword [esp + 0xc8], 0x33a631a5
mov dword [esp + 0xcc], 0x37593558
mov dword [esp + 0xd0], 0x3b513957
mov dword [esp + 0xd4], 0x3f673d40
mov dword [esp + 0xd8], 0x23752173
mov dword [esp + 0xdc], 0x27652571
mov dword [esp + 0xe0], 0x2b6c296e
mov dword [esp + 0xe4], 0x2f7a2d7c
mov dword [esp + 0xe8], 0x53015101
mov dword [esp + 0xec], 0x57075505
mov dword [esp + 0xf0], 0x5b3e5909
mov dword [esp + 0xf4], 0x5f1c5d0f
mov dword [esp + 0xf8], 0x431a4118
mov dword [esp + 0xfc], 0x47164505
mov dword [esp + 0x100], 0x4b1b4918
mov dword [esp + 0x104], 0x4f1a4d1c
mov dword [esp + 0x108], 0x73207132
mov dword [esp + 0x10c], 0x77207535
mov dword [esp + 0x110], 0x7b2d792e
mov dword [esp + 0x114], 0x7f027d2a
mov word [esp + 0x118], 0x6160
mov byte [ebx + 4], 0
mov word [ebx + 2], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x50
xor cl, byte [esp + eax + 0x78]
add cl, 0x70
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 0xa5
jne 0x423860
lea eax, [esp + 0xaa4]
lea edx, [esp + 0x78]
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x118]
lea edi, [esp + 0xb44]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x78], 0x19ad1bcf
mov dword [esp + 0x7c], 0xe558e7b5
mov dword [esp + 0x80], 0xe15fe355
mov dword [esp + 0x84], 0xed44ef51
mov dword [esp + 0x88], 0xe94eeb50
mov dword [esp + 0x8c], 0xf55cf739
mov dword [esp + 0x90], 0xf145f35e
mov dword [esp + 0x94], 0xfd55ff5d
mov dword [esp + 0x98], 0xf905fb58
mov dword [esp + 0x9c], 0xc534c703
mov dword [esp + 0xa0], 0xc166c334
mov dword [esp + 0xa4], 0xcd75cf11
mov dword [esp + 0xa8], 0xc97ecb70
mov dword [esp + 0xac], 0xd567d779
mov dword [esp + 0xb0], 0xd176d361
mov dword [esp + 0xb4], 0xdd60df00
mov dword [esp + 0xb8], 0xd970db6d
mov dword [esp + 0xbc], 0xa512a76f
mov dword [esp + 0xc0], 0xa11fa30f
mov dword [esp + 0xc4], 0xad7faf04
mov dword [esp + 0xc8], 0xa916ab17
mov dword [esp + 0xcc], 0xb507b71c
mov dword [esp + 0xd0], 0xb107b305
mov dword [esp + 0xd4], 0xbd79bf14
mov dword [esp + 0xd8], 0xb943bb41
mov dword [esp + 0xdc], 0x854b8743
mov dword [esp + 0xe0], 0x8148834e
mov dword [esp + 0xe4], 0x8d728f70
mov dword [esp + 0xe8], 0x89778b73
mov dword [esp + 0xec], 0x95699777
mov dword [esp + 0xf0], 0x913e936b
mov dword [esp + 0xf4], 0x9d509f6d
mov dword [esp + 0xf8], 0x99629b64
mov dword [esp + 0xfc], 0x65966757
mov dword [esp + 0x100], 0x619d6394
mov dword [esp + 0x104], 0x6d926f90
mov dword [esp + 0x108], 0x69946ba2
mov dword [esp + 0x10c], 0x758c77a7
mov dword [esp + 0x110], 0x718b738e
mov dword [esp + 0x114], 0x7dda7f8a
mov dword [esp + 0x118], 0x7b7c
mov ecx, 0x7b
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 3]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x99
mov byte [esp + ecx - 3], dl
inc ecx
cmp ecx, 0x11f
jne case.default.0x423af0
lea edx, [esp + 0xa02]
lea esi, [esp + 0x78]
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x118]
lea edi, [esp + 0xaa2]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x87a]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x91c]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x445568]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], 0x585b5a45
mov word [esp + 0x7c], 0
mov ecx, 0x1e680ef
mov edx, 0x16197f10
nop
nop
nop
movzx esi, byte [esp + ecx - 0x1e68077]
mov edi, edx
and edi, 0x16001902
mov ebx, ecx
and ebx, 0x1a600bd
or ebx, edi
xor ebx, 0xe1bf66bd
or ebx, esi
not esi
lea edi, [ecx - 0x1e68000]
or edi, esi
and edi, ebx
mov esi, 0x3df92596
sub esi, edi
mov edi, esi
and edi, 0x54
xor esi, 0x54
lea ebx, [esi + edi*2]
add bl, 0x6a
mov byte [esp + ecx - 0x1e68077], bl
inc ecx
dec edx
cmp ecx, 0x1e680f5
jne 0x423b20
mov ecx, dword [0x449ea0]
test ecx, ecx
lea ebx, [esp + 0x118]
je 0x424290
mov edx, dword [esp + 0x78]
xor esi, esi
mov edi, dword [0x449ea4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x42426e
inc esi
cmp ecx, esi
jne 0x423ba0
jmp 0x424290
mov ecx, dword [esp + 0x50]
add ecx, 4
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x445568]
mov dword [esp + 0x50], ecx
mov eax, dword [esp + ecx + 0x64]
mov dword [esp + 0x78], 0x9fae99a8
mov dword [esp + 0x7c], 0xa3929dac
mov dword [esp + 0x80], 0xa796a190
mov dword [esp + 0x84], 0xabf2a594
mov dword [esp + 0x88], 0xa9a8
mov ecx, 0x2bb58ae5
lea edx, [esp + 0x78]
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [edx]
xor esi, ecx
mov edi, 0x7c
sub edi, esi
and esi, 1
xor edi, 1
lea ebx, [edi + esi*2]
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0x2bb58ad1
jne 0x423c20
movzx ecx, word [eax]
lea esi, [esp + 0xbe8]
test cx, cx
je 0x423c71
add eax, 2
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 0x423c60
mov word [esi], 0
movzx eax, word [esp + 0x78]
test ax, ax
je 0x423ca1
lea ecx, [esp + 0x7a]
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 0x423c90
mov word [esi], 0
mov di, 0x31
xor eax, eax
cmp di, 0x35
setb al
mov dword [esp + 0x3c], esi
jmp dword [eax*4 + 0x445570]
inc edi
xor eax, eax
cmp di, 0x35
setb al
jmp dword [eax*4 + 0x445570]
jmp dword [0x44557c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x445588]
mov dword [esp + 0x58], 0x800
mov dword [esp + 0x28], 0x400
mov eax, dword [case.0x423af0.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x40], edi
xor esi, esi
mov dword [esp + 8], 0
jmp 0x423d3b
mov ebp, dword [esp + 4]
mov dword [ebp], 0x20003a
add ebp, 4
mov dword [esp + 4], ebp
mov al, 1
mov dword [esp + 8], eax
inc esi
lea eax, [esp + 0x28]
lea edi, [esp + 0x1de8]
lea ecx, [esp + 0x54]
lea edx, [esp + 0x58]
lea ebp, [esp + 0x78]
push eax
push edi
push ecx
push edx
push ebp
push esi
push dword [esp + 0x44]
call fcn.0043f570
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4455a0]
test byte [esp + 8], 1
sete al
mov edx, dword [esp + 0x54]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4455a8]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0x4455b8]
mov eax, dword [case.0x42420d.20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x24], edx
mov dword [esp], esi
mov dword [esp + 0xc], 0xf749f9b9
mov dword [esp + 0x10], 0xf341f54b
mov dword [esp + 0x14], 0xcf7cf17d
mov dword [esp + 0x18], 0xcbcacd40
mov word [esp + 0x1c], 0
xor edx, edx
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
not ecx
mov esi, edx
mov edx, ebx
shr dl, 1
and dl, 1
mov eax, ebx
and eax, 0x14
and ecx, 2
imul ecx, eax
or al, 2
mul dl
mov edx, esi
add al, al
add cl, al
mov eax, edx
and al, 0x2c
sub cl, al
movzx eax, cl
add eax, ebx
add al, 0xd6
xor al, byte [esp + ebx + 0xc]
add al, 0xd2
mov byte [esp + ebx + 0xc], al
inc ebx
add edx, 2
cmp ebx, 0x12
jne 0x423e00
movzx edx, word [esp + 0xc]
test dx, dx
je 0x423e8c
lea esi, [esp + 0x78]
lea ecx, [esp + 0xc]
mov ebp, esi
jmp 0x423e68
movzx edx, word [ecx]
test dx, dx
je 0x423e8c
movzx ebx, word [esi]
test bx, bx
je 0x423e8a
add esi, 2
add ecx, 2
lea eax, [ebp + 2]
cmp bx, dx
je 0x423e82
mov ebp, eax
mov esi, eax
je 0x423e60
lea ecx, [esp + 0xc]
jmp 0x423e60
xor ebp, ebp
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x4455b0]
xor eax, eax
cmp dword [esp + 0x24], 3
sete al
mov esi, dword [esp]
jmp dword [eax*4 + 0x4455b8]
mov dword [esp], esi
mov dword [esp + 0xc], 0xe343e150
mov dword [esp + 0x10], 0xe775e577
mov dword [esp + 0x14], 0xdb45d94f
mov dword [esp + 0x18], 0xdf7add4e
mov word [esp + 0x1c], 0xd1d0
lea eax, [esp + 0x1e]
mov word [eax + 4], 0
mov dword [eax], 0
lea eax, [esp + 0xc]
xor ecx, ecx
xor edx, edx
mov esi, ecx
and esi, 0x50
mov ebx, edx
xor ebx, 0x57
sub ebx, esi
inc bl
xor bl, byte [eax]
add bl, 0x48
mov byte [eax], bl
inc eax
dec edx
add ecx, 0xfffffffe
cmp edx, 0xffffffe8
jne 0x423ef0
movzx esi, word [esp + 0xc]
lea eax, [esp + 0x78]
test si, si
je 0x42403d
lea ecx, [esp + 0x78]
lea edx, [esp + 0xc]
mov eax, ecx
jmp 0x423f3c
movzx esi, word [edx]
test si, si
je 0x42403d
movzx edi, word [ecx]
test di, di
je 0x42403b
add ecx, 2
add edx, 2
lea ebx, [eax + 2]
cmp di, si
je 0x423f5a
mov eax, ebx
mov ecx, ebx
je 0x423f30
lea edx, [esp + 0xc]
jmp 0x423f30
mov eax, dword [esp + 0x28]
cmp eax, 2
mov esi, dword [esp]
jb 0x423d22
shr eax, 1
lea ecx, [eax - 1]
mov edx, eax
and edx, 3
je 0x423fc7
mov dword [esp + 8], ecx
xor esi, esi
lea edi, [esp + 0x1de8]
mov ebp, dword [esp + 4]
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 0x423fa0
mov dword [esp + 4], ebp
sub eax, esi
mov esi, dword [esp]
mov ecx, dword [esp + 8]
cmp ecx, 3
mov ebp, dword [esp + 4]
jb 0x423d26
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 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 0x423fe0
mov esi, dword [esp]
jmp 0x423d26
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp]
jmp dword [ecx*4 + 0x4455c0]
mov eax, dword [esp + 0x28]
cmp eax, 2
jae 0x424060
mov ebp, dword [esp + 4]
jmp 0x424106
shr eax, 1
lea edi, [eax - 1]
mov esi, eax
lea ecx, [esp + 0x1de8]
and esi, 3
je 0x4240a2
mov dword [esp + 0x24], edi
xor edi, edi
mov ebp, dword [esp + 4]
nop
nop
nop
movzx ebx, word [ecx]
xor edx, edx
test bx, bx
setne dl
lea ecx, [ecx + edx*2]
mov word [ebp], bx
add ebp, 2
inc edi
cmp esi, edi
jne 0x424080
sub eax, edi
mov edi, dword [esp + 0x24]
jmp 0x4240a6
mov ebp, dword [esp + 4]
cmp edi, 3
mov esi, dword [esp]
jb 0x424106
nop
nop
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
add ebp, 8
lea ecx, [esi + ecx*2]
add eax, 0xfffffffc
jne 0x4240b0
mov esi, dword [esp]
mov word [ebp], 0xa
add ebp, 2
mov dword [esp + 4], ebp
mov al, 1
mov dword [esp + 0x44], eax
inc esi
jmp 0x423d3b
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], 0x585b5a45
mov word [esp + 0x10], 0
mov ecx, 0x1e680ef
mov edx, 0x16197f10
nop
nop
nop
movzx esi, byte [esp + ecx - 0x1e680e3]
mov edi, edx
and edi, 0x16001902
mov ebx, ecx
and ebx, 0x1a600bd
or ebx, edi
xor ebx, 0xe1bf66bd
or ebx, esi
not esi
lea edi, [ecx - 0x1e68000]
or edi, esi
and edi, ebx
mov esi, 0x3df92596
sub esi, edi
mov edi, esi
and edi, 0x54
xor esi, 0x54
lea ebx, [esi + edi*2]
add bl, 0x6a
mov byte [esp + ecx - 0x1e680e3], bl
inc ecx
dec edx
cmp ecx, 0x1e680f5
jne 0x424140
mov ecx, dword [0x449ea0]
test ecx, ecx
je 0x4241d0
mov edx, dword [esp + 0xc]
xor esi, esi
mov edi, dword [0x449ea4]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x4241c0
inc esi
cmp ecx, esi
jne 0x4241b0
jmp 0x4241d0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne case.default.0x4241e2
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 + 0x445570]
push eax
push 1
push ecx
push dword [0x449ea8]
call fcn.0043b0a0
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 + 0x445570]
mov word [esi - 2], di
lea eax, [esp + 0x2c]
lea ecx, [esp + 0xbe8]
push dword [esp + 0x30]
push 0
push 0x20019
push eax
push ecx
call fcn.0043eeb0
add esp, 0x14
mov word [esi - 2], di
lea eax, [esp + 0x2c]
lea ecx, [esp + 0xbe8]
push dword [esp + 0x30]
push 0
push 0x20019
push eax
push ecx
call fcn.0043eeb0
add esp, 0x14
jmp dword [0x445580]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x424290
push eax
push 1
push ecx
push dword [0x449ea8]
call fcn.0043b0a0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x422e99.7]
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
nop
nop
nop
jmp eax
jmp dword [0x4455e8]
push esi
call fcn.0040ca20
add esp, 4
inc edi
xor eax, eax
cmp edi, dword [esp + 0x34]
setb al
jmp dword [eax*4 + 0x445548]
mov eax, dword [esp + 4]
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x445550]
movzx ebx, word [esp + 0xde8]
xor edi, edi
test bx, bx
je 0x42433b
lea eax, [esp + 0xdea]
mov ecx, ebx
jmp 0x42430c
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x42433b
cmp cx, 0x7f
jbe 0x424300
movzx edx, cx
cmp edx, 0x7ff
ja 0x424330
add edi, 2
jmp 0x424301
cmp cx, 0xffff
je 0x424301
add edi, 3
jmp 0x424301
lea eax, [edi + 1]
push eax
call fcn.0040ca10
add esp, 4
mov esi, eax
mov dword [esp], eax
test bx, bx
je 0x424484
mov esi, dword [esp]
test edi, edi
je 0x424484
lea edx, [esp + 0xde8]
mov ecx, edi
mov esi, dword [esp]
nop
nop
nop
nop
movzx ebx, bx
lea ebp, [edx + 2]
cmp bx, 0x7f
ja 0x424390
lea eax, [esi + 1]
mov byte [esi], bl
jmp 0x424430
cmp ebx, 0x7ff
ja 0x4243c0
cmp ecx, 2
jb 0x4243c0
mov eax, ebx
shr eax, 6
add al, 0xc0
mov byte [esi], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 2]
mov byte [esi + 1], bl
jmp 0x424430
mov eax, ebx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x42444a
cmp ecx, 4
jb 0x42444a
movzx ebp, word [edx + 2]
add edx, 4
shl ebx, 0xa
lea eax, [ebx + ebp]
add eax, 0xfca02400
mov ebx, eax
shr ebx, 0x12
add bl, 0xf0
mov byte [esi], bl
mov ebx, eax
shr ebx, 0xc
and bl, 0x3f
or bl, 0x80
mov byte [esi + 1], bl
shr eax, 6
mov ebx, eax
xor ebx, 0xc0
or eax, 0x3f
and eax, ebx
add al, 0x80
mov byte [esi + 2], al
mov eax, ebp
and al, 0x3f
or al, 0x80
mov ebx, eax
lea eax, [esi + 4]
mov byte [esi + 3], bl
mov ebp, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, esi
sub ecx, eax
mov edx, ebp
mov esi, eax
movzx ebx, word [edx]
test bx, bx
je 0x424484
test ecx, ecx
jne 0x424370
jmp 0x424484
movzx eax, ax
cmp eax, 0xdc00
jne 0x424458
mov edx, ebp
jmp 0x424438
cmp ecx, 3
jb 0x424480
mov eax, ebx
shr eax, 0xc
or al, 0xe0
mov byte [esi], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [esi + 1], al
and bl, 0x3f
or bl, 0x80
lea eax, [esi + 3]
mov byte [esi + 2], bl
jmp 0x424430
mov eax, esi
jmp 0x424430
mov byte [esi], 0
mov dword [esp + 0x78], 0x6f727141
mov dword [esp + 0x7c], 0x7367666d
mov dword [esp + 0x80], 0x78646661
mov dword [esp + 0x84], 0x7b7b4223
mov dword [esp + 0x88], 0x787d7e7c
mov dword [esp + 0x8c], 0x7864453b
mov dword [esp + 0x90], 0x7e76707e
mov dword [esp + 0x94], 0x676a336f
mov word [esp + 0x98], 0x2154
mov dword [esp + 0x9a], 0
xor eax, eax
mov esi, dword [esp]
xor byte [esp + eax + 0x78], al
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp eax, 0x26
je 0x42450c
xor byte [esp + eax + 0x78], al
jmp 0x424500
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x21fc]
push edi
push esi
push eax
call fcn.0040d480
jmp dword [0x4455f0]
push esi
mov esi, eax
call fcn.0040ca20
mov eax, esi
add esp, 4
and al, 1
add esp, 0x21e8
pop esi
pop edi
pop ebx
pop ebp
ret