Function at 0xa2c902
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov ebx, dword [ebp + 8]
mov eax, dword [0xa40370]
mov dword [esp + 0x3c], eax
mov dword [esp + 4], 0xf907fbd7
mov dword [esp + 8], 0xe57be77f
mov dword [esp + 0xc], 0xe109e378
mov dword [esp + 0x10], 0xed22ef73
mov dword [esp + 0x14], 0xe97deb72
mov dword [esp + 0x18], 0x957d9772
mov dword [esp + 0x1c], 0x919293bf
mov dword [esp + 0x20], 0
xor ecx, ecx
xor edx, edx
nop
mov edi, ecx
and edi, 0x16
mov esi, edx
xor esi, 0x8d1d6b2b
add esi, edi
lea edi, [esi + esi]
not edi
add edi, esi
mov eax, esi
xor eax, 0xcf01adb
or esi, 0x810d6124
and esi, eax
and edi, 0xcf01adb
or esi, edi
movzx eax, byte [esp + edx + 4]
xor esi, eax
mov eax, esi
not eax
and eax, 1
xor esi, 0xda
lea eax, [esi + eax*2]
add al, 0x28
mov byte [esp + edx + 4], al
inc edx
add ecx, 2
cmp edx, 0x20
jne case.default.0xa2bc3f
lea eax, [esp + 0x5c]
lea edi, [esp + 0x70]
lea esi, [esp + 4]
push eax
push 8
push edi
push 0xd
push esi
push 0
call dword [esp + 0x54]
shr eax, 0x1f
jmp dword [eax*4 + 0xa3dc44]
mov word [esp + 0x70], 0x43
mov word [esp + 0x72], 0x3a
mov dword [esp + 0x74], 0x5c
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x44], 0
lea eax, [esp + 0x44]
push eax
push 0xa37a98
push 1
push 0
push 0xa37aa8
nop
call 0x75dbc970
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0xa3dc4c]
mov dword [esp + 4], 0x49fb4be2
mov dword [esp + 8], 0x45ea47f9
mov dword [esp + 0xc], 0x41ff43e0
mov dword [esp + 0x10], 0xbd0dbff7
mov dword [esp + 0x14], 0xb9f4bb16
mov word [esp + 0x18], 0xb7b8
mov dword [esp + 0x1a], 0
mov byte [esp + 0x1e], 0
mov eax, 0x9754af13
mov ecx, 0x2ea95e26
nop
mov esi, eax
xor esi, 0x20
mov edx, ecx
and edx, 0x3e
sub edx, esi
xor dl, byte [esp + eax + 0x68ab50f1]
add dl, 0x41
mov byte [esp + eax + 0x68ab50f1], dl
inc eax
add ecx, 2
cmp eax, 0x9754af2e
jne 0xa2bcf0
lea esi, [esp + 4]
push esi
call 0x758df6a0
nop
mov edi, eax
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0x58], edi
push edi
push eax
call dword [ecx + 0xc]
not eax
shr eax, 0x1f
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0xa3dc54]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x5c]
nop
call 0x75d7dd90
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0xa3dc5c]
mov dword [esp + 4], 0x9323912f
mov dword [esp + 8], 0x9f9e9d28
mov dword [esp + 0xc], 0
mov eax, 0xd9d164
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xd9d160]
xor ecx, eax
add ecx, 0xfbbee90b
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0xd9d160], cl
inc eax
cmp eax, 0xd9d170
jne 0xa2bda0
push esi
call 0x758df6a0
nop
mov dword [esp + 0x4c], eax
mov dword [esp + 4], 0xf73b09b7
mov dword [esp + 8], 0xf33ff540
mov dword [esp + 0xc], 0xff42f13f
mov dword [esp + 0x10], 0xfb2cfd1c
mov dword [esp + 0x14], 0xe72cf918
mov dword [esp + 0x18], 0xe351e55a
mov dword [esp + 0x1c], 0xef0ee155
mov dword [esp + 0x20], 0xeb43ed57
mov dword [esp + 0x24], 0xd709e97a
mov dword [esp + 0x28], 0xd371d50a
mov dword [esp + 0x2c], 0xdf17d11e
mov dword [esp + 0x30], 0xdb65dd6f
mov word [esp + 0x34], 0xd9d8
mov dword [esp + 0x36], 0
mov byte [esp + 0x3a], 0
mov eax, 0x81
mov ecx, 0x7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x7a]
mov edi, esi
not edi
or edi, eax
lea edx, [edi + edi]
not edx
add edx, edi
or esi, ecx
and edi, 0xc4
and edx, 0x3b
or edx, edi
xor edx, 0x3b
and edx, esi
add dl, 0x8a
mov byte [esp + ecx - 0x7a], dl
dec eax
inc ecx
cmp eax, 0x4a
jne case.default.0xa2bec2
lea eax, [esp + 4]
push eax
nop
call 0x758df6a0
mov esi, dword [esp + 0x40]
mov ecx, dword [esi]
lea edx, [esp + 0x58]
push edx
push 0
push 0x30
mov dword [esp + 0x78], eax
push eax
push dword [esp + 0x5c]
push esi
call dword [ecx + 0x50]
not eax
shr eax, 0x1f
lea edi, [esp + 0x70]
jmp dword [eax*4 + 0xa3dc64]
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
lea edx, [esp + 0x50]
lea esi, [esp + 0x54]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
setns cl
cmp eax, 1
setne al
cmp dword [esp + 0x50], 0
setne dl
and dl, al
and dl, cl
movzx eax, dl
jmp dword [eax*4 + 0xa3dc6c]
lea eax, [esp + 0x80]
push eax
call 0x758d3d70
nop
mov eax, dword [esp + 0x54]
mov dword [esp + 4], 0xf74bf957
mov dword [esp + 8], 0xf34bf57a
mov dword [esp + 0xc], 0xcf7af151
mov dword [esp + 0x10], 0xcb47cd9e
mov dword [esp + 0x14], 0xc778c97d
mov dword [esp + 0x18], 0xc34cc579
mov word [esp + 0x1c], 0xc1c0
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
mov ecx, 0x57
mov esi, 0xa9
nop
nop
nop
nop
mov edi, esi
and edi, 0xb6
mov edx, esi
or edx, 9
add edx, ecx
or edx, edi
xor dl, byte [esp + ecx - 0x53]
xor dl, 0xf6
add dl, 0x52
mov byte [esp + ecx - 0x53], dl
inc ecx
dec esi
cmp ecx, 0x77
jne case.default.0xa2bfc5
mov ecx, dword [eax]
push 0
push 0
lea esi, [esp + 0x88]
push esi
push 0
lea edx, [esp + 0x14]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
setns al
cmp word [esp + 0x80], 8
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0xa3dc74]
push dword [esp + 0x88]
call fcn.00a221d0
add esp, 4
mov edi, eax
lea esi, [eax + 1]
push esi
call fcn.009fc880
add esp, 4
push dword [esp + 0x88]
push esi
mov dword [esp + 0x50], eax
push eax
call fcn.009fd2b0
add esp, 0xc
add edi, 0xfffffffc
xor eax, eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0xa3dc7c]
mov ecx, eax
and ecx, 0xfffffffb
mov edx, eax
and edx, 4
mov esi, eax
or esi, 4
imul esi, edx
xor edx, 4
imul edx, ecx
add esi, dword [esp + 0x48]
mov ecx, dword [edx + esi]
mov dword [esp + eax*4 + 0x5c], ecx
xor ecx, ecx
sub edi, 4
setb cl
jmp dword [ecx*4 + 0xa3dc84]
inc eax
xor ecx, ecx
cmp eax, 4
setb cl
jmp dword [ecx*4 + 0xa3dc7c]
lea esi, [esp + 0x80]
jmp dword [0xa3dc8c]
push dword [esp + 0x48]
call fcn.009fc890
add esp, 4
push esi
nop
call 0x758de610
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea edi, [esp + 0x70]
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [0xa38220]
push dword [esp + 0x4c]
call esi
push dword [esp + 0x6c]
call esi
lea esi, [esp + 4]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esp + 0x3c]
call 0x758de860
nop
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 4], 0
push 0x72a7c387
push dword [0xa40368]
call fcn.00a33a90
add esp, 8
push 0
push 0
push 0
push 0
push esi
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0xa3dc94]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 4]
mov dword [esp + 0x5c], eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0xa2bfc5.15]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0xa3dcbc]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0xa3dcc4]
xor eax, eax
cmp dword [esp + esi*4 + 0x5c], 0
sete al
jmp dword [eax*4 + 0xa3dcdc]
mov eax, dword [case.0xa2bfc5.30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, esi
jmp 0xa2c183
lea eax, [esi - 1]
imul eax, dword [esp + eax*4 + 0x5c], 0x1a5845
add eax, 0xebde8a13
mov dword [esp + esi*4 + 0x5c], eax
mov edi, 0xfffffff7
push 0x10
push 9
push ebx
push eax
call fcn.00a12dd0
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + edi + 9], 0
lea edi, [edi + 1]
jne 0xa2c1b0
neg edi
nop
nop
nop
nop
mov ecx, dword [case.0xa2bfc5.33]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
add edi, 0xffffffff
setb cl
jmp dword [ecx*4 + 0xa3dd04]
mov byte [eax - 1], 0x30
dec eax
jmp 0xa2c1c0
jmp dword [0xa3dd14]
inc esi
add ebx, 8
jmp 0xa2c120
xor eax, eax
jmp 0xa2c4b2
push 0x400
call fcn.00a2e1b0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], 0xf4f5f6f7
lea eax, [esp + 4]
mov edx, 0x6d44c02b
movzx edi, byte [eax]
mov ebx, edx
or ebx, edi
lea ecx, [edx - 0x6d44c000]
and ecx, edi
lea edi, [ebx + ebx]
not edi
add edi, ebx
or edi, ecx
mov ecx, edi
and ecx, 1
or edi, 1
lea ebx, [edi + ecx]
add ebx, 0xcf50fde8
mov ecx, ebx
not ecx
and ecx, 0xd
and ebx, 0xf2
sub ebx, ecx
mov byte [eax], bl
inc eax
dec edx
cmp edx, 0x6d44c027
jne 0xa2c260
mov eax, dword [esp + 4]
mov edx, dword [0xa40374]
test edx, edx
je case.default.0xa2c30a
xor edi, edi
mov ebx, dword [0xa40378]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x7cde1e50
je 0xa2c2d0
inc edi
cmp edx, edi
jne 0xa2c2c0
jmp case.default.0xa2c30a
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
je case.default.0xa2c30a
lea eax, [esp + 0x18]
push 0x2f
push 0x400
push esi
push eax
push dword [esp + 0x10]
push 5
push dword [0xa4037c]
push edx
call fcn.00a30f10
add esp, 0x20
not eax
shr eax, 0x1f
mov dword [esp], 0
mov edi, dword [esp + 0x3c]
jmp dword [eax*4 + 0xa3dd24]
xor eax, eax
xor ecx, ecx
mov dword [esp], 0
cmp ecx, dword [esi]
setb al
xor ebx, ebx
jmp dword [eax*4 + 0xa3dd2c]
mov eax, dword [case.0xa2c30a.0]
nop
jmp eax
push esi
call fcn.00a2e210
add esp, 4
mov eax, dword [esp + 0x14]
mov dword [esp + 4], 0xf4f5f6f7
lea ecx, [esp + 4]
mov edx, 0x6d44c02b
movzx esi, byte [ecx]
mov edi, edx
or edi, esi
lea ebx, [edx - 0x6d44c000]
and ebx, esi
lea esi, [edi + edi]
not esi
add esi, edi
or esi, ebx
mov edi, esi
and edi, 1
or esi, 1
lea ebx, [esi + edi]
add ebx, 0xcf50fde8
mov esi, ebx
not esi
and esi, 0xd
and ebx, 0xf2
sub ebx, esi
mov byte [ecx], bl
inc ecx
dec edx
cmp edx, 0x6d44c027
jne 0xa2c350
mov ecx, dword [0xa40374]
test ecx, ecx
je 0xa2c4ad
mov edx, dword [esp + 4]
xor esi, esi
mov edi, dword [0xa40378]
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0xa2c493
inc esi
cmp ecx, esi
jne 0xa2c3b0
jmp 0xa2c4ad
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 4]
call fcn.00a2e650
inc ebx
xor eax, eax
cmp ebx, dword [esi]
setb al
jmp dword [eax*4 + 0xa3dd2c]
mov eax, dword [esi + ebx*4 + 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
lea ecx, [esp + 4]
push 0
push eax
call fcn.00a2e4e0
xor eax, eax
mov ecx, ebp
neg ecx
sbb eax, edi
setl al
movzx edi, al
shl edi, 0x14
or edi, 1
jmp dword [0xa3dd48]
lea ecx, [esp + 4]
push edi
call fcn.00a2e510
lea ecx, [esp + 4]
push edi
call fcn.00a2e510
jmp dword [0xa3dd50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0xa3dd54]
mov edi, dword [esp + 0x3c]
jmp dword [0xa3dd5c]
lea ecx, [esp + 4]
push edi
push ebp
push 0
call fcn.00a2e700
lea ecx, [esp + 4]
push edi
push ebp
push 0
call fcn.00a2e700
jmp dword [0xa3dd68]
test eax, eax
setns al
mov dword [esp], eax
jmp 0xa2c3d4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0xa2c4ad
push eax
push 1
push dword [0xa4037c]
push ecx
call fcn.00a30f10
add esp, 0x10
mov eax, dword [esp]
and al, 1
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov word [ebx], 0
movzx ebp, word [esi]
xor eax, eax
test bp, bp
setne al
mov ecx, ebx
jmp dword [eax*4 + 0xa3dd74]
xor eax, eax
cmp ecx, ebx
seta al
jmp dword [eax*4 + 0xa3ddbc]
mov eax, dword [case.0xa2cab9.36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0xa3ddd0]
mov ebp, ecx
movzx esi, word [ebx]
xor eax, eax
test si, si
sete al
jmp dword [eax*4 + 0xa3ddd4]
jmp dword [0xa3dde0]
movzx ebp, word [ebx]
xor eax, eax
test bp, bp
sete al
jmp dword [eax*4 + 0xa3de3c]
mov edi, esi
lea eax, [esi + 2]
mov dword [esp], eax
mov dword [esp + 4], 0xb752894e
mov word [esp + 8], 0xb5b4
lea eax, [esp + 0xa]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x3ed06ede
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x3ed06eda]
mov edx, ebx
and edx, eax
add dl, dl
sub bl, dl
movzx edx, bl
add edx, eax
add dl, 0xaa
mov byte [esp + eax - 0x3ed06eda], dl
inc eax
cmp eax, 0x3ed06ee9
jne 0xa2c830
xor eax, eax
mov ebx, dword [esp + 0x30]
nop
nop
nop
movzx edx, word [ebx + eax + 2]
movzx esi, word [esp + eax + 4]
test dx, dx
je 0xa2c877
add eax, 2
cmp dx, si
je 0xa2c860
xor eax, eax
cmp dx, si
setne al
mov esi, edi
jmp dword [eax*4 + 0xa3de44]
xor eax, eax
cmp bp, 0x5c
sete al
jmp dword [eax*4 + 0xa3de4c]
xor eax, eax
xor al, 1
movzx eax, al
jmp dword [eax*4 + 0xa3de64]
mov esi, dword [case.0xa2cc8d.68]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, ebx
setae dl
mov eax, ecx
mov ecx, ebx
jmp dword [edx*4 + 0xa3de6c]
mov edi, esi
mov esi, dword [case.0xa2cc8d.68]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, ebx
setae dl
mov eax, ecx
mov ecx, ebx
jmp dword [edx*4 + 0xa3de6c]
xor edx, edx
cmp word [eax], 0x5c
sete dl
mov ecx, eax
jmp dword [edx*4 + 0xa3de74]
jmp esi
add eax, 0xfffffffe
xor edx, edx
cmp eax, ebx
setae dl
mov ecx, ebx
jmp dword [edx*4 + 0xa3de6c]
add edi, 4
jmp case.0xa2cab9.36
cmp word [ebx + 2], 0
sete al
xor al, 1
movzx eax, al
jmp dword [eax*4 + 0xa3de64]
xor eax, eax
cmp word [esi + 4], 0x5c
sete al
jmp dword [eax*4 + 0xa3de8c]
mov edi, dword [esp]
jmp case.0xa2cc8d.62
xor ecx, ecx
cmp si, 0x5c
sete cl
xor eax, eax
jmp dword [ecx*4 + 0xa3ddf4]
cmp word [ebx + 2], 0
sete al
mov ecx, dword [case.0xa2cab9.30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor al, 1
movzx eax, al
mov ecx, ebp
jmp dword [eax*4 + 0xa3de0c]
mov dword [esp + 4], 0x69366b5a
mov word [esp + 8], 0x6f68
mov dword [esp + 0xa], 0
mov eax, 0xf876e3e7
mov ecx, 0x18
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x7891c1d]
mov ebx, ecx
xor ebx, eax
and ebx, edx
xor ebx, eax
mov edx, ebx
and edx, 0x7c
xor ebx, 0x7c
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + eax + 0x7891c1d], dl
inc eax
dec ecx
cmp eax, 0xf876e3f1
jne 0xa2c9b0
xor ecx, ecx
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [ebx + ecx + 2]
movzx edx, word [esp + ecx + 4]
test ax, ax
je 0xa2ca07
add ecx, 2
cmp ax, dx
je 0xa2c9f0
jmp dword [0xa3dde8]
mov dword [esp + 4], 0x69366b5a
mov word [esp + 8], 0x6f68
mov dword [esp + 0xa], 0
mov eax, 0xf876e3e7
mov ecx, 0x18
nop
nop
movzx edx, byte [esp + eax + 0x7891c1d]
mov ebx, ecx
xor ebx, eax
and ebx, edx
xor ebx, eax
mov edx, ebx
and edx, 0x7c
xor ebx, 0x7c
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + eax + 0x7891c1d], dl
inc eax
dec ecx
cmp eax, 0xf876e3f1
jne 0xa2ca30
jmp case.0xa2cab9.25
xor ecx, ecx
cmp ax, dx
setne cl
mov ebx, dword [esp + 0x30]
jmp dword [ecx*4 + 0xa3ddec]
mov ecx, ebp
add ecx, 0xfffffffe
jmp case.0xa2cab9.36
xor edi, edi
test bp, bp
je 0xa2cab2
mov edx, ebp
mov eax, esi
nop
nop
nop
nop
nop
cmp dx, 0x5c
je 0xa2cab0
movzx edx, word [eax + 2]
add eax, 2
test dx, dx
jne 0xa2ca90
jmp 0xa2cab2
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0xa3dd7c]
xor eax, eax
sub edi, esi
sete al
sar edi, 1
lea edx, [edi + 1]
jmp dword [eax*4 + 0xa3dd84]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
add eax, 2
cmp word [edi], 0
jne case.default.0xa2cb07
xor eax, eax
sub edi, esi
sete al
sar edi, 1
lea edx, [edi + 1]
jmp dword [eax*4 + 0xa3dd84]
xor eax, eax
cmp bp, 0x5c
sete al
jmp dword [eax*4 + 0xa3dd9c]
xor eax, eax
cmp edx, 2
sete al
jmp dword [eax*4 + 0xa3dda4]
xor eax, eax
cmp bp, 0x2e
sete al
jmp dword [eax*4 + 0xa3ddac]
xor eax, eax
cmp edx, 3
sete al
jmp dword [eax*4 + 0xa3de24]
xor eax, eax
cmp bp, 0x2e
sete al
jmp dword [eax*4 + 0xa3de2c]
xor eax, eax
cmp word [esi + 2], 0x2e
sete al
jmp dword [eax*4 + 0xa3de34]
test edx, edx
je 0xa2cc75
mov eax, edx
and eax, 3
je 0xa2cbfa
mov dword [esp], edx
xor edx, edx
mov dword [esp + 0x14], ecx
mov ebp, ecx
mov dword [esp + 0x10], esi
nop
nop
movzx ecx, word [esi]
xor ebx, ebx
test cx, cx
setne bl
lea esi, [esi + ebx*2]
mov word [ebp], cx
add ebp, 2
inc edx
cmp eax, edx
jne 0xa2cb90
mov eax, dword [esp]
sub eax, edx
mov edx, eax
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
cmp edi, 3
jae 0xa2cc05
jmp 0xa2cc71
mov word [ecx], 0x5c
add ecx, 2
add esi, 2
jmp 0xa2cbf3
lea edi, [esi + 2]
xor eax, eax
cmp word [edi], 0
sete al
jmp dword [eax*4 + 0xa3ddb4]
add esi, 4
mov edi, esi
jmp case.0xa2cab9.36
mov ebp, ecx
mov dword [esp + 0x10], esi
cmp edi, 3
jb 0xa2cc71
mov dword [esp + 0x14], ecx
xor eax, eax
mov dword [esp], edx
nop
nop
movzx ecx, word [esi]
xor edx, edx
test cx, cx
setne dl
lea ebx, [esi + edx*2]
mov word [ebp + eax*2], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [ebx + edx*2]
mov word [ebp + eax*2 + 2], cx
movzx ecx, word [ebx + edx*2]
xor edx, edx
test cx, cx
setne dl
lea ebx, [esi + edx*2]
mov word [ebp + eax*2 + 4], cx
movzx ecx, word [esi + edx*2]
xor edx, edx
test cx, cx
setne dl
lea esi, [ebx + edx*2]
mov edx, dword [esp]
mov word [ebp + eax*2 + 6], cx
add eax, 4
cmp edx, eax
jne case.default.0xa2cc8d
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea ecx, [ecx + edi*2]
lea edi, [esi + edi*2]
mov word [ecx], 0
movzx ebp, word [edi]
xor eax, eax
test bp, bp
setne al
mov esi, edi
jmp dword [eax*4 + 0xa3dd74]
xor eax, eax
cmp word [ebx], 0
sete al
jmp dword [eax*4 + 0xa3de94]
xor eax, eax
cmp word [ebx + 2], 0x3a
sete al
jmp dword [eax*4 + 0xa3de9c]
mov dword [ebx], 0x5c
xor eax, eax
cmp word [ebx + 2], 0x3a
sete al
jmp dword [eax*4 + 0xa3de9c]
xor eax, eax
cmp word [ebx + 4], 0
sete al
jmp dword [eax*4 + 0xa3dea4]
mov dword [ebx + 4], 0x5c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov al, 1
jmp dword [0xa3deb4]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
invalid
mov esp, 0xbc4600a2
mov byte [0xa2c0ce00], al
add byte [ecx - 0x45ff5d44], ch
shl byte [edx - 0x5d42ab00], 0
mov al, 0xc0
mov byte [2730326272], al
add byte [edx - 0x36ff5d40], bl
shl byte [edx - 0x5d413700], 0
nop
shl byte [edx - 1564538368], 0
jnp 0xa3dc36
invalid
shl byte [edx - 0x5d413700], 0
nop
shl byte [edx - 1564538368], 0
jnp 0xa3dc36
invalid
shl byte [edx - 0x5d403400], 0
invalid
mov byte [0xa2bfcc00], al
add byte [edx - 0x40], ah
mov byte [0xa2c02000], al
add byte [edx - 0x40], dl
mov byte [0xa2c06200], al
add byte [edi - 0x40], ch
mov byte [0xa2c07b00], al
add byte [edi], al
shl dword [edx - 0x5d3ef100], 0
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
xadd dword [edx + 0x100], esp
add byte [eax], dh
shl dword [edx - 0x5d3ed000], 0
xor al, cl
mov byte [2730569728], al
add byte [edi], al
shl dword [edx - 0x5d3ebf00], 0
pushal
shl dword [edx - 1564389632], 0
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
dec edi
shl dword [edx - 1564385280], 0
add cl, 0xa2
add byte [eax - 63], dh
mov byte [0xa2c17000], al
add byte [eax - 0x3f], dh
mov byte [0xa2c17200], al
add al, dl
shl dword [edx - 0x5d3e3000], 0
rol cl, cl
mov byte [2730610688], al
add al, dh
shl dword [edx - 0x5d3e1f00], 0
invalid
ret
int3
retf 0xa2